ФОРУМ КУПИТЬ

Последние статьи

ВСЕ СТАТЬИ

Пакет owfs и использование температурных датчиков DS18B20

24/11/2008 16:22:45

Возможно, данная статья устарела.
Не смотря на то, что в некоторых случаях применение DS9490R и пакета owfs является оправданным, в текущий момент времени для работы с датчиками температуры DS18B20 применяется контроллер MegaD-2561, который способен выступать мастером сети.
Все новые статьи

У меня опять, 36,5...

В процессе дальнейшего развития системы возник вопрос, почему бы не дополнить сайт домашней автоматизации информацией о наружной и внутренней температуре? К счастью сделать это достаточно просто. Компания Maxim/Dallas в свое время разработала протокол 1-wire. Этот протокол, оказывается, давно присутствует в нашей жизни. Вспомните домофонные ключи-таблетки i-Botton. Они работают по протоколу 1-wire. Для подключения устройств требуется всего 2 провода. Подробнее о технологии 1-wire.
Температурный датчик DS18B20Топология сети общая шина. Для микросетей 1-wire компания Maxim/Dallas выпускает множество компонентов, с помощью которых можно создавать различные модули и устройства. Среди прочих есть и температурные датчики DS1820 и DS18B20. Это маленькие микросхемы с 3-мя ножками. Если вы никогда не держали в руках паяльник и понятия не имеете что такое канифоль или припой, не пугайтесь. Преимущество этих микросхем заключается в том, что они не требуют никакой обвязки. Датчики напрямую цепляются к проводам. Кроме того, эти датчики продаются практически в любом радио-магазине, так как в настоящее время используются повсеместно. Стоимость одного датчика порядка 70 руб. Но как подключить сеть к компьютеру. Для это потребуется ведущей сети, основной и единственный компонент, который является связкой между компьютером/контроллером и сетью 1-wire. Его можно с легкостью собрать самому, но я предпочел купить в Интернет-магазине готовый. Это DS9490R - миниатюрное устройство с портом USB. Есть также устройства для COM-порта.

Но поддерживает ли Linux это устройство? Поддерживает! Благодаря замечательной программе owfs, которую можно найти на сайте www.owfs.org
Компиляция пакета в Linux не вызывает существенных сложностей. Необходимо только убедиться, что в системе установлены такие пакеты (для Debian) как: build-essential, automake, fuse-utils, php5, php5-dev, php5-cli, libfuse-dev, libusb-dev, swig и другие (tcl, tcl-dev), необходимые для работы owfs. Напомню, что пакеты в системах, где используется APT, устанавливаются командой apt-get install имя_пакета или через графический интерфейс (что намного проще для начинающих пользователей, так как аналогично управлению программами в Windows).
Кстати, owfs успешно используется и под ОС Windows с помощью Cygwin.

Стоит отметить, что owfs не единственное решение для работы с сетью 1-wire. Если у вас принципиально нет желания разрабатывать свои программы и вы являетесь пользователем операционной системы Windows, то существуют такие готовые программные продукты как система Бенукс, которая не только умеет работать с 1-wire сетью, но также имеет массу других полезных возможностей.

Но вернемся к owfs. Этот пакет является не только драйвером для DS9490R, но также управляющей программой для элементов сети, предоставляя мне как пользователю высокоуровневый интерфейс для работы с устройствами. Более того, все устройства, висящие на двух проводах, автоматически определяются этой программой и отображаются в системе в виде файлов. Все, что мне требуется для того, чтобы получить температуру с датчика - это дать команду:

cat /mnt/1wire/28.36D1A3010000/temperature

Где, 28.36D1A3010000 уникальный идентификатор любого устройства сети (навроде MAC адреса). Для тех, кто не работал с Linux'ом эта команда просто выводит содержимое файла, в котором, как вы, наверное, догадались, содержится температура устройства. Просто, не правда ли? Более того, owfs сам является Web-сервером и вы можете зайти на него примерно следующим образом:

http://my_server:3001

 

owfs в консоли Linux Веб-интерфейс программы owfs
 

На правом скриншоте показан список свойств простейшего ключа DS2405, на котором у меня выполнено управление уличным освещением. Не нужно быть программистом вовсе, чтобы управлять светом из локальной сети или Интернета. Достаточно зайти в стандартный веб-интерфейс программы owfs, кликнуть на чекбокс свойства PIO и нажать кнопку Change.

owfs даст возможность не только считать все атрибуты и значения устройств, но также задать некоторые значения и настройки. owfs, помимо всего прочего, поддерживает множество сетей 1-wire. Вы можете использовать два и более управляющих элемента DS9490R, использовав одну сеть, например, для работы достаточно медленных температурных датчиков, а другую - для исполнительных механизмов.

