RSS
people

Climate Logger

Мини проект Climate Logger.

Лог за день.  Лог за 6 дней.  Лог за пол месяца.

   

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

Так и начался этот проект. Сначала  был построен сенсорный модуль и были раскиданы сенсоры по квартире. Модуль я собрал из списанной платки c ATMega128 на борту, и из также списанного модуля дисплея на базе контроллера HD4478. Сенсоры взял DS1820. 

И вот, поставил это все дело, и стояло оно у меня около 3-х лет и просто температуру показывало.  Все времени не было продолжить. 

На днях пришла в голову идея вывести инфу с датчиков на графики. Так и продолжился мой долгострой. 

Ниже блок схема всей системы:

blockdiagram

Блок диаграмма системы

В верхнем правом углу виднеются 10 сенсоров. Их на самом деле 10 штук у меня.

Они подключены к сенсорному блоку, который, в свою очередь подключен к серверу посредством RS232 соединения.

Сервер у меня итак постоянно включен, так как на нем крутится этот сайт и еще некоторые полезняшки. Так что я решил его нагрузить еще и этой системой.

Так как на сервере уже стоит MySQL для сайта, то его я использовал и для хранения данных о температуре. 

Были написаны несколько утилиток, одна из которых опрашивает сенсорный модуль на предмет количества сенсоров, определения их имен и параметров, и сохранение этой всей информации в базе данных.  Т.е. по идее, можно добавить сенсоров немного, запустить утилиту администрирования, и новые сенсоры так же добавятся в список. Если заменить кабель RS232 радиомодулем, то можно несколько сенсорных модулей опрашивать, так как протокол построен таким образом, что можно опросить до 65535 модулей. Но пока что я решил отложить радиомодуль в сторону, так времени много ушло бы на запуск всей системы. Я его сделаю, если будет в этом необходимость, т.е. добавится еще один сенсорный модуль. Такая вероятность есть — регулятор температуры моей «серверной».

Следующая утилитка запускается каждые 5 минут, и, прочитав конфигурацию системы из базы данных, опрашивает сенсорный модуль на предмет сбора температуры и сохраняет полученные данные в базу. Так же, она запускает на MySQL сервере хранимые процедуры по калькуляции средней температуры часа для каждого часа, и средней температуры дня для каждого дня. 5-ти минутные данные хранятся за последние 23 часа. Часовые данные хранятся за последний 31 день.  У дневных данных пока нет ограничения. Видимо, позже придется добавить, пока нет необходимости.

Так же, каждые 5 минут запускается третья утилитка и генерит графики из данных, хранимых в базе. Сами графики можно посмотреть по ссылкам в начале статьи.

Вот примерно краткое описание всей системы на текущий момент.

.