Показания с локального датчика

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Mochalov_da
Сообщения: 27
Зарегистрирован: Вт май 20, 2014 5:24 pm
Откуда: Ярославль
Благодарил (а): 7 раз
Поблагодарили: 7 раз
Контактная информация:

Показания с локального датчика

Сообщение Mochalov_da » Вт май 27, 2014 9:08 pm

Помогите пожалуйста разобраться!
Я подключил датчик DS18B20 на прямую к Cubieboard на котором стоит MD. Теперь я могу снимать с него показания вот таким маленьким скриптом:

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

$file = file_get_contents('/sys/bus/w1/devices/28-0000056cc04c/w1_slave', true);
$str_new = explode('t=', $file );
echo $str_new[1] / 1000;
Как мне грамотно прописать этот датчик в MD, что бы его значения писались в базу и т.д.???
Долго пытался понять как работает система...
Хотел воспользоваться примером из статьи http://smartliving.ru/Main/ScMonitorHeating, но так и не смог понять откуда берется $params['t']...
Помогите пожалуйста :oops:
alexg31
Сообщения: 18
Зарегистрирован: Вт июн 18, 2013 10:16 am
Благодарил (а): 0
Поблагодарили: 0

Re: Показания с локального датчика

Сообщение alexg31 » Пт май 30, 2014 9:09 pm

У меня опрос нескольких датчиков реализован следующим образом:
Создаем класс Tempsens, добавляем 2 свойства: ident (идентификатор датчика, в твоем случае это 28-0000056cc04c) и temperc (сюда будут сохраняться показания датчиков). Для каждого датчика создаем внутри класса объект и прописываем идентификатор. Далее создаем сценарий опроса датчиков:

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

$objects=getObjectsByClass("Tempsens");
foreach($objects as $obj) {
$file=getGlobal($obj['TITLE'].".ident");
$file = '/sys/bus/w1/devices'.$file.'/w1_slave';
$lines = file($file);
$temp = explode('=', $lines[1]);
$temp = number_format($temp[1] / 1000, 1, ',', '');
setGlobal($obj['TITLE'].".temperc",$temp);
}
и запускаем через метод onNewMinute
Ответить