Таким образом в текущий момент я подключил 4 датчика. Два датчика DS1820 и два датчика DS18B20. Заявлено, что датчики DS18B20 откалиброваны и более точны, но я разницы в показаниях по сравнению с более простыми собратьями не заметил. Более того, все датчики Dallas, на мой взгляд, завышают температуру примерно на градус. DS18B20 обладает 12-битной разрядностью, но может перестраиваться. Получение температуры максимальной точности занимает порядка 750мс. Если важна скорость считывания, DS18B20 может выдать информацию значительно быстрее, но при этом менее точно. К сожалению DS18B20 не всегда есть в магазинах и я для пробы купил пару DS1820. Эти датчики, несмотря на то, что сняты и с производства, а производитель вроде бы заявляет об ошибке в алгоритме преобразования температуры, с достаточной для меня правдоподобностью отображают температуру.

Интерфейс, доступный через Интернет (на скриншоте), который предлагает owfs для считывания показаний устройств вполне пригоден для отладки и администрирования, но выглядит несколько пугающим для простых домочадцев. Поэтому я воспользовался библиотекой ownet из пакета owfs для считывания показаний из PHP-скриптов. Это оказалось очень просто.

Таким образом данные со всех датчиков я считываю раз в 5 минут и записываю их в базу данных.  Я подумал, что имея такие данные, неплохо было бы отображать какую-нибудь аналитику. Например, среднюю, максимальную и минимальную температуру за день и за сутки, перепад температуры в течение суток. Также неплохо было рисовать температурный график. Сначала я хотел использовать для этих целей известную программу MRTG, но оказалось, что она не умеет работать с минусовыми значениями, поэтому я предпочел другую известную библиотеку jpgraph. Подробнее о том, как вывести график температуры с помощью jpgraph.

Пожалуйста, обратите внимание на наш форум, на котором размещено масса полезной информации о работе сети 1-wire и пакета owfs.
 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:

(необязательно, не отображается на сайте)


Сортировка комментариев: Последние сверху | Первые сверху

2022-08-17 12:29:57 | Andrey_B
Владимир, в MegaD-14-IOR присутствует регулируемая подтяжка с помощью подстроечного резистора. То, что у вас датчики работают на линии длиной 23 метра, говорит о том, что подтяжка регулировалась (уменьшалась). У порта P35 контроллера подтяжка фиксированная 4,7кОм. А это слишком много для такой длинной линии. Можно уменьшить ее с помощью внешнего подтягивающего резистора. Если установить внешний резистор таким же номиналом 4,7кОм между клеммой порта и питанием +3.3В, то общий номинал снизится вдвое и составит 2,35кОм. Этого возможно будет достаточно.


2022-08-14 18:13:44 | Владимир
Добрый день в MegaD-14-IOR на порт 7 подключил датчики DS18B20 шиной длина 23 метра работает отлично.При попытке подключить эту же шину на порт 35 непосредственно MegaD 2561 порт датчики не видит настройки порта 35 аналогичны 7 порту MegaD-14-IOR в чем может быть проблема.


2021-01-22 21:20:44 | Andrey_B
Вадим, если вы выкручивали на минимум подстроечник в MegaD-14-IOR, то этого должно быть достаточно.
Не сталкивался лично с самопроизвольным кратковременным разогревом датчика. Если бы такое у меня происходило, проверил бы сеть на предмет контактов/замыканий. Часто банальные вещи бываю причиной многих странностей.


2021-01-22 19:51:52 | Вадим
Андрей, благодарю за ответы

> Подтяжку для такой длины нужно уменьшить как минимум в 2 раза. Внешний резистор 4,7кОм.
То есть несмотря на то, что подтяжка на Меге выкручена до минимума - этого все равно недостаточно?
Резистор ставится у контроллера или перед дачиком?

> Датчики нагреваются, если перепутать подключение питания. Если все подключено правильно, то никогда не наблюдал ситуацию с их разогревом.
Да, первый раз перепутал именно полярности, этот датчик на всякий случай отправил в утиль чтобы не влияло на эксперименты с подключением. Последующие нагревы были с другим датчиком, но повторюсь - это происходило крайне редко и после нескольких секунд разогрева он остывал и корректно показывал температуру (если бы были перепутаны полярности, но поведение было бы другим).


