Linux Mint    Ubuntu    openSUSE    Asterisk    FreeBSD    Android    Nokia N900    Игры в Linux    Mail.ru Agent
 Linux Mint    Ubuntu     openSUSE     Asterisk     FreeBSD     Android     N900     Games     Agent

Управляем температурой в доме (Часть 2)

В прошлом материале о подключении датчиков DHT11 к Raspberry мы научились подключать их и снимать данные с помощью приложения на C. Но так как данные работает не в реальном времени, нам потребуется сделать обработчик, который будет опрашивать датчик до тех пор, пока не получит требуемые данные.

Решаем проблему получения пустых данных

Так как мы хотим работать с датчиками через web, дальнейшие манипуляции будем проводить в папке /var/www/

Скопируем туда скомпилированный ранее файл:

cp /home/pi/bcm2835-1.15/wiringPi/wiringPi/readDHT /var/www/readDHT

Напишем код, который проверит есть ли требуемые данные и выведет их для дальнейшего парсинга в переменных w1 и t1.

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

Создаем файл dht0.sh

nano /var/www/dht0.sh

С таким содержимым:

#!/bin/bash
DHT1="/var/www/readDHT 11 4"
for ((i=1; i<=30; i++))
do
a=$(exec $DHT1 | grep "Temp" | awk -F " " '{print "w1="$3"&t1="$7}')
if [ "$a" != "" ]
then
break 2
fi
done
echo $a

Делаем файл исполняемым:

chmod +x /var/www/dht0.sh

Проверяем работоспособность:

DHT11

По аналогии создаем три аналогичных файла для других датчиков.

После чего выводим данные в веб-страницу dht.php

nano /var/www/dht.php

Содержимое файла можно скачать по ссылке: dht.php

Теперь мы видим следующие данные:

Подключаем DHT11 к Raspberry

Перед нами температура и влажность с трех датчиков и кнопка включения и выключения реле 1.

Какой практический интерес?

Как я уже говорил раньше, все это должно быть завязано в системе управления "умным домом" - Majordomo. А этот конкретный модуль будет следить за температурой в разных помещениях и управлять различной нагрузкой (обогреватель, свет в доме, уличное освещение).

На выходные часто уезжаем из города на несколько дней и за состоянием температуры в системе водяного отопления следит автономный контроллер. Именно он не допускает размораживание системы. Созданная сейчас система будет управляться удаленно и может обладать более гибкой логикой.

Например, Majordomo позволяет задать определенную логику по местонахождению хозяев (например по GPS) и в случае выезда из точки А в сторону дома, он может включить обогреватель создать в помещении требуемую температуру.

В данный момент Реле 1 активируем контактор, который позволил подключить нагрузку до 3Квт (12А), чем в моем случае является стационарный обогреватель на входе.

Отправить комментарий

  • Строки переносятся автоматически
  • Доступны HTML теги: <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <p> <br> <quote>
  • Ссылки не индексируются

Подробнее о форматировании

CAPTCHA
Ответьте на вопрос, чтобы мы убедились что вы человек.