Опрос датчиков по 1-Wire порту

Опрос датчиков по 1-Wire порту

Описание возможностей 1-Wire порта на примере датчика температуры DS18B20

Данный порт присутствует исключительно на моделях в расширенном исполнении!

Порт 1-Wire выведен на корпус через разъем RJ-11.



Как найти датчик в системе

Для обнаружения датчика в системе введите следующую команду:

ls /sys/bus/w1/drivers/w1_slave_driver/

Пример ответа:

28-000004ba4cc2   bind   uevent   unbind

Видим нужное название устройства: 28-000004ba4cc2


Опрос датчика

Для выполнения опроса датчика введите следующую команду:

cat /sys/bus/w1/devices/w1_bus_master1/28-000004ba4cc2/w1_slave

Пример ответа:

50 05 4e 46 7f ff 0c 10 f7 : crc=f7 YES
50 05 4e 46 7f ff 0c 10 f7 t=85000

Как видно, температура отображается неправильно. Чтобы исправить это, нужно отключить подтягивающий резистор (PULLUP) для моста i2c-1wire ds2482:

echo 0 > /sys/bus/w1/devices/w1_bus_master1/w1_master_pullup

Неправильное отображение может происходить не на всех датчиках.

Повторяем опрос:

cat /sys/bus/w1/devices/w1_bus_master1/28-000004ba4cc2/w1_slave

Пример правильного ответа:

9f 01 4e 46 7f ff 01 10 ab : crc=ab YES
9f 01 4e 46 7f ff 01 10 ab t=25937

Преобразование значения температуры

Числовое значение t=25937 соответствует температуре, но его нужно преобразовать:

Преобразование:

25937 / 1000 = 25,937 градусов Цельсия

Таким образом, температура составляет 25,937°C.