2021-01-22 18:20:45 | Andrey_B
Подтяжку для такой длины нужно уменьшить как минимум в 2 раза. Внешний резистор 4,7кОм.
Земля и данные в свитой паре ОБЯЗАТЕЛЬНО!
Если кабель экранированный, то лучше заземлить (подключить к настоящему заземлению, если оно есть) у контроллера.
Если ничего не поможет, пробовать оригинальные.
Датчики нагреваются, если перепутать подключение питания. Если все подключено правильно, то никогда не наблюдал ситуацию с их разогревом. Отображение в Web-интерфейсе контроллера значения "127" говорит об ошибке считывания данных, а не о реальной температуре датчика.
Исходя из моего опыта, датчики весьма надежны. У меня лично они никогда не выходили из строя (даже фейковые). Но точность согласно даташину у оригинальных +- 0.5С. То есть, два датчика рядом могут показывать значения, отличающиеся на 0.2-0.3С. Это нормально даже для оригинальных. У клонов разброс может быть существенно больше.


2021-01-22 16:08:50 | Вадим
Добрый день!
Некоторое время назад заказывал у Вас данные датчики в неоригинальном исполнении. Сейчас наконец-то дошли руки до экспериментов. Столкнулся со следующей проблемой - иногда при включении контроллеров датчики не инициализируются, в веб-интерфейсе Меги отображаются как NA. Уменьшил подтяжку до самого минимума - ситуация стала лучше, но все-таки изредка возникает. Что посоветуете делать?
Длина линии порядка 30-40 метров, витая пара. Плюс и минус подключены свитой парой, дата отдельным проводом (прочитал в комментариях о том что землю и данные лучше пустить по свитой, а плюс на отдельной жиле - в следующие выходные буду пробовать этот вариант). На каждый датчик - свой отдельный кабель.

Еще столкнулся с такой проблемой - я подключал датчик на горячую, при включенных контроллерах. В какой-то момент времени заметил, что датчик ОЧЕНЬ сильно разогрелся, руками держать его было нереально (веб-интерфейс контроллера показывал температуру 127 градусов) . Но спустя несколько секунд температура упала и он стал работать корректно. В последствии он работал нормально, когда в одно из включений контроллеров я опять не обнаружил на нем 127 градусов, впрочем через несколько секунд температура опять упала и дальше работал штатно.
Может быть у вас есть какие-то мысли, почему такое может происходить? А то я опасаюсь его укладывать под ламинат, все-таки потенциально пожароопасная ситуация может произойти.

И по вашему опыту, на сколько эти датчики надежные? Есть ли смысл устанавливать по два датчика в каждое место, чтобы контролировать работу друг друга или на случай выхода из строя чтобы 1 датчик все-таки остался рабочим?
Датчики укладываются под ламинат, поэтому если один датчик выйдет из строя, то не нужно было демонтировать половое покрытие для замены датчика.


2018-11-16 20:05:21 | Андрей
Вячеслав, спасибо за ответ. Будет интересно посмотреть :). 391033_собака_мейл_точка_ру
Как раз собрался на выходных продолжать свои эксперименты


2018-11-16 17:51:08 | Вячеслав
Андрей, У меня была такая проблема именно с витой парой, долго игрался с сопротивлением не помогало случайно увидел как надо подключать и теперь у меня примерно 6 датчиков на 1 шине расстояние 40 метров примерно с питанием на них. Смысл в следующим питание и землю подключаем параллельно на всех датчиках, а вот средняя нога по 2 проводам, только одним к датчику ,а возвращается от него по второму проводу и на другой датчик. (пример оранжевый в Р32 на датчике - оранжевый и бело оранжевый на 2 датчике бело оранжевый и можно оранжевый (но не соединенный с 1 датчиком если дальше идет линия) ) Полуметровые хвосты самих датчиков я оставлял , они не влияют. Могу выслать фото напиши почту.


2018-11-15 18:18:58 | Andrey_B
Силовые линии могут оказывать влияние только в том случае, если по ним идут значительные токи (5-10А и выше) и в случае, если силовые провода идут параллельно сигнальным. Попробуйте переподключить землю и уменьшить номинал внешнего подтягивающего резистора.


