PureBasic - форум

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

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


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


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

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

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 переходника, схему можно упростить.

http://i038.radikal.ru/1502/7f/876124aa7de8.gif

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

http://s020.radikal.ru/i723/1601/04/e695161a0783.gif

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

http://s017.radikal.ru/i437/1601/b8/c6cf3ac0c77d.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 или более новая версия.


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

http://s019.radikal.ru/i619/1312/36/bdef6796285c.png

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

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

+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


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