PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Программирование микроконтроллеров » Термометр на DS18B20 (подключение через COM порт)


Термометр на DS18B20 (подключение через COM порт)

Сообщений 91 страница 114 из 114

1

Этот компьютерный COM термометр выполнен на специализированной микросхеме DS18B20 фирмы Dallas. Он подключается к ПК (компьютеру) через последовательный COM порт. Если в вашем компьютере нет COM порта, можете посмотреть другой вариант градусника, подключаемый через USB. USB термометр на ATmega8 и PIC18F4550
Или использовать переходник USB to UART. Поскольку датчик температуры DS18B20 имеет интерфейс 1-Wire, то для согласования с COM портом компьютера необходим преобразователь уровней напряжения, выполненный по схеме:

http://pure-basic.narod.ru/forum_files/COM_DS/Sh.gif

Замечу что это не единственный возможный вариант схемы. Идея не нова и в интернете можно найти разнообразные варианты схем от простейших, до сравнительно сложных.

При использовании USB переходника, схему можно упростить.
https://forumupload.ru/uploads/0009/ae/28/2/67951.gif

Если у переходника нет выводов DTR и RTS, но есть выход 5 вольт, схема такая.

https://forumupload.ru/uploads/0009/ae/28/2/531547.gif

Программа проверена и хорошо работает с USB переходниками на микросхеме PL2303.

https://forumupload.ru/uploads/0009/ae/28/2/528620.png

Для считывания текущей температуры с датчика DS18B20 была разработана программа "DS18B20 Thermo" (она кроссплатформенная - для Windows и Linux), внешний вид окна которой показан на скриншоте.

Window версия.

http://pure-basic.narod.ru/forum_files/COM_DS/Scrin.png

Linux версия.

http://pure-basic.narod.ru/forum_files/COM_DS/Scrin_Lin.png

В программе следует выбрать COM порт к которому подключен датчик температуры и если порт не занят, устройство исправно и датчик подключен, то в поле, расположенном в центре окна, отобразится текущая температура. Linux версию программы нужно запускать с правами root-а, иначе не будет доступа к COM порту. Это одна из особенностей операционной системы Linux.

Исходный текст программы "DS18B20 Thermo" и скомпилированные файлы. Для компиляции требуется PureBasic 5.20 или более новая версия.


Доработанная программа, позволяющая считывать температуру из нескольких датчиков.

https://forumupload.ru/uploads/0009/ae/28/2/850420.png

http://s6.uploads.ru/jC4vF.jpg

Скачать программу для Windws x86, Windws x64 и Linux x86 и ее исходные коды.

Для Raspberry PI Термометр на DS18B20 (подключение через COM порт)

Версия 1.3 http://pure-basic.narod.ru/forum_files/ … on_1.3.zip

+1

91

Есть вариант программы только без установки цвета строки. http://pure-basic.narod.ru/forum_files/ … _1.3.2.zip
Если нужно звуковое оповещение, нужно в папку с программой поместить файл Sound.wav который будет воспроизводиться если температура любого из датчиков вне заданного диапазона.

0

92

Петр здравствуйте! Понравился Ваш проект Термометр на DS18B20 (подключение через COM порт), нужно будет купить pl2303 (Он ведь стоит сущие копейки). У меня есть просьба: возможно ли выявить поддельный датчик? В этой статье как отличить подделку от оригинала в тексте после заголовка Резюме, как отличить подделку от оригинала пункты 4,5,6,7 можно в проверку включить и вывести к примеру в отдельный лог-файл? Просто собирая термостаты столкнулся, что найти нормальный датчик проблематично, то показания (десятые градуса) скачут, то были случаи показывают непонятную температуру. С нормальным датчиком проблем нет. А если бы была возможность это реализовать, то появилась бы вероятность отбраковки подделок, а значит меньше проблем при дальнейшей эксплуатации.

0

93

Я покупаю датчики в проверенных магазинах. Лучше заплатить чуть больше и получить оригинальный датчик, который не даст сбой в самый неподходящий момент.

0

94

А что делать если нет под боком нормального магазина? Или Вы знаете проверенный интернет-магазин? Если да, то подскажите пожалуйста ссылку

0

95

Покупаю в магазине в моем городе. Дороже чем в Китае, но датчики работают стабильно.

0

96

Купил PL2303, соединил как на схеме http://s020.radikal.ru/i723/1601/04/e695161a0783.gif, но датчик не видится... Как можно 2303 проверить?

0

97

Соедините выводы TXD и RXD и в любой терминальной программе отправьте сообщение, которое должно быть принято в неизменном виде.

0

98

Петр, Спасибо за подсказку! Проверил - не исправная плата PL2303 мне попалась, в терминале ничего не приходит. Глянул на свой программатор CH341, у него джампик есть, который переводит программатор в адаптер USB to TTL, попробовал - в терминале есть сообщения, подключил датчик - все работает. Значит нужно другой адаптер покупать на 2303... надо было сразу проверить, как купил... ну да ладно - умней буду в следующий раз

0

99

Купил другой адаптер PL2303 - с ним все отлично работает

0

100