2018-11-15 16:31:41 | Андрей
Длина линии 18 метров по меткам на кабеле... А вот на счет того, как пускать данные и землю я делал как раз с точностью до наоборот - по свитой паре я пускал питание и землю и по отдельному проводу данные... Попробую перекоммутировать... К питанию подключать тоже пробовал - без особого успеха :( Есть еще одна мысль... У меня опуски к местам установки датчиков выполнены в одном коробе с силой... Может, на таких длинах это становится критичным? Так то разводка вся выполнена раздельно...


2018-11-15 15:45:31 | Andrey_B
При этом длина линии какая?
Если внешний резистор действительно 4,7кОм, то на 15-20 метрах должно работать. В крайнем случае попробуйте уменьшить номинал резистора. Также попробуйте подключить датчик к питанию. Землю и данные лучше пускать по свитой паре. На больших расстояниях это имеет значение.


2018-11-15 15:17:44 | Андрей
Да я уже раз 500 проверил правильность подключения :)
Сейчас делаю так:
Левая нога датчика - земля на меге
Средняя нога - Р32 на меге
Правая нога - земля на меге (вместе с левой ногой)
Резистор - Р32 соединил с +3.3 на меге
Результата нет :(


2018-11-15 15:05:42 | Andrey_B
Андрей, дополнительный резистор номиналом 4,7кОм должен был помочь, так как в этом случае общий номинал подтяжки составляет 2,35кОм. Проверьте правильность подключения. На длинных линиях номинал нужно уменьшать, но в разумных пределах.


2018-11-15 14:46:35 | Андрей
Андрей, спасибо за быстрый ответ. Правильно ли я понимаю, что если ресистор на 4,7 КОм не помог, нужно дальше увеличивать номинал? Потому что в моем случае такой ресистор никак не повлиял на показания датчика...


2018-11-15 13:11:42 | Andrey_B
Андрей, на форуме эта ситуация обсуждалась не раз. В сущности все просто. В MegaD-2561 для того, чтобы обеспечить максимальную универсальность цифрового порта установлена пассивная подтяжка к питанию в виде резистора номиналом 4,7кОм (рекомендация производителей элементов для цифровых шин). Но с увеличением длины, электрические параметры линии меняются и такая подтяжка становится уже большой для корректной работы шины. Чтобы датчики (или любые другие цифровые устройства) работали стабильно на линиях свыше 12-15 метров необходимо уменьшить номинал подтяжки. Сделать это можно с помощью дополнительного резистора. Берется копеечный резистор, например, с таким же номиналом 4,7кОм и подключается между клеммой порта и питанием +3.3В. Таким образом два резистора (внешний и встроенный) будут работать параллельно, а общий номинал согласно законам физики снизится ровно в 2 раза. Вот почему в новом модуле MegaD-14-IOR мы предусмотрели специальные дополнительные подстроечные потенциометры для регулировки уровня подтяжки. На сайте размещена статья об этом модуле, там про это тоже написано.


2018-11-15 11:59:03 | Андрей
Добрый день! Подскажите пожалуйста по датчикам DS18B20. Ситуация такова: перепробовал кучу датчиков, и в герметичном исполнении, и в ТО-92, картина практически одинакова - датчики живут только на коротких линиях (по моим экспериментам - не более 10 метров :(). Ранее списывал неудачи на то, что датчики были от неизвестных производителей (купленные в местных магазинах радиодеталей), поэтому решил заказать заведомо рабочие на Вашем сайте. Однако, это не спасло отца русской демократии. Картина не изменилась. Провел гору экспериментов по различным способам подключения датчиков - и витой парой, и кабелем большего сечения, и с паразитным питанием, и с внешними блоками питания на 5 вольт...
Сейчас картина следующая: датчик подключаем напрямую к Мега 2561 к порту 32. Длина кабеля 1 метр. Тип кабеля - витая пара. Права и левая ноги подключены одной парой (оранжевой), средняя нога (данные) - зеленый провод. Соответственно, оранжевую пару подключаем к разъему GND, зеленый к Р32. Настройки порта: DSen, 1W. Все работает.
Берем еще кусок витухи. Той же самой. Длина 15 метров. Наращиваем всю схему, использую разъемы ВАГО. Датчик перестает работать. Показания на порту -0.06. Настройка порта, естественно не менялась. При этом, если поменять 1W на 1WBus, то датчик опознается верно, но температуру отдает также -0.06.
Поначалу грешил на разъемы ВАГО, но сборка датчика на непрерывном куске витухи дала тот же результат, к тому же, если уменьшить "удлинитель" до 8 метров, то датчик вновь радостно живет, не обращая внимания на ВАГО...
Уже всю голову сломал... Читал на форуме, что люди и на 60 метрах получают нормальные показания датчиков, а тут...
Может у Вас есть какие то идеи относительно этой ситуации?


2018-01-07 12:21:52 | Юрий
Добрый день, Андрей и с Новым годом!
Хорошо, если тут не в тему пишу, напишу на электронку.
Но Вы не правы.)))


