Прошло время и мною написано несколько вполне рабочих программ для работы с датчиками температуры DS18B20, DS1820 и DS18S20. Все программы являются показометрами температуры в виде графиков и в цифровом виде.
Всего версий программы - три . Скачать программы вы можете ниже. Описание всех трёх версий программ в хронологическом порядке по мере их появления.
Скачать все версии программы одним архивом (файл во вложении)
Программа - "Поиск датчиков температуры ds18b20, DS1820 и DS18S20 на СОМ портах"
Интересует продолжение публикаций на эту тему
- Да
53 - Нет
6 - У меня Ардуино
7
Всего голосов: 66
mr.ptec
Доктор наук
Петрозаводск
703 171
23 Нояб. 15, 22:16
сообщение удалено
Отв.1 24 Нояб. 15, 12:02
mr.ptec, правильным решением было бы вынести опрос и управление в отдельный поток, чтобы гуй не расстраивал пользователя подвисонами. Лучше сразу делать, ибо потом ты начнешь управлять открытием клапана, к примеру, и у тебя все будет замирать, когда клапан открыт. И еще раньше поймешь если надумаешь тэном по Брезенхэму управлять.
сообщения удалены (3)
Mnz
Магистр
Город
254 86
Отв.2 25 Нояб. 15, 16:46
Для чего столько потоков? Если под опрос датчиков еще можно выделить поток, то для всего остального они не нужны. Разве проверка "контролирования выхода за установки заданных параметров" и "управление LPT портом" настолько затратны по времени что нужен отдельный поток?
Сохранение на диск также не занимает много времени.Построение графиков обычно также довольно быстрый процесс. Простой график строится около 10 миллисекунд, но сильно зависит от конкретной реализации.
В программе должно быть как можно меньше потоков, потому что они являются потенциальными местами возникновения ошибок, которые появляются в случайные моменты времени и могут быть выражены по разному, от глюков до вылета программы. Могут возникнуть например при работе нескольких потоков с общей памятью без использования мьютексов или критических секций.
Сохранение на диск также не занимает много времени.Построение графиков обычно также довольно быстрый процесс. Простой график строится около 10 миллисекунд, но сильно зависит от конкретной реализации.
В программе должно быть как можно меньше потоков, потому что они являются потенциальными местами возникновения ошибок, которые появляются в случайные моменты времени и могут быть выражены по разному, от глюков до вылета программы. Могут возникнуть например при работе нескольких потоков с общей памятью без использования мьютексов или критических секций.
сообщения удалены (2)
sterling
Бакалавр
гагарин
52 6
Отв.3 28 Нояб. 15, 00:22
Так может для начала сигналку сделать. Поставил температуру включения сигнала с датчика. Нетбук орет мол попора сделать что то.Или есть уже чтото подобное.
сообщения удалены (3)
alekslug
Научный сотрудник
винокур, Лобня.
5.2K 1.7K
Отв.4 08 Дек. 15, 14:16
mr.ptec, а если воды в кране нет?
Добавлено через 2мин.:
нужен ещё один датчик Т. в воду.
Добавлено через 2мин.:
нужен ещё один датчик Т. в воду.
сообщение удалено
mr.ptec
Доктор наук
Петрозаводск
703 171
Отв.5 08 Дек. 15, 14:45, через 30 мин
alekslug посоветовал контролировать температуру охлаждающей воды после клапана. Тогда, зная что клапан открыт и предполагая, что по трубочке/шлангу бежит холодная вода мы можем зафиксировать понижение температуры в месте где установлен датчик. Так ? Или сразу сравнивать температуру с какой то константой, ну скажем (меньше чем 15 градусов). Так ?
alekslug
Научный сотрудник
винокур, Лобня.
5.2K 1.7K
Отв.6 08 Дек. 15, 15:07, через 22 мин
Прессостат не предназначен для давления водопровода- разорвет его. Второй датчик температуры проще использовать, остатки воды закипят и пар точно нагреет датчик Т.на выходе воды.
Добавлено через 9мин.:
Или просто контролировать Т. сема, при превышении порога должен идти сигнал на исполнительное устройство. Неважно по какой причине поднимется температура, главное чтобы ответная реакция была.
Добавлено через 9мин.:
Или просто контролировать Т. сема, при превышении порога должен идти сигнал на исполнительное устройство. Неважно по какой причине поднимется температура, главное чтобы ответная реакция была.
mr.ptec
Доктор наук
Петрозаводск
703 171
Отв.7 08 Дек. 15, 15:20, через 14 мин
alekslug, Ну так я и согласен. Просто я пытаюсь сформулировать словами логику проверки температуры...
Тогда так: по "t1", включаем ТЭН и клапан, по "t2" отключаем всё!
Датчик t2 установлен в зоне выхода дистиллята. Логика простая, - если охлаждающая вода не поступает совсем или поступает недостаточно => пары спирта не конденсируются или же дистиллят слишком горячий. (прорыв пара).
Тогда так: по "t1", включаем ТЭН и клапан, по "t2" отключаем всё!
Датчик t2 установлен в зоне выхода дистиллята. Логика простая, - если охлаждающая вода не поступает совсем или поступает недостаточно => пары спирта не конденсируются или же дистиллят слишком горячий. (прорыв пара).
Mnz
Магистр
Город
254 86
Отв.8 08 Дек. 15, 16:42
Для сбора данных в ней будет использована база данных MySQL server.mr.ptec, 08 Дек. 15, 14:12Т. е. ставить MySQL server на всех компах где будет работать прога? Это нерационально. Лучше хранить данные в SQLite.
сообщение удалено
Mnz
Магистр
Город
254 86
Отв.9 08 Дек. 15, 17:23, через 41 мин
Разве C++ Builder 2010 не поддерживает SQLite?
Нужно сразу определится для кого пишется программа. Только для себя или для других тоже.
Если для себя, то можно делать как угодно, но если и для других, тогда не нужно создавать сложностей типа установки MySQL server. Зачем держать сервер на компе из-за одной проги? Это нерационально.
Чем все будет проще, тем большее число людей смогу воспользоваться программой. Программист должен думать в первую очередь не о том как бы по проще и по быстрее написать программу, а о том кто ее будет использовать, т. е. о потенциальных пользователях программы.
Нужно уметь вызывать функции из DLL...
Нужно сразу определится для кого пишется программа. Только для себя или для других тоже.
Если для себя, то можно делать как угодно, но если и для других, тогда не нужно создавать сложностей типа установки MySQL server. Зачем держать сервер на компе из-за одной проги? Это нерационально.
Чем все будет проще, тем большее число людей смогу воспользоваться программой. Программист должен думать в первую очередь не о том как бы по проще и по быстрее написать программу, а о том кто ее будет использовать, т. е. о потенциальных пользователях программы.
В случае жеMySQL количество кода минимально т.к. половина работы делается копированием нужных VCL компонентов на форму и установкой связей между ними.mr.ptec, 08 Дек. 15, 17:09Это называется формошлепство!
Нужно уметь вызывать функции из DLL...
сообщения удалены (2)
Отв.10 08 Дек. 15, 19:45
Mnz, сервер не для проги, а для удобной работы с данными. Захотел - на вебморду выставил. Захотел - в эксель экспортировал. Любые запросы, сортировки, анализ - все в одну строчку кода.
Mnz
Магистр
Город
254 86
Отв.11 08 Дек. 15, 20:07, через 22 мин
ты чёго то сегодня особенно сердитmr.ptec, 08 Дек. 15, 18:28Нет, это критика, способствующая улучшению программы.
сообщения удалены (2)
Moonshine57
Специалист
Orel
141 39
Отв.12 14 Дек. 15, 02:39
Народ, а есть ли 1-wire датчики давления? Я попытался найти, вроде нет.
Semo
Бакалавр
Земля
60 40
Отв.13 14 Дек. 15, 09:39
Есть 1-Wire АЦП (например DS2438), к которому можно подключить датчик давления.
сообщения удалены (2)
mr.ptec
Доктор наук
Петрозаводск
703 171
Отв.14 04 Янв. 16, 14:00
С новым Годом! Здоровья, счастья!
------------------------------------------------
Промежуточный результат, поделка.
Программа может:
* находит все датчики ds18b20 и их разновидности и строит для каждого датчика график.
* следит за уставками,. величину которой можно поменять "на лету"
* занимает мало места
* пригодится тем кто хочет мониторить температуру в виде графиков
* в программе нет управления внешними устройствами
* программа как промежуточный результат отладки разных алгоритмов
* датчики подключенные самопальным образом к СОМ1 скорее всего не будут корректно показывать температуру
* гарантируется правильное отображение температур с датчиков подключенных через USB-адаптеры
* среда разработки <Embarcadero RAD Studio 10 Seattle> . почему? просто было интересно попробовать.
* пожелания/критика приветствуется.
** я не нашёл аналогов этой программы в сети, которая бы без танцев с бубном начинала показывать графики температур сразу после загрузки программы
-----------------------------------------------------
Best regards!
------------------------------------------------
Промежуточный результат, поделка.
Программа может:
* находит все датчики ds18b20 и их разновидности и строит для каждого датчика график.
* следит за уставками,. величину которой можно поменять "на лету"
* занимает мало места
* пригодится тем кто хочет мониторить температуру в виде графиков
* в программе нет управления внешними устройствами
* программа как промежуточный результат отладки разных алгоритмов
* датчики подключенные самопальным образом к СОМ1 скорее всего не будут корректно показывать температуру
* гарантируется правильное отображение температур с датчиков подключенных через USB-адаптеры
* среда разработки <Embarcadero RAD Studio 10 Seattle> . почему? просто было интересно попробовать.
* пожелания/критика приветствуется.
** я не нашёл аналогов этой программы в сети, которая бы без танцев с бубном начинала показывать графики температур сразу после загрузки программы
-----------------------------------------------------
Best regards!
сообщение удалено
самогона-вагон
Кандидат наук
Красноярск
337 25
Отв.15 16 Янв. 16, 13:32
mr.ptec, программа работает. Адаптор на pl2303 виндовз 7 64.
Подключение внешних устройство через оптостмисторы как mekkaod будет?
Подключение внешних устройство через оптостмисторы как mekkaod будет?
mr.ptec
Доктор наук
Петрозаводск
703 171
Отв.16 16 Янв. 16, 19:14
самогона-вагон,
Обязательно будет, но чуть позже.
Подключение внешних устройство через оптостмисторы как mekkaod будет?самогона-вагон, 16 Янв. 16, 13:32
Обязательно будет, но чуть позже.
сообщение удалено
dimanchesso
Кандидат наук
Коломна
496 107
Отв.17 21 Янв. 16, 22:09
а можно чтобы через платку Ардуину каку-нибудь
сообщение удалено
dimanchesso
Кандидат наук
Коломна
496 107
Отв.18 22 Янв. 16, 09:53
сам пока толком не разобрался...но хотца чтобы такой мониторинг был
Добавлено через 26мин.:
ком порты, лпт порты...у многих ни тех ни других нету...а вот у ардуинки их полно, но вот незадача - не посмотришь такие красивые графики на экране, не помониторишь удалённо...и компу могут питание отключить а на бесперебойнике он много не нагонит..поетому хотца работать со связкой ардуинка-пэвм..первая гонит вторая мониторит
Добавлено через 26мин.:
ком порты, лпт порты...у многих ни тех ни других нету...а вот у ардуинки их полно, но вот незадача - не посмотришь такие красивые графики на экране, не помониторишь удалённо...и компу могут питание отключить а на бесперебойнике он много не нагонит..поетому хотца работать со связкой ардуинка-пэвм..первая гонит вторая мониторит
mr.ptec
Доктор наук
Петрозаводск
703 171
Отв.19 22 Янв. 16, 10:29, через 37 мин
dimanchesso, Понятно. Хочешь красивых картинок. (Селянка, хочешь большой, но чистой любви? — Да кто ж ее не хочет… (С) )
Андурино может работать без эл. энергии? Если пропадёт эл. энергия то у тебя не только Андуринко,ПЭВМ "встанет" но и и вся нагрузка, - ТЭН, клапан и т.д. т.к. что никакой разницы.
Для этого есть спец. софт. Почитай форумы.
ком порты, лпт порты...у многих ни тех ни других нетуdimanchesso, 22 Янв. 16, 09:53в 95 % ПЭВМ ЛПТ и СОМ порт есть. Нужно подключить шлейф на мат. плату и вывести его на заднюю панель.
...и компу могут питание отключить а на бесперебойнике он много не нагонит..dimanchesso, 22 Янв. 16, 09:53
Андурино может работать без эл. энергии? Если пропадёт эл. энергия то у тебя не только Андуринко,ПЭВМ "встанет" но и и вся нагрузка, - ТЭН, клапан и т.д. т.к. что никакой разницы.
поетому хотца работать со связкой ардуинка-пэвм..первая гонит вторая мониторитdimanchesso, 22 Янв. 16, 09:53
Для этого есть спец. софт. Почитай форумы.