Есть простейший адаптер на FT232R и одном транзисторе для 1Wire. Нужно получить температуру.
Ставим пакет digitemp
Запускаем
digitemp_DS9097 -i -s /dev/ttyUSB0
на выходе что-то вроде:
Turning off all DS2409 Couplers
.
Searching the 1-Wire LAN
10BBEC6C010800A0 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 10BBEC6C010800A0
Wrote .digitemprc
Значит нашли нужный адаптер и термометр.
Теперь берем с него температуру:
digitemp_DS9097 -a -s /dev/ttyUSB
в выводе нас интересует строчка:
Oct 05 14:40:28 Sensor 0 C: 21.25 F: 70.25
можно "отсеч" лишний вывод командой вида
digitemp_DS9097 -a -s /dev/ttyUSB0 -q -o "%.1C"
выведет цифры температуры по Цельсию.
если датчиков несколько, добавляем параметр -t 0 (0-n) номер датчика
Подписаться на:
Комментарии к сообщению (Atom)
а можно поподробнее про этот простейший? к нему только 1 датчик прикручивается? обязательно ли использовать ft232r, или можно обойтись v-usb (cdc class)?
ОтветитьУдалитьВ принципе это адаптер - т.е. usb - uart. Так что подключить к нему можно датчиков достаточно много. Да и не только датчики температуры, но и АЦП и т.п. - словом все, что можно зацепить на 1Wire шину. Другой вопрос - что дальность в простейшем варианте может составлять.. ну скажем до 20м более менее устойчиво.
ОтветитьУдалитьv-usb - так собственно тогда никакие другие примочки и не нужны, можно прямо на нем (на микроконтроллере) реализовать функционал 1Wire - см. AVR318 http://www.gaw.ru/html.cgi/txt/app/micros/avr/avr318.htm
и просто чиать v-usb как hid устройство.
А вот подключить v-usb в качестве виртуального адаптера последовательного порта (вместо FT232R) и уже к нему транзистор - не получится, ибо для работы с 1Wire нужно скорость 115200, чего v-usb не в состоянии обеспечить (во всяком случае раньше не было такого).