PureBasic - форум

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

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


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


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

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

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

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


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