DS18B20 1-wire (обновлено: 23 Jun 2024, 09:52:46)


Поддержка шины 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/ИД_датчика  . GPIO для подключения задается в ОС.
Для включения возможности работы с 1wire в Raspberry требуется войти в конфигуратор используя команду sudo raspi-config и активировать 1wire.

На Milk-V на SD образе проекта настройка gpio находится стандартно на вкладке hardware, для смены gpio требуется перезагрузка.

На других устройствах включается согласно их документации.


Подключение датчиков через микросхему 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.