Страница 2 из 4

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 11:13 am
nick7zmail
neromih писал(а): Что я мог упустить?
say($temp); добавьте пока...проверить...вдруг температура уже потерялась где нить)) потом, как настроете - можно убрать будет.

Код: Выделить всё

$file = '/sys/bus/w1/devices/28-00000634bdbe/w1_slave';
$lines = file($file);
$temp = explode('=', $lines[1]);
$temp = number_format($temp[1] / 1000, 0, ',', '');
say($temp); 
sg('ds18b20.Temp',$temp); 
Посмотрите в панели управления->объекты->ваш_класс->ваш_объект->Свойства - есть ли свойство Temp и записалась ли в него температура...

В типе выберите не объект, а label (Надпись)
И в название можно что то типа "Температура %ds18b20.Temp% °С"

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 12:09 pm
neromih
Спасибо Вам всем кто участвовал в данной теме!
Постараюсь сделать инструкцию и сюда выложить с картинками :)
Просто я новичок в этом деле, вдруг кому облегчу жизнь.
Спасибо всем еще раз за помощь!!!

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 12:43 pm
slgeo
Самое сложное ты уже написал, недоставало простого )

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 1:03 pm
lanket
neromih писал(а):Создал Объект - ds18b20:
Название: ds18b20
Класс: STempSensors
Описание: тест датчика
Методы: в STempSensors->Tempchanget:
Выполнить - Код - PHP

Код: Выделить всё

$file = '/sys/bus/w1/devices/28-00000634bdbe/w1_slave';
$lines = file($file);
$temp = explode('=', $lines[1]);
$temp = number_format($temp[1] / 1000, 0, ',', '');
sg('ds18b20.Temp',$temp); 
В меню управления:
Добавил новый объект:
Название %ds18b20.Temp%
Приоритет 90
Тип Объект
Период обновления 10 сек
Связанный объект ds18b20 - тест датчика.
В результате выводит надпись - Датчик.

Что я мог упустить?
Наоборот.
Метод Tempchanget вызывается сам при изменении значения свойства temp

Приведенных код php вам надо не в этот метод а лучше в сценарий который создадите для этой цели.
На в моделуле Cron пропишите вызывать ваш сценарий каждые 3 минуты как хотели

В том сценарии можно прописать к примеру опрос и других датчиков, если планируется их больше.

И полностью согласен с предостережением предыдущего оратора shemnik69.

Отправлено с моего Redmi Note 3 через Tapatalk

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 5:29 pm
neromih
Еще раз спасибо Вам всем, не ожидал такой поддержки (я новичок). Спасибо!

Так вот мой мануал как можно реализовать опрос датчиков ds18b20 подключенных к Raspberry pi 2 через GPIO (4).


1. Создаем - СЦЕНАРИЙ:
Название: Датчик
Категория: Сенсоры
Описание: Тест датчика
Код: выбираем PHP (кружок).
Заполняем следующим текстом:

Код: Выделить всё

$file = '/sys/bus/w1/devices/28-00000634bdbe/w1_slave';
// 28-00000634bdbe - id датчик (у Вас он будет другой) меняем на свой.
$lines = file($file);

$temp = explode('=', $lines[1]);

$temp = number_format($temp[1] / 1000, 0, ',', '');
// форматируем полученное значение с округлением до целого числа (вроде так называются цифры 10, 23, и т.д.)
sg('ds18b20pod.Temp',$temp);
// назначаем место куда будут заноситься показания (спасибо большое slgeo) я это так понял.
можно написать сразу несколько подключенных датчиков, соотвественно будет $file1 (не забываем указать путь), $lines1, $temp1,

Далее: сохраняем.

2. Создаем объект:
Название: ds18b20obr (обратим внимание что в PHP он у нас есть - sg('ds18b20pod.Temp',$temp); , то есть можно еще подключить датчики ds18b20 и прописать их, к примеру: sg('ds18b20XXX.Temp',$temp); - где ХХХ любое имя которое нам нравится)
Класс: STempSensors
Описание: Датчик температуры котла (обратка) это описание моего датчика который прикреплен к обратки котла, у Вас он может быть в другом месте, и соответственно и описание его будет другое
Вкладка - Метод:
STempSensors-> Tempchanged - редактируем данный пункт.
Выбираем - Сценарий (кружоу) - из выпадающего списка - Датчик.
Сохраняем (хотя кнопка - Обновить)

3. Отображаем в меню.
Переходим в вкладку ОБЪЕКТЫ - далее Меню управления
Добавляем новый объект (нажимаем кнопку)
Название (*): Температура в доме %ds18b20obr.Temp% °C
Тип: Подпись
Период авто обновления: 15 сек.

4. Cron по совету lanket (ред. 21.04.2017)
Устанавливаем Cron в вкладке Маркет дополнений.
Переходим в вкладку (закладку) Cron
Добавляем новую запись
Enable - ставим галку
Title * - пишем - Датчик
Description - пишем - Датчик
Crontab *- пишем - */3 * * * * (по крону очень много информации, данный вариант запускает каждые 3 минуты наш "скрипт?, команду?, опрос?"
Код: ставим галку Blockly.
Вставляем блок - запустить сценарий "Датчик"
Сохраняем.

У меня работает корректно и все отображает. Спасибо Всем за помощь. Надеюсь кому-нибудь пригодится.

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 5:54 pm
lanket
neromih писал(а):...
Так вот мой мануал как можно реализовать опрос датчиков ds18b20 подключенных к Raspberry pi 2 через GPIO (4).
.. .
В шапку (первый пост в этой ветке) пожалуйста добавьте ссылку с текстом РЕШЕНО на этот пост, чтобы другим было проще найти решение.

Отправлено с моего Redmi Note 3 через Tapatalk

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 5:56 pm
nick7zmail
Ссылку однозначно, а ещё модеров в конце/начале темы можно попросить подставить [Решено]

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 6:02 pm
neromih
Уважаемые lanket, nick7zmail нужно хотя бы день протестировать, и обязательно исправлю на - РЕШЕНО. Что то я засомневался в данном решении, в плане обновления... Завтра обязательно отпишусь.

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 6:19 pm
neromih
К сожалению не обновляет показания датчиков, обновляет только при запуске скрипта :( как решить?

Re: Опрос ds18b20 + Raspberry (GPIO)

Добавлено: Чт апр 20, 2017 6:31 pm
lanket
neromih писал(а):К сожалению не обновляет показания датчиков, обновляет только при запуске скрипта :( как решить?
Так в Модуль Cron надо прописать вызов этого скрипта каждые, к примеру, 3 минуты

Отправлено с моего Redmi Note 3 через Tapatalk