DS18B20 не работает?

Добрый день!

Контроллер WB 8.5.3, релиз wb-2602
Подключаю датчик 1-wire DS18B20, он появляется но температуру показывает 0 градусов

В логах такие сообщения, ERROR повторяется каждые 10 секунд

29-03-2026 15:10:59.858 [wb-mqtt-w1.service] ERROR: [w1 driver] Can’t open file:/sys/bus/w1/devices/w1_bus_master1/28-000003228bff/w1_slave
29-03-2026 15:10:59.675 w1_master_driver w1_bus_master1: Family 28 for 28.000003228bff.60 is not registered.
29-03-2026 15:10:59.659 w1_master_driver w1_bus_master1: Attaching one wire slave 28.000003228bff crc 60

С чем может быть связано? Датчик не рабочий?

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


Речь идёт о контроллере Wiren Board 8.5.3 (релиз wb-2602) и подключении датчика DS18B20 по 1‑Wire. В интерфейсе он определяется, но показывает 0 °C, а в логах:

  • Family 28 for 28.000003228bff.60 is not registered.
  • ERROR: [w1 driver] Can't open file:/sys/bus/w1/devices/w1_bus_master1/28-000003228bff/w1_slave

Это означает, что ядро видит устройство на шине, но драйвер для семейства 0x28 (DS18B20) не подгружен/не работает штатно, поэтому файла w1_slave нет и драйвер wb-mqtt-w1 не может его открыть.

1. Что проверить первым делом

  1. Подключение:

    • DS18B20 должен быть подключён к клемме “1-Wire” на WB8.5 (либо к расширителю, если используете его).
    • Обязательно три провода: GND, DATA, +5V или +3.3V (паразитное питание не рекомендуется).
    • Между DATA и VCC должен быть подтягивающий резистор 4,7 кОм (если используете “голый” датчик, а не готовый модуль с уже установленным резистором).
    • Полярность DS18B20 (если в гильзе — проверьте распиновку конкретного производителя).
  2. Включен ли драйвер 1‑Wire на контроллере:

    • В веб‑интерфейсе откройте: “Настройки” → “Драйверы”.
    • Убедитесь, что включен драйвер wb-mqtt-w1.
    • Если он включен — отключите, нажмите “Сохранить”, затем включите снова и сохраните.
  3. Посмотрите, что реально видит система по 1‑Wire (по SSH):

ls -1 /sys/bus/w1/devices
cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves

Нормальная ситуация: вы увидите папку вида 28-xxxxxxxxxxxx.
Ваша ошибка: Family 28 ... is not registered — значит, у ядра не загружен модуль w1_therm.

2. Попробовать вручную подгрузить модуль датчика

По SSH на контроллере выполните:

sudo modprobe w1_therm
dmesg | tail -n 50
  • Если после modprobe ошибка в логах исчезнет, а w1_slave появится, значит нужно понять, почему модуль не загружается автоматически.
  • После modprobe проверьте:
ls -1 /sys/bus/w1/devices/28-000003228bff
cat /sys/bus/w1/devices/28-000003228bff/w1_slave

Если w1_slave читается и там нет ошибок crc=... NO, а есть YES и валидная температура — датчик исправен.

3. Исключить неисправный датчик/кабель

Если после modprobe w1_therm:

  • по‑прежнему нет файла w1_slave для этого адреса;
  • или w1_slave есть, но внутри постоянно crc=... NO,

то возможны варианты:

  1. Неверная пайка/распиновка или плохой контакт в линии.
    Попробуйте временно подключить коротким куском провода (до 0,5–1 м) один датчик к контроллеру напрямую, без промежуточных клеммников и длинных линий.

  2. Сам датчик повреждён.
    Если есть второй DS18B20, подключите его на те же клеммы и проверьте, будет ли он определяться и отдавать температуру.


Чтобы инженерам было проще разобраться, пожалуйста, дополнительно пришлите в ответе:

  1. Фото подключения датчика к клеммам контроллера (чтобы было видно маркировку клемм и провода).
  2. Результат команд:
ls -1 /sys/bus/w1/devices
cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
sudo modprobe w1_therm
dmesg | tail -n 50

Можно скопировать текст или приложить скриншот терминала.


Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.

28-000003228bff
w1_bus_master1
w1_bus_master2


28-000003228bff


modprobe: FATAL: Module w1_therm not found in directory /lib/modules/6.8.0-wb140


[ 5490.625966] usb 1-1: new high-speed USB device number 29 using ehci-platform
[ 5773.134835] usb 1-1: USB disconnect, device number 29
[ 5785.521514] usb 1-1: new high-speed USB device number 30 using ehci-platform
[ 5785.845848] usb 1-1: USB disconnect, device number 30
[ 5791.681460] usb 1-1: new high-speed USB device number 31 using ehci-platform
[ 6018.213387] w1_master_driver w1_bus_master1: Attaching one wire slave 28.000003228bff crc 60
[ 6018.235157] w1_master_driver w1_bus_master1: Family 28 for 28.000003228bff.60 is not registered.
[ 6074.100895] usb 1-1: USB disconnect, device number 31
[ 6086.485067] usb 1-1: new high-speed USB device number 32 using ehci-platform
[ 6086.809339] usb 1-1: USB disconnect, device number 32
[ 6092.644945] usb 1-1: new high-speed USB device number 33 using ehci-platform
[ 6375.145772] usb 1-1: USB disconnect, device number 33
[ 6387.564608] usb 1-1: new high-speed USB device number 34 using ehci-platform
[ 6387.886575] usb 1-1: USB disconnect, device number 34
[ 6393.724520] usb 1-1: new high-speed USB device number 35 using ehci-platform
[ 6676.106995] usb 1-1: USB disconnect, device number 35
[ 6688.480130] usb 1-1: new high-speed USB device number 36 using ehci-platform
[ 6688.802045] usb 1-1: USB disconnect, device number 36
[ 6694.636016] usb 1-1: new high-speed USB device number 37 using ehci-platform
[ 6977.072152] usb 1-1: USB disconnect, device number 37
[ 6989.467670] usb 1-1: new high-speed USB device number 38 using ehci-platform
[ 6989.790526] usb 1-1: USB disconnect, device number 38
[ 6995.627635] usb 1-1: new high-speed USB device number 39 using ehci-platform
[ 7012.993679] w1_master_driver w1_bus_master1: w1_search: max_slave_count 64 reached, will continue next search.
[ 7241.363303] w1_master_driver w1_bus_master1: Attaching one wire slave 28.000003228bff crc 60
[ 7241.380710] w1_master_driver w1_bus_master1: Family 28 for 28.000003228bff.60 is not registered.
[ 7278.098378] usb 1-1: USB disconnect, device number 39
[ 7290.483049] usb 1-1: new high-speed USB device number 40 using ehci-platform
[ 7290.804289] usb 1-1: USB disconnect, device number 40
[ 7296.639084] usb 1-1: new high-speed USB device number 41 using ehci-platform
[ 7579.049484] usb 1-1: USB disconnect, device number 41
[ 7591.414431] usb 1-1: new high-speed USB device number 42 using ehci-platform
[ 7591.736697] usb 1-1: USB disconnect, device number 42
[ 7597.574322] usb 1-1: new high-speed USB device number 43 using ehci-platform
[ 7880.055418] usb 1-1: USB disconnect, device number 43
[ 7892.433773] usb 1-1: new high-speed USB device number 44 using ehci-platform
[ 7892.756013] usb 1-1: USB disconnect, device number 44
[ 7898.589711] usb 1-1: new high-speed USB device number 45 using ehci-platform
[ 8181.080802] usb 1-1: USB disconnect, device number 45
[ 8193.469163] usb 1-1: new high-speed USB device number 46 using ehci-platform
[ 8193.790483] usb 1-1: USB disconnect, device number 46
[ 8199.629351] usb 1-1: new high-speed USB device number 47 using ehci-platform
[ 8482.065230] usb 1-1: USB disconnect, device number 47
[ 8494.468605] usb 1-1: new high-speed USB device number 48 using ehci-platform
[ 8494.793082] usb 1-1: USB disconnect, device number 48
[ 8500.628529] usb 1-1: new high-speed USB device number 49 using ehci-platform
[ 8783.048332] usb 1-1: USB disconnect, device number 49
[ 8795.435971] usb 1-1: new high-speed USB device number 50 using ehci-platform
[ 8795.759138] usb 1-1: USB disconnect, device number 50
[ 8801.595919] usb 1-1: new high-speed USB device number 51 using ehci-platform

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


У вас WB 8.5.3, ядро 6.8.0-wb140, DS18B20 виден как 28-000003228bff, но модуль w1_therm в системе отсутствует:

modprobe: FATAL: Module w1_therm not found in directory /lib/modules/6.8.0-wb140

Это уже не про датчик, а про ПО: в текущей версии образа/ядра драйвер термодатчиков 1‑Wire просто не установлен (или собран в другое имя/формат).

На рабочем контроллере modprobe w1_therm должен выполняться без ошибки, а в /lib/modules/$(uname -r)/ должен быть модуль w1_therm.ko. У вас его нет — поэтому и сообщения Family 28 ... is not registered, и температура 0 °C.

Что можно сделать сейчас

  1. Проверить пакет и версию прошивки

По SSH выполните:

uname -a
wb-release
dpkg -l | grep wb-config
dpkg -l | grep linux-image

Скопируйте вывод сюда. Это поможет инженерам понять, какой именно образ/ядро стоит и есть ли известная проблема в релизе wb-2602.

  1. Посмотреть, какие модули w1 есть вообще
ls /lib/modules/$(uname -r)/kernel/drivers/w1

Если там есть что-то вида w1_therm*, пришлите список файлов. Возможно, модуль переименован или лежит в другом подкаталоге.

  1. Проверить, есть ли новая прошивка

В веб‑интерфейсе:
“Настройки → Обновление ПО” — посмотрите, предлагает ли система обновление до более свежего релиза (например, wb-26xx/27xx). Если да, очень вероятно, что там проблема уже исправлена, и после обновления ядра модуль w1_therm появится и DS18B20 заработает.

Перед обновлением лучше:

  • Сделать бэкап настроек (через веб‑интерфейс/wb-backup).
  • По возможности уточнить у инженеров (они подключатся в рабочее время), но если контроллер тестовый/в пилоте — можно аккуратно обновиться.
  1. Уточнить, “родное” ли это ядро

Вывод uname -a подскажет, используется ли стандартный образ WB или какое‑то кастомное ядро. Если ядро нестандартное (собирали/подменяли сами), то:

  • В нём просто не собран драйвер w1_therm.
  • Решение — либо вернуться на штатное ядро WB, либо пересобрать своё ядро с включённым модулем.

Пока что по вашим логам датчик, скорее всего, исправен, т.к.:

  • он стабильно находится на шине;
  • адрес корректный 28-...;
  • ошибка идёт именно по отсутствию “семейства 28”.

Пожалуйста, пришлите:

uname -a
wb-release
ls /lib/modules/$(uname -r)/kernel/drivers/w1

и, если возможно, скриншот страницы “Настройки → Обновление ПО”, чтобы инженеры в рабочее время уже точечно подсказали: достаточно ли стандартного обновления прошивки или нужен ручной фикс.


Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.

root@wirenboard-AXK6WQNN:~# uname -a
Linux wirenboard-AXK6WQNN 6.8.0-wb140 #1 SMP Fri Jul 18 08:08:05 UTC 2025 aarch64 GNU/Linux
root@wirenboard-AXK6WQNN:~# wb-release
Wirenboard release wb-2602 (as stable), target wb8/bullseye

You can get this info in scripts from /usr/lib/wb-release.
root@wirenboard-AXK6WQNN:~# dpkg -l | grep wb-config
ii  wb-configs                            3.49.1                                 all          Default common config files for Wiren Board
root@wirenboard-AXK6WQNN:~# dpkg -l | grep linux-image
ii  linux-image-wb8                       6.8.0-wb153                            arm64        Linux kernel, version 6.8.0-wb153, Wiren Board 8
root@wirenboard-AXK6WQNN:~# ls /lib/modules/$(uname -r)/kernel/drivers/w1
ls: cannot access '/lib/modules/6.8.0-wb140/kernel/drivers/w1': No such file or directory

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


Ситуация по вашим выводам такая:

  • Система: WB 8.5.3, релиз wb-2602 (bullseye)
  • Текущее загруженное ядро: 6.8.0-wb140
  • В системе установлен пакет linux-image-wb8 6.8.0-wb153, но загружено предыдущее ядро 6.8.0-wb140.
  • В каталоге модулей для 6.8.0-wb140 вообще нет драйверов w1:
    ls: cannot access '/lib/modules/6.8.0-wb140/kernel/drivers/w1': No such file or directory
    

То есть контроллер загружен с промежуточного/старого ядра без модулей 1‑Wire, при этом новое ядро уже установлено, но не используется. Поэтому:

  • ядро видит устройство как “сырое” w1‑slave (семейство 28),
  • драйвер w1_therm отсутствует — семья 28 не регистрируется, файла w1_slave нет, температура 0 °C.

Что можно сделать сейчас

  1. Перезагрузиться в актуальное ядро 6.8.0-wb153

С большой вероятностью, в нём есть все нужные модули, и DS18B20 заработает.

По SSH выполните:

reboot

После загрузки проверьте:

uname -r
ls /lib/modules/$(uname -r)/kernel/drivers/w1

Ожидаемо должно стать:

uname -r
6.8.0-wb153

И в каталоге drivers/w1 должны появиться файлы, среди них что‑то вида w1_therm.ko.

Дальше:

sudo modprobe w1_therm
dmesg | tail -n 50
cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves

И посмотрите температуру в веб‑интерфейсе.

  1. Если после перезагрузки ядро всё равно 6.8.0-wb140

Тогда, вероятно, загрузчик зафиксирован на старом ядре. В этом случае инженерам нужно будет:

  • проверить содержимое /boot/ и конфигурацию U‑Boot;
  • выставить загрузку с 6.8.0-wb153 как основной.

Чтобы им было проще, пожалуйста, пришлите вывод:

uname -r
ls -l /boot
ls /lib/modules
  1. Проверить наличие обновлений через веб‑интерфейс

На всякий случай откройте “Настройки → Обновление ПО” и посмотрите:

  • Есть ли доступно обновление релиза поверх wb-2602.
  • Если предлагает — можно (если контроллер тестовый) выполнить обновление до последнего стабильного wb‑релиза, оно обычно подтягивает и актуальное ядро/модули.

Скриншот этой страницы тоже будет полезен инженерам.


Сейчас по вашим данным проблема не в датчике — он на шине виден корректно (28-000003228bff). Корневая причина — контроллер загружен с ядром без модулей 1‑Wire. Перезагрузка в установленное ядро 6.8.0-wb153 с модулями w1 почти наверняка решит вопрос.

Пожалуйста, после перезагрузки пришлите:

uname -r
ls /lib/modules/$(uname -r)/kernel/drivers/w1
cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves

и скриншот, как теперь отображается датчик в веб‑интерфейсе.


Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.

Уважаемые инженеры и программисты!
Ваш БОТ просто гениален!
Спасибо большое, проблема решена.

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


Рад, что всё заработало!

По тем симптомам, которые вы приводили, корневая причина действительно была в загруженном ядре без модулей 1‑Wire (6.8.0-wb140), при том что нормальное ядро с модулями (6.8.0-wb153) уже было установлено. После загрузки в актуальное ядро драйвер w1_therm подтянулся, семейство 28 зарегистрировалось, и DS18B20 начал корректно отдавать температуру.

Если будет возможность, на всякий случай можно ещё проверить через SSH:

uname -r
ls /lib/modules/$(uname -r)/kernel/drivers/w1
cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves

— чтобы убедиться, что контроллер и дальше будет всегда грузиться с нужного ядра. Но если после перезагрузки всё сохраняется и датчик стабильно работает, дополнительных действий не требуется.

Если позже начнёте вешать ещё 1‑Wire‑датчики (несколько DS18B20, длинная линия и т.п.) и появятся вопросы по топологии, длине шины или помехоустойчивости — смело пишите, подскажем оптимальные варианты подключения.[1]


Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.


  1. https://wirenboard.com/wiki/WB_Universal_1-Wire_bus ↩︎