DS18B20 1-wire (обновлено: 08 Jan 2023, 12:09:27)


Поддержка шины 1-wire для всех типов датчиков температуры DS18B20, DS1820, DS18S20.
Необходимо просканировать датчики на вкладке 1-wire для того чтобы они появились в модуле, если в шестеренке установлено количество 1 датчик, то вкладки сканирования датчиков не доступна( не требуется). На этой же странице можно отсортировать датчики в нужном порядке, а так же посмотреть на какой битности настроены датчики.
В бесплатном режиме доступен только один датчик.

На RTOS прошивках надежная работа опции без использования режима RMT(все виды ESP32) или DS2482 не гарантирована .

При использовании программного PWM или VirtualWire на ESP8266 возможны ошибки чтения датчиков (не касается при использовании DS2482).

Обратите внимание, что примерно с 2018 в продаже на Али часто попадаются поддельные датчики, которые не работают корректно на двухпроводной линии, имеют низкую точность и возможны и другие глюки. Меньше всего с ними проблем при использовании режима подключения одного датчика(без сканирования)

Подключение датчиков

Датчики подключаются параллельно. Доступно подключение до 10 датчиков с возможностью расширения до 20 датчиков с предварительной установкой количества в шестеренке. При установке одного датчика функции поиска сканирования не предусмотрено

Питание датчикам рекомендуются подключать 5 вольт. Так же необходимо подключить резистор подтяжки 1.5кОм...4.7кОм (в зависимости от напряжения питания и количества датчиков) между входом/выходом DATA (DQ) датчика и шиной питания 3.3 вольт.





Использование RMT режима на ESP32/ESP32S2/ESP32C3/ESP32S3

Экспериментальная опция , использующая аппаратное генерирование и чтение импульсов для надежного и стабильного чтения датчиков. Доступно только на модулях ESP32 всех видов. Включается в шестеренке опции , выключена по умолчанию. Может быть несовместимость работы с другими RMT опциями: WS2812 , IR приемник, IR передатчик.


Подключение датчиков на Linux

Если в ОС имеется поддержка 1wire в sysfs , то датчики считываются по пути /sys/bus/w1/devices/ИД_датчика  .
Для включения возможности работы с 1wire в Raspberry требуется войти в конфигуратор используя команду sudo raspi-config и активировать 1wire. На других устройствах включается согласно их документации.


Подключение датчиков через микросхему DS2482 через I2C

Опция работы 1wire через микросхему DS2482-100, подключаемую через I2C (адрес 0x18). Опция позволяет добиться более надежной работы с шиной 1wire , особенно актуально это на RTOS прошивках и на больших линиях при установленном транзисторе на PCTLZ (смотрите схему ниже). Возможно и классическое подключение датчиков к выводу IO микросхемы с подтягивающим резистором. Еще микросхема позволяет экономить один GPIO на М/К , если I2C уже и так используется




Настройка GPIO для подключения датчика 18b20.

Переходим на вкладку "Hardware"  и там ставим галку в окне "Enable DS18B20", после чего выбираем нужный GPIO.



Если датчик подключен правильно и он рабочий - то на вкладке "1-wire" после сканирования появится адрес датчика.


Смена битности датчиков

Можно поменять битность через GET команды http://[ip_adr]/config1wire?all=X - все датчики или один - http://[ip_adr]/config1wire?set=Y&bits=X, где Y- номер датчика, X - битность 9..12.