Петр, простите за наглость)) А нет ли у Вас наработок по эмулированию устройств. Например, Ds1990 или того же Ds18b20?

0

101

Нет. Проще купить нужную микросхему чем тратить время на ее эмуляцию.

0

102

Прошу помощи! То ли лыжи не едут, то ли я ...
Собрал схему http://s020.radikal.ru/i723/1601/04/e695161a0783.gif (диодик BAT54, двумя анодами вместе, падение по мультиметру 0,185В)
подключил к "USB-TTL" на CH340, обнаружен COM10, но получаю:
https://prnt.sc/wj99mh
Подключал таким образом два датчика, купленные в разное время. Смотрел шину - ответа нет, после сброса.
Оба чипа мертвы?

0

103

Chettuser написал(а):

диодик BAT54

Это диод Шоттки, а на схеме обычный, кремневый. Работу с диодом Шоттки я не проверял.

Chettuser написал(а):

ответа нет, после сброса.

То есть датчик не отвечает? Он правильно подключен?

Свернутый текст

https://forumupload.ru/uploads/0009/ae/28/2/t800594.png

0

104

Да, подключен был правильно, просто забросил до лучших времён...
Что то картинки у Вас перестали открываться, хотел схемы посмотреть. Можно как то исправить?
Спасибо.

0

105

Восстановил картинки в первом сообщении.

0

106

Собрал приложение для Raspberry PI. http://pure-basic.narod.ru/forum_files/ … 1.3_rpi.7z

http://pure-basic.narod.ru/forum_files/raspberry_pi/ThermoMon_rpi.png

0

107

Пётр
Здравствуйте. Давно пользуюсь Вашей программой. Очень хорошая. Пользовался не часто, но под виндовс 8.1. Написано что  она кросплатформенная. Скажите как запустить её под линукс минт 21.2. Что для этого требуется. Вино (wine) или можно как то по другому.

0

108

Нужно скомпилировать для Linux x86 или x64 в зависимости от версии ОС.
За основу можно взять исходники версии для малины которые были скомпилированы для линукс и ARM процессора.
Вам же нужно для линукс x86 или x64.

В первом сообщении, в архиве находится архив DS18B20_ThermoMon.tar.gz для линукс x86.
Если у вас x64 версия, то скорее всего не запустится. В линуксе x64 по умолчанию нет совместимости c x86 как в винде.

0

109

Доброго времени суток.

Подскажите , а есть разводка печатной платы для преобразователя Rs232?

0

110

Пётр написал(а):

Нужно скомпилировать для Linux x86 или x64 в зависимости от версии ОС.
За основу можно взять исходники версии для малины которые были скомпилированы для линукс и ARM процессора.
Вам же нужно для линукс x86 или x64.

В первом сообщении, в архиве находится архив DS18B20_ThermoMon.tar.gz для линукс x86.
Если у вас x64 версия, то скорее всего не запустится. В линуксе x64 по умолчанию нет совместимости c x86 как в винде.

Спасибо за ответ, посмотрю.

0

111

Собрал версию 1.3 под все платформы кроме MacOS X M1, т. к. нет этого компа.

0

112

Пётр написал(а):

Собрал версию 1.3 ...

Здравствуйте, Пётр.
Искал в сети такое, т.к. возникла необходимость удалённого мониторинга температуры. Спасибо за то, что делитесь. По факту, нужен на выходе файл.txt из которого будут браться данные, но возник ряд проблем:
1. PureBasic нашёл только версию 5.31 (первая программа собирается и работает, файл пишет (добавил в проекте);
2 , но при закрытии, что Ваша, что мной "допиленная" программа, "вешает" порт. Лечится откл/вкл порта в устройствах. Проверено на 8.1 embeded  и ХР;
3. Версия 1.3.2 работает как надо, но лог, который она пишет, недоступен для чтения при открытой программе. И самое печальное, к ней нет исходника;
4. К 1.3 исходник есть но в 5.31 он не собирается, а готовый х86, на целевой win32(XP), не работает (поле порта пустое и ничего не предлагается).
Не могли бы Вы чем нибудь помочь в данной ситуации?
Спасибо.

0

113

Посмотрите эту версию http://pure-basic.narod.ru/forum_files/ … _1.3.4.zip

Прохожий написал(а):

К 1.3 исходник есть но в 5.31 он не собирается

Я его в версии 6.02 собирал. Подойдут другие близкие к ней.

Прохожий написал(а):

возникла необходимость удалённого мониторинга температуры.

В программе на этот случай имеется веб-сервер. Можно через браузер наблюдать за температурой.

0

114

Пётр написал(а):

Посмотрите эту версию http://pure-basic.narod.ru/forum_files/ … _1.3.4.zip

Спасибо.

Я его в версии 6.02 собирал. Подойдут другие близкие к ней.

Хорошо, попробую.

В программе на этот случай имеется веб-сервер. Можно через браузер наблюдать за температурой.

В первой не было, да и своя веб-станица есть. Попробую данные подтянуть.
Спасибо, за ответ.

0


Вы здесь » PureBasic - форум » Программирование микроконтроллеров » Термометр на DS18B20 (подключение через COM порт)