Blog-i.ru

Умный дом своими руками

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Главная Умный дом версия 2.0 Температурный контроль в умном доме

Температурный контроль в умном доме

 

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

На первом этапе требовался контроль за температурой батареи - я обзавелся датчиком DS18B20 и повесил его на батарею. В то время я еще не знал о существовании сети 1-wire и поэтому купил другой "мастер температурной сети" - BM1707. Кроме получения информации с датчиков DS18B20, это устройство умеет управлять 2-ями реле, тоже полезная вещь - потом пригодится.

Температурный контроль в умном доме Температурный контроль в умном доме Температурный контроль в умном доме

Вот само это устройство в коробке из комплекта и обычным телефонным разьемом для подключениея сети датчиков DS18B20.

Сначала он работал у меня на windows, но так как я полностью решил переходить на linux, то пришлось искать ПО для BM1707 на linux.Программа называется BMcontrol, вроде как говорят работает на всех linux системах. У меня стоит debian 6 и все работает на ура.

Скачиваем программку, кладем ее в любую папку, я положил ее в /var/www, мне показалось так будет удобнее. Потом объясню почему. Далее проверяем работу проги и работу датчиков:

Запускаем терминал и пишем: sudo /var/www/bmcontrol scan

Должно получиться что то типа temp_id1 = 90000002dad9d, значение после знака "=" это "адресс" температурного датчика. Он нам необходим для запроса температуры этого датчика, что бы получить значение температуры, необходимо выполнить в терминале: sudo /var/www/bmcontrol temp 90000002dad9d

Это и будет температура нашего датчика. Забыл еще уточнить, если программа не заработает - смотрите права в свойствах - должна стоять галочка на "Выполнять этот файл как программу".

Значение мы получили, но что с ним делать дальше? Для систематизации значений и их обработки, их необходимо записать в БД. И какую нибудь внятную оболочку - для удобства использования. Для этих целей я использовал уже разработанную оболочку Smart Home FE.

Интерфейс умного дома

 

Инструкция по установке (читать очень внимательно!) есть на сайте самой "оболочки", она довольно продуманна и легко ставится, но есть одно НО. С первого раза у меня ни чего не заработалло - я стал разбираться и копаться в коде.

Так как программе нужен доступ от root'а, то запускаться она будет только через sudo, есть еще другие пути, но этот проще. Для этого правим стоки в файле bmcontrol.php где встречается команда "exec", например в этой строке exec("/usr/local/bin/bmcontrol ports",$aports); необходимо заменить на exec("sudo /var/www/bmcontrol ports",$aports);

Теперь файлик bmcontrol.php необходимо запускать каждую минуту. В настройках bmcontrol.php по умолчанию запись в БД происходит каждые 5 минут. Данные беруться опять же из файла bmcontrol.php, который необходимо запускать каждую минуту. Об этом написанно на оф. сайте, но у тех, кто не знает как работать с cron, возникнут серьезные проблемы.

Создаем файлик temp, в этом файле пишем

SHELL=/bin/bash
MAILTO=user
*/1 * * * * /usr/bin/wget localhost/где лежит файл/bmcontrol.php

Открываем терминал и пишем:

Crontab /var/www/где лежит файл/temp

Все! Теперь cron будет выполнять этот файл каждую минуту.

Но теперь возникает новая проблема. По умолчанию в системе при попытке запуска программы в терминале через sudo, система спрашивает пароль. Т.е при такой настройки системы у нас ни чего не заработает. Поэтому необходимо отключить запрос пароля. Делается это добавлением строк в файл /etc/sudoers

user ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: ALL

Теперь перезагружаемся. Далее все настраиваем по иструкции и все работает.

 

Комментарии  

 
0 #2 Anton 08.02.2012 20:48
У меня при запуске install.php вываливает

PHP Notice: Undefined index: act in /var/www/term/install.php on line 4
PHP Notice: Undefined index: act in /var/www/term/install.php on line 18


Что это может быть?
Цитировать
 
 
0 #1 Юрий 24.01.2012 04:26
Добрый день,

Приобрел устройство MP707 для создания системы управления отоплением загородного дома.
Под Windows все работает нормально, но хочется запустить программу под Линукс (установлен ArchLinux).
К сожалению скачать исходник для компиляции не получилось (http://devphp.org.ua/?menu=scripts&sub=free&sshow=5) не отвечает, а запустить из локального tar архива не удалось (http://usbsergdev.narod.ru/PROGRAMM/bmcontrol.tar) .
Может есть какие-то нюансы с настройкой BMCONTROL?
Подскажите что надо сделать?
Цитировать
 

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


Защитный код
Обновить