2017-12-23 10:36:40 | Andrey_B
Юрий, во-первых, вы выбрали не совсем подходящую страницу для комментариев. Здесь речь идет о DS9490R, пакете owfs, которые к контроллеру MegaD-2561 отношения не имеют.
Во-вторых, вы пишете "Датчик подключен, как показано в статье к MegaD-8170-R". Какую статью вы имеете ввиду? Может, быть вот эту? Но здесь речь идет о совершенно другом исполнительном модуле. Здесь речь идет не о MegaD-8I7O-R, а о MegaD-14-IN!
Хочется понять, по какой инструкции вы подключали датчик.
В-третьих, основная статья про модули MegaD размещена здесь. В ней указано, что цифровые датчики можно подключать ТОЛЬКО к цифровым портам. В модуле MegaD-8I7O-R имеется только один цифровой порт. И это порт P14.
Порты P0-P6 - это так называемые "стандартные входы", которые предназначены для подключения "сухих контактов".
Еще раз. Вот основная статья.
Читаем ее:
===
MegaD-8I7O-R
Порты P0-P6 - "стандартные входы" для подключения кнопок, выключателей, охранно-пожарных датчиков, U-Sensor и т.д. Цифровые датчики с этими портами работать не будут.
Порт P14 - "цифровой вход" для подключения цифровых датчиков и шин (например, DS18B20, считыватели 1-wire, DHT22). Для этого порта отсутствует индикация на лицевой панели.
===
Здесь же все предельно точно написано!
По поводу напряжения. Некоторое напряжение на стандартных портах присутствует. Это совершенно нормально. Но еще раз - никакие цифровые датчики к ним подключать не нужно. Они не будут работать.
Да, добавлю, что DS18B20 можно также подключать к любым портам, размещенным на клемме XT2 контроллера: P30-P35. Они как раз и предназначены для подключения цифровых шин. Все эти шесть портов. Подробно все написано в основной статье. Нужно только внимательно ее прочитать.


2017-12-23 06:23:59 | Юрий
Деактивировал порт (установил NC) напряжение на выходе всё равно +9V


2017-12-23 06:20:08 | Юрий
Да, теперь вопрос: что делать?
Неправильно работает выход?
Не тот девайс?
Не понимаю.


