Предыдущая статья. Следующая статья
По мотивам:
http://blog.marvins.ru/avtomatizaciya/temperaturnyj-datchik-ds18s20-chast-2.html
C1 - электролитический конденсатор 10мкф/10вольт- 1шт.
D1 - стабилитрон 3,9 вольт - 1шт.
D2 - стабилитрон 5,6 вольт - 1шт.
D3 - стабилитрон 6,2 вольт - 1шт.
D4, D6 - диоды Шоттки 1N5818 - 2шт.
D5 - диод 1N4148 - 1шт.
R1 - резистор 1,5кОм - 1шт.

Железо

Общие требования к построению сети изложены на сайте: http://www.maximintegrated.com/app-notes/index.mvp/id/148
Там как раз и про длину ответвлений и про топологию, и про емкость линии...
Поскольку в "закромах Родины" было найдено некоторое количество ненужных коммутационных шнуров с разъемами DB9, решено было использовать их для изготовления переходников. Все недостающие детали были куплены на ebay рассыпухой , хотя DS18B20 можно было купить и чуть дешевле. Но здесь подкупило именно то, что все придет в одном заказе.

Сборка переходника "com - 1-wire" возможна непосредственно на разъеме DB9:

Вместо D4,D6 - BAT54S - двойной диод Шоттки в smd исполнении:

Почти готовое изделие - осталось залить изоляцией и собрать корпус...
А может быть собрана на отдельной плате, если у Вас, как у меня в одном из кабелей, все необходимые провода уже идут из готового разъема: нет смысла ломать хорошо залитый пластиком разъем.
Желтый провод - Data

Софт


Пакет digitemp - ставится из портов, предварительной настройки - не требуется. Под линуксы - кое-где есть готовые сборки, но можно собрать и самостоятельно. Под Windows - в сети гуляют уже готовые бинарники, базирующиеся на cygwin.dll. Права на порт, и, соответственно, юзер от которого запускается команда опроса:
# ls -la /dev/cuau1
crw-rw----  1 uucp  dialer    0,  40 18 feb 23:26 /dev/cuau1


Создание файла конфигурации:

# digitemp_DS9097 -q -i -s /dev/cuau1
2816D984020000C2 : DS18B20 Temperature Sensor
289DD08402000023 : DS18B20 Temperature Sensor
ROM #0 : 2816D984020000C2
ROM #1 : 289DD08402000023


Вывод при включенных датчиках:

# digitemp_DS9097 -q -a -c .digitemprc


TTY /dev/cuau1
READ_TIME 1000
LOG_TYPE 1
#LOG_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F"
LOG_FORMAT "sensor%s.value %.2C"
CNT_FORMAT "%b %d %H:%M:%S Sensor %s #%n %C"
HUM_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F H: %h%%"
SENSORS 2
ROM 0 0x28 0x16 0xD9 0x84 0x02 0x00 0x00 0xC2
ROM 1 0x28 0x9D 0xD0 0x84 0x02 0x00 0x00 0x23
Формат вывода (_FORMAT) можно легко поправить под свои нужды, т.к. синтаксис очень похож на printf. В плагине, идущем в комплекте с munin - именно так и сделано.


Схема для восстановления сигнала на длинной 1-проводной шине 1-wire. Восстановление, 'затянутого' емкостью кабеля, сигнала перехода из 0 в 1 осуществляется путем кратковременного открытия транзистора Т1. Начало открытия определяется порогом включения Т2, а закрытие - временем заряда С1.

Обсуждение статьи.


Сайт с описанием программ для 1-wire устройств... http://www.owfs.org/ , судя по датам - перестал обновляться в 2006 году.
PR-CY.ru
Еще статьи.