Поддержка 1-wire устройств и всё-всё-всё

Евгений, гугленье и попытки применения рецептов оттуда ни к чему не привели, не могли бы how to накидать,
заранее спасибо

Попробуйте сначала вручную:

service wb-homa-w1 stop
modprobe -r w1-gpio
modprobe -r wire

modprobe wire timeout=1 slave_ttl=5
modprobe w1-gpio

ну а дальше создаёте файл, например /etc/modprobe.d/w1_options.conf

туда пишете

options wire  timeout=1 slave_ttl=5

похоже что это всё работает, надо ещё сделать:
modprobe -r w1_therm

на самом деле пытаюсь решить вопрос как можно увеличить refresh rate опроса датчиков, сейчас получается ~1 раз в 25 секунд, можно как-то увеличить частоту опроса?

заранее спасибо

каких датчиков?

датчики ds18b20, ~ 30 шт

А у вас на шине 1w ещё что-то поддерживается разве?

“Поддерживается” - это понятие довольно условное. В нашем ПО поддерживаются только термометры, в том смысле, что есть спец. программа, которая считывает с них показания через ядерный интерфейс и публикует в MQTT.

Параметры ядерного модуля, про которые тут писали, и про которые вы сейчас спрашивали, не имеют никакого отношения к частоте опроса датчиков. За частоту опроса (в смысле отправки сообщений в MQTT и обновления циферок в веб-интерфейсе) отвечает как раз наш демон wb-homa-w1.

Можно запустить его с параметром “-i 1”, чтобы опрос был раз в секунду, а не раз в десять секунд. Отдельно это не настраивается, так что нужно открыть файл /etc/init.d/wb-homa-w1 и поменять строчку

DAEMON_ARGS=""

на

DAEMON_ARGS=" -i 1"

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

service wb-homa-w1 restart

сделал

DAEMON_ARGS=" -i 1"

и перезагрузил сервис, субъективно стало лучше: вместо раз в ~25 секунда стала раз в ~17 секунд публиковаться температура. Субъективно, так как смотрю на временные интервалы между появлением новых данных:

mosquitto_sub -v -t /devices/wb-w1/controls/28-00000625ee6d

можно ещё как-то “ускорить” публикацию данных?
Спасибо! =)

Насколько я помню, через ядерную подсистему нельзя сделать одновременный опрос датчиков. Конверсия у датчика занимает 600мс, вот у вас и получается, что 30 датчиков опрашиваются 17 секунд.

Можно уменьшить разрешение на датчиках (т.е. увеличить скорость, уменьшив точность), но текущее ядро это не умеет - нужно обновлять.

Добрый день!

Подскажите, сколько датчиков DS18B20 потянет WB5.8 (я имею ввиду питание - клемма +5V)?

Спасибо!

Добрый день!
Источник питания на клемме +5v поддерживает до 500 мА. Максимальный ток при преобразовании данных внутри датчика или записи в его память. Думаю, скорее вы упретесь в конфигурацию линии, чем в ток.

Статья о больших сетях 1wire

Сейчас посмотрел datasheet на DS18B20, номинальный ток 1мА, маскимальный - 1.5мА. Я планирую использовать порядка 15-20 штук, так что 500мА должно хватить с многкратым запасом. Надеюсь получится реализвать надежную топологию сети.

Спасибо!

А подскажите, нужно ли в качестве экрана задействовать отдельную жилу кабеля, подключенную к земле?
И ещё: правильно ли я думаю, что в кабелях 5cat, проложенных звездой к каждому датчику температуры,
питание можно подавать к каждому из них параллельно, а провода DATA и GND лучше соединить последовательно,
возвращая сигнал обратно от датчика к датчику по свободным жилам?
Если подключать все параллельно на контроллере, то у меня получатся следующие ответвления:
3эт - 30м
2эт - 20м
1эт - 10м
Подвал - 7м

Добрый день!
Не понял про использование жилы как экрана: экран в кабеле - это условная фольга, обматывающая жилы, которая работает по принципу клетки Фарадея. Одна жила это делать не может; что имелось в виду, я не понял.
Идея про последовательное соединение хорошая, но на ваших расстояниях должно получиться и при простом соединении звездой. А вот некачественное последовательное соединение может наоборот испортить ситуацию.
В любой случае будет полезно ознакомиться с TUTORIAL 148 со страницы https://contactless.ru/wiki/index.php/1-Wire

Буду очень признателен, если по итогам установки датчиков вы напишете про результаты.

Спасибо, я понял. Раз уже спаял последовательно все, то проверю и отпишусь.
А про заземление жилой я где-то вычитал, что параллельно ее заводят, но ничего не цепляют.
Может я что не так понял. Надеюсь без экрана у меня получится, так как кабель у меня без фольги, но перекрученный.

А мне не надо заморачиваться из-за отсутствия резистора на конце шины?

Тут, к сожалению, я опять вас не понимаю - про резистор на конце шины 1-Wire я слышу впервые.

Я про это имел ввиду

Он есть внутри контроллера, вам не нужно ничего снаружи подключать.

1 лайк

Спасибо.

То есть не только не нужно, но и может нарушить работу системы. На форуме такой случай уже был, пользователю пришлось выпаивать эти резисторы из его “готовых” датчиков. Если ваши датчики выглядят как гильза и от неё черный провод, то там этих резисторов внутри нет.

1 лайк