2017-12-23 06:17:03 | Юрий
Добрый день!
Андрей, у меня проблема с подключением DS18B20.
Оборудование: MegaD-2561 + MegaD-7170-R
Настройки: XP1/Р6/DSen//1w Val 25.00, Hst0.50
Датчик подключен, как показано в статье к MegaD-8170-R: земля к правой и левой лапкам, данные к центральной.
Датчик не заработал. Я подумал, что он перегрет при пайке. взял новый и прикрутил без пайки и ничего не поменялось.
Подумал, что нехватает питания, но когда замерил, то на контактах датчика оказалось +9V, хотя датчику нужно от +3V до +5V.
Затем я прикрутил резистор параллельно датчику и снизил напряжение до +4V. Датчик незаработал. Сгорел видимо.
Обидно! Ведь я делал всё по инструкции!(((((((


2017-10-14 20:49:47 | Юрий
Спасибо за помощь, эту проблему решали:
https:/www.ab-log.ru/forum/viewtopic.php?f=1&t=420&sid=ec6509248c758737f7ca255626145d6d&start=20


2017-10-14 20:25:58 | Andrey_B
Юрий, проверьте список файлов пакета (dpkg -L). Вполне возможно, что ownet.php не входит в состав Debian-пакета. Но его можно взять из исходников owfs.


2017-10-14 18:55:35 | Юрий
root@debian:~ apt-get install owfs
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлена самая новая версия owfs.


2017-10-14 11:28:35 | Andrey_B
Юрий, а пакет owfs вообще установлен?


2017-10-13 22:25:48 | Юрий
Установлена Debian GNU/Linux 8.9 (jessie), owfs - проблема: в системе нет ownet.php скрипт


выдает ошибку: File 'ownet.php' is not found.root@debian:/var/www


2016-11-13 18:37:33 | Vitaliy
Спасибо за информацию Андрей!

Буду пробовать на тех что вы посоветовали.
Изначально не хотел их использовать изза того что 2 порта на контроллера занимают (у меня их уже не хватает) и на один провод больше (+ еще один кабель тянуть), но видимо вариантов нет.



2016-11-13 15:11:41 | Andrey_B
Vitaliy, не уверен, что можно как-то обеспечить сопряжение DHT22 с 1-wire. Готовые датчики температуры/влажности для 1-wire тоже еще поискать нужно. DHT-22 не очень удачные датчики. Они часто зависают.
Я у себя использую I2C-датчики HTU21D вместе с MegaD-328. Отлично работают.


2016-11-13 11:07:48 | Vitaliy
Спасибо за скорый ответ, Андрей!

Тогда получается у меня 3 варианта:

1 - както сопрягать их с 1wire
2 - подключить их к МЕГЕ напрямую (идея была поставить датчики по дому, и расчет был примерно на 30 метров длины кабеля - значит прийдется тянуть к Меге по 3 провода на датчик)
3 - купить 1wire датчики температуры и влажности

что посоветуете?


2016-11-13 10:52:01 | Andrey_B
Vitaliy, DHT22 не предназначен для работы в 1-wire сетях и с мастером DS9490R он работать не будет.


2016-11-13 10:41:09 | Vitaliy
Добрый день!

Столкнулся с такой проблемой:
есть мастер сети DS9490R и датчик DHT22 (точнее есть два, пробовал оба - поведение одинаковое)
при подключении к компьютеру мастера сети, owfs показывает его наличие
подключение датчика по паразитному питанию никак не определяется
если же подключить питание - то не просто не обнаруживается датчик, но также исчезает мастер сети. если отключить датчик - мастер появляется.

проверялось на двух заказанных у вас датчиках - ведут себя одинаково. Один датчик подключен через адаптер (/ab-log.ru/smart-house/ethernet/sensors-adapter-box), второй распаян сразу на плате адаптера черного цвета.

датчики проверял подключая их сразу к МЕГЕ - данные они показывают - так что исправны.

Поделитесь соображениями куда копать дальше.

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


2015-03-24 16:15:58 | Andrey_B
Николай, не могу сказать. У меня 7 датчиков, расположенных довольно далеко друг от друга, работающих через адаптер DS9490R с 2008 года. Никогда ничего подобного не наблюдал.


2015-03-24 15:10:47 | Николай
У меня 6 датчиков на raspberry B+ (pidora). Если запускать подряд owdir много раз, то нет нет и появится вариант с отсутствующими датчиками (одним или несколькими). С чем связана такая нестабильность? Спасибо.


2015-03-17 18:43:32 | dmitrydmitry
Первая и третья нога на одном проводе, средняя на другом. Все на работе, маркировку и другой датчик только завтра смогу попробовать.


2015-03-17 18:00:22 | Andrey_B
Дмитрий, если датчик работает на паразитном питании, нога Vdd соединена с ногой GND? Так ведет себя один датчик или остальные также? Какая маркировка на самом датчике?


2015-03-17 16:03:00 | dmitrydmitry
А почему может быть вот такие показания:
cat /mnt/1-wire/10.67C6697351FF/temperature
59.3892root@debian:~ cat /mnt/1-wire/10.67C6697351FF/temperature
18.0372root@debian:~ cat /mnt/1-wire/10.67C6697351FF/temperature
16.3131root@debian:~ cat /mnt/1-wire/10.67C6697351FF/temperature
39.169root@debian:~ cat /mnt/1-wire/10.67C6697351FF/temperature
91.3027root@debian:~ cat /mnt/1-wire/10.67C6697351FF/temperature
81.9695root@debian:~ cat /mnt/1-wire/10.67C6697351FF/temperature
35.9095root@debian:~ cat /mnt/1-wire/10.67C6697351FF/temperature
55.2485root@debian:~

Датчик лежит рядышком, разброса такого быть не может. Тем более в течении 10 сек?
Неужели провода перепутал? Питание паразитное.


2015-03-06 14:26:40 | Дмитрий
Вот датчик температуры который тут описан имеет max135(я точно не помню) а есть ли датчики у которых диапозон выше. Просто температура в потоплении печи выше, нужно её замерять и по необходимости включать насосы и кран. Спасибо


2014-01-14 17:05:19 | Andrey_B
Андрей, лично я не запускал owfs через cygwin, но на нашем форуме есть люди, которые это делали. Там же есть соответствующая ветка. Попробуйте найти ответ там.


2014-01-13 12:20:59 | Андрей
Подскажите, пожалуйста. Какие манипуляции нужно провести, чтобы корректно запустить OWFS через cygwin на винде? Датчики подключаю через COM-порт.


2012-12-28 13:16:56 | Andrey_B
Strangeman, owfs поддерживает "simultaneous conversion".
Обсуждение


2012-12-27 21:03:46 | Strangeman
Может кто-нибудь подскажет относительно низкоуровневый софт, позволяющий посылать команды и читать регистры 1-wire устройств?
Дело в том, что OWFS не очень удобна при большом кол-ве температурных датчиков (или я не разобрался). Хотелось бы посылать команду конвертирования не каждому датчику, а одну на всех по расписанию, а потом читать датчики. OWFS при опросе датчика посылает ему команду конвертирования, а это 750ms на каждый датчик.


2012-11-24 00:20:50 | Andrey_B
Дима, за my_server скрывается IP-адрес или имя сервера.
Это может быть быть, например, localhost или 127.0.0.1 или любые другие имя/адрес.


2012-11-22 22:54:49 | Дима
Андрей поскажите, что в строке /my_server:3001 скрывается за my_server. Я только установил owfs и датчик опрашиваю через коммандную строку. А в браузер как это вывести?


2012-11-01 13:38:25 | buzz
На всякий случай добавлю, что начиная с Ubuntu 12.04 пакет owfs, включая всевозможные биндинги (libow-php5, python-ow и др.), добавлен в репозиторий. Т.е. для установки достаточно набрать:
$ sudo apt-get install owfs


2012-09-07 10:57:28 | Andrey_B
Юрий, как гласит главная страничка owfs на Sorceforge: "OWFS is also ported to embedded routers, Mac OSX and Windows." Поскольку OSX - это потомок BSD, owfs должна компилироваться в этой среде. Наберите в Google "owfs osx", кое-какая информация есть.


2012-09-07 02:34:34 | Юрий
А есть owfs для OSX?


2012-02-10 11:19:37 | Andrey_B
you_too, лучше этот вопрос задать на нашем форуме


2012-02-10 00:51:16 | you_too
И еще вопросик, если позволите. Как вы считаете нужен ли подтягивающий резистор 4.7 кОм от DQ к +5V внешнего питания. Вот здесь avrdevices.ru/termometr-na-ds18b20/ , скажем, об этом оживленная дискуссия.


2012-02-09 23:03:19 | Andrey_B
you_too, да, +5В с компьютера взять можно. В компьютерных БП это действительно красный провод.


2012-02-09 21:29:14 | you_too
А можно взять +5V из компьютера и подать на каждый датчик (3 ножка) Vcc DS18B20. Скажем я возьму свободный провод в первом разветвителе (черный или желтый) и подам туда +5V, ну и соответственно дальше уже сеть будет 3х проводной. Так можно? Насколько я помню в стандартном разъеме для питания ide винчестера красный провод и есть "+5V". Просто буду делать все линуксе, но еще только собираю комп, а работоспособность мастера DS9097U-009 и 3 датчиков проверить захотелось уже сейчас (протестировать). Так вот при запуске всего хозяйства в Винде с системой «Бенукс», последняя все датчики определила я их активировал, но мне сообщается об отсутствии внешнего питания. Я так понимаю это из-за мастера, я использую не с USB портом, а с COM-портом. В связи с этим и родилась идея тупо подать плюс 5 вольт от компа на третий провод.


2012-02-09 11:03:23 | Andrey_B
you_too, Vcc либо подключают к питанию (диапазон напряжений указан в Datasheet), либо, если используется паразитное питание, замыкают на GND (это тоже указано в Datasheet).


2012-02-09 00:53:26 | you_too
Подскажите нубу, если использовать DS9097U-009 и DS18B20 судя по Datasheet /datasheets.maxim-ic.com/en/ds/DS9097U-DS9097U-S09.pdf мы соединяем 4 pin RJ11 c 2 (DQ) выводом DS18B20, 3 pin RJ11 c 1 (GND) выводом DS18B20. Собственно вопрос, что делать с 3 (Vcc) выводом термометра? Кучу всего перерыл и однозначного ответа не нашел. У кого то этот вывод не задействован совсем, а кто то его перемыкает с первым 1 (GND) выводом. Как правильно?


2012-01-30 11:44:18 | Andrey_B
Antti, порт owfs под FreeBSD есть.
Против FreeBSD ничего не имею. Linux выбрал только по той причине, что под эту ОС, как мне кажется, больше всевозможного программного обеспечения для домашней автоматизации, проще найти информацию, ответы на возможные вопроса, она чаще используется в системах энтузиастов.


2012-01-29 23:32:47 | Antti
Подскажите, а есть ли порт owfs под FreeBSD ? В смысле портирован ли ? Может Вы в курсе... предпочитаю эту ОС...И если не трудно, Ваше мнение по постройке ядра управления на этой ОС.


2011-10-21 19:59:49 | Andrey_B
Виктор, на сайте Maxim вы можете найти 1-Wire SDK for Windows.
SDK включает примеры для C#, VB.NET, VB 6.0, C, Delphi и документацию по использованию API в формате HTML. Я думаю, вам имеет смысл скачать этот SDK и изучить его.


2011-10-21 19:41:14 | Виктор
А нет ли готовых библиотек под BorlandC3.11? Самых простейших, шина 1-wire может же работать на одной ноге параллельного порта компа, мне всякие навороты вроде интернетов не нужны, просто надо управлять своей котельной, и при этом иметь возможность сравнительно несложно если что подкорректировать алгоритмы и иметь индикацию на экране. На микроконтроллере это сложнее реализовать(к нему надо кроме1-wire еще экран лепить), а перепрошить контролер тоже целая история, и проверить работоспособность прошивки тоже непросто, а на компе в пошаговом режиме легко прощелкать...


2011-08-04 15:45:12 | Андрей
Большое спасибо, очень познавательно, от себя добавлю ссылку на инструкцию по установке OWFS на новый Debian squeeze /archive.pfb.no/2010/04/01/owfs-on-debian-squeeze/ мне очень помогло


2011-07-18 23:27:41 | Andrey_B
Антон, в Linux есть несколько способов запускать программы автоматически. Самый простой способ - добавить нужную команду в файл rc.local
Этот файл в разных дистрибутивах находится в разном месте
/etc/rc.local
или
/etc/rc.d/rc.local
или
/etc/rc3.d/S99rc.local
Найдите этот файл в своем Linux'е и пропишите указанную вами команду туда. Тогда owfs будет стартовать автоматически.


2011-07-18 23:18:03 | anton
Все получилось. Измерения снимаю. Но пока не понял как сделать так чтобы /mnt/1-wire монтировалась автоматически при запуске компьютера. Сейчас после включения я набираю в терминале такую команду sudo /opt/owfs/bin/owfs --allow_other -u /mnt/1-wire и все начинает работать . Как запускать cron от root я прочитал а как сделать автозапуск от root - непонятно пока. Может подскажете? -)


2011-06-27 10:45:40 | Andrey_B
Xace, уточните, вас интересует PHP-код или SQL-запрос?
SQL-запрос зависит от структуры таблицы. PHP-код зависит от используемой БД. Вас интересует MySQL? Впрочем, и то и другое настолько простое и стандартное...


2011-06-25 13:35:44 | Xace
Андрей , а можно попросить выложить листинги, как значения датчика класть в базу... ?


2010-08-10 23:09:00 | Andrey_B
Иван, подключал так, как вы говорите - последовательно, с записью нового ID в базу данных и присвоением человеческого наименования. С датчиками было и так, что грел их по очереди и следил какой из них меняет свое значение. ;)


2010-08-10 22:50:28 | IvanL
Андрей, а как вы решали у себя проблему с монтажом сразу нескольких 1-wire устройств на линии. В смысле, где какой ID стоит. Или же шли последовательно - подключили одно новое устройство, нашли новый ID, записали в базе, где стоит и т.д.


2010-06-17 11:17:57 | Andrey_B
Константин, вся прелесть owfs заключается в том, что пользователю ничего не нужно знать о низкоуровневой работе сети 1-wire, о командах, которые посылает мастер и многом другом. owfs предоставляет высокоуровневый интерфейс. Все, что нам необходимо как пользователям, это запросить нужный параметр компонента или записать нужное значение в компонент. Всю остальную черновую работу делает owfs. Посылает ли owfs команду Convert или нет мне, как конечному пользователю, знать не нужно. owfs работает с любыми датчиками и при любой схеме подключения, выдавая точные результаты.
Что касается 18S20, то он менее точен, чем 18B20. 18S20 - 9 бит, тогда как 18B20 - 12 бит. Кроме того, 18B20 прекрасно работает на паразитном питании (схема его подключения в таком режиме описана в Datasheet). Стоит сказать, что в моей сети около 10 датчиков DS18B20, работающих на паразитном питании. Самый удаленный датчик находится в земле на глубине 2 метра и на расстоянии 60 метров от мастера.


2010-06-17 10:27:08 | Константин
Да, справедливости ради, должен заметить что то что я писал раньше относится к паразитическому питанию датчика и модели S, но к тоже захочет использовать В, когда есть более точный с, да и тянуть дополнительный провод для питания?
P/S Простите за орфографию... особенно за "в не" -:)


2010-06-17 08:17:32 | Константин
Статья полезна, безусловно! Но как то упущен важный факт... для показания температуры датчику должна быть послана команда Convert T [44h] мастером, а об этом ни чего не сказано... а иначе температура будет показываться минуту, а потом станет 85 С, в не зависимости от реальной температуры!!! это сделано производителем для того чтоб знать о работоспособности датчика. А вот как из owfs послать команду, это ВОПРОС?


2009-06-15 16:59:45 | Andrey_B
Владимир, не совсем понятна ваша просьба. Вы хотите, чтобы я поместил исходные коды для работы с 1-wire на PHP и записи данных в MySQL? Или в общих чертах рассказать о структуре базы данных?


2009-06-12 20:38:57 | Владимир
Полезные статьи.Спасибо. Есть просьба, не могли бы Вы добавит + ко всему процесс сбора данных и их занесение в базу. Скажем два датчик два ключа, как Вы организовали базу и как туда вносите данные.?