Первые шаги к умной бане

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

e8155a804a67435b8e81280790d6cef2.png

Итак. Имеется частный дом с отопительным контуром (контур 1) от газового котла. Рядом, не далее 6 метров, стоит баня. Было решено подключить баню к домашнему отопительному контуру. При этом, к трубе отопления контура бани (контур 2), через несколько метров, в местах вероятного промерзания, поставить датчики температуры. Контур 2 у нас должен будет работать не всегда, и не на полную мощность. Для управления этим процессом было спроектировано и собрано на коленках устройство, под условным названием «Термостат». К «Термостату» подключены датчики температур, данные с датчиков анализируются устройством, проверяются на заданные пороговые величины, и принимается решение о включении/выключении реле, которое, в свою очередь, включает/выключает циркуляционный насос контура 2. «Термостат» будет управляться по протоколу Modbus (через Ethernet). Система мониторинга — AggreGate. Подробнее об это далее. А сейчас по порядку:

Под землей, на глубине около 1 м, была проложена магистраль в 4 трубы. 2 трубы — отопление, 2 трубы — горячая/холодная вода.

ed0aa79bf63243ce8d64f793d1becbb4.jpg

Туда же сразу положил, чтобы по воздуху не болтались: силовой электрический провод, витую пару UTP-5 для локалки. К трубе «обратки», под утеплителем, проложил провод с датчиками температур, прикрепил их к трубе. Датчики температур выбрал серии DS18b20. Почему именно их? Просто потому, что они работают по протоколу 1-Wire, и их можно параллельно вешать на 1 линию. Что и было сделано.

94d615d88ca24568a98b96e0c9335d44.jpg

4d7da13400d84975b48f27b44b04ac45.jpg

Температурный датчик на трубе:

c8925bc914c4477297ed30ce618280a9.jpg

Сам датчик прочно сидит в герметичной термоусадке:

fe60d84a67134799bfeed787934a8c90.jpg

Итого, у нас имеются следующие датчики: в котельной, на выходе из котельной, пару датчиков под землей (скорее из любопытства, чем по технической необходимости, т.к. под землей температура более-менее стабильна), в земле-у самой бани, далее несколько датчиков вдоль стены внутри бани, 3 датчика будут в парилке (снизу, сверху, посередине) + 1 датчик на улице. Общее количество датчиков может быть до 20.

Собрано на коленках, в свободное время, за пару месяцев. Схему/разводку делал в Proteus. Прошивка писалась в AVR Studio. Плату делал методом лазерного принтера и утюга. Что получилось:

c4cd714660d846cb92e26b0cda82f4b0.png

0c3c4a3f2f0543e4b222049b834bbce8.png

a673274a762947d1affc7d37852ce948.png

3abecde41e364afebb4af5aa4d0c687a.png

43429048fa4048d4a3b303ef4713204b.jpg

Основные элементы: процессор ATmega128, преобразователь Ethernet→SPI (от Arduino), экран, клавиатура, 20 датчиков DS18B20, 2 датчика температуры/влажности AM201.

Устройство постоянно опрашивает подключенные к нему датчики DS18B20 и AM201. Все значения складываются в регистры. Так же в регистрах хранятся пороги включения/выключения реле для каждого из датчиков. Доступ к регистрам — по протоколу ModBus, через сеть Ethernet. Все настройки можно менять как с помощью клавиатуры, так и через регистры ModBus.

На вопрос, зачем городить свое, наверняка же уже есть готовое, отвечу: просто захотелось сделать самому, для общего развития, так сказать. Да и готовое решение, думаю, вышло бы сильно дороже.

В качестве системы мониторинга используется AggreGate SCADA/HMI.

Устанавливаем, запускаем, разбираемся.

Подключаем наше устройство к системе:

7a50f341504d44b49b9779e09a66c67b.png

Смотрим, что данные загрузились:

9b107d9b32514f49ab758790a224750b.png

Все работает.

Теперь построим графики температур. Если не знать, куда нажимать, то сразу не разберешься. Покажу по порядку, что нужно делать.

1. В списке регистров, щелкаем правой кнопкой на поле регистра «Температура на улице», в контекстном меню выбираем «Создать диаграмму»:

Контекстное меню переменной/регистра a93e6e36a8b94d1789399c840570c8ab.png 2. Далее, выбираем «График по истории и/или изменению в реальном времени:

Выбор источника данных 9a3f01b51ae148a6966498243d60b0dd.png 3. Снова ОК:

Выбор типа и параметров графика 59cb4f3868fa4ecea91755e00b82eb84.png 4. В поле выражения набираем {tOut}/16, поскольку, все значения температур в регистрах нашего устройства хранятся уже помноженные на 16:

28e41fe3283642278c86ae55b4545a1a.png

5. Все, график готов. По аналогии делаем остальные.

Температура на улице за месяц:

87d0e6af04454672a2264d0918c135d1.png

Температура по всему контуру в летнем режиме, с отключенным котлом:

d626fb2b8bda45d98637537c35f00caf.png

Температура по всему контуру в зимнем режиме:

e8155a804a67435b8e81280790d6cef2.png

2a7dc84d43c14b118f4db2e1b92837b0.png

Синусоидальные всплески малой амплитуды — это плавное изменение температуры контура при периодическом включении/отключении самого котла. Большие провалы — это переключение котла на нагрев внутреннего бойлера, в это время отопление остывает. Теоретически, может случиться так, что кто-то надолго включит горячую воду, и котел будет постоянно подогревать бойлер, при этом температура отопительного контура может сильно упасть. Это может оказаться критично для нашей бани. При морозе -30 С, за 20–30 минут простоя, в некоторых местах труба может замерзнуть.

Эту проблему можно диагностировать средствами AggreGate. Добавляем тревогу на минимальное значение температуры:

b367dfa007444b25a26dcd36fee57178.png

f0ace30d638845a292fc3d24a3a0eb9e.png

и, в случае возникновения тревоги отправляем СМС:

4652d7185d6c4af79e6c20f8a50afd30.png

СМС отправляется по протоколу SMPP. В случае, если связь с интернетом отсутствует, можно подключить к AggreGate обычный GSM-модем, и через него отправлять тревожные сообщения.

Так получилось, что основное свое предназначение устройство «Термостат» не выполняет. Мощности внутреннего циркуляционного насоса котла с лихвой хватает на контур 2, и нет необходимости ставить второй насос. Скорее, нужно ставить н/о клапан, который при подаче напряжения будет закрываться, и открываться, когда температура достигнет минимума. Такого клапана у меня не оказалось, поэтому я просто немного прикрыл напор на контуре 2, и оставил временно так (уже на 2 зимы).

На текущий момент устройство в эксплуатации больше 2 лет, это время все работает без поломок. В планах собрать устройство управления вытяжкой в бане по заданным значениям влажности.

В нынешние непростые времена мы хотим предложить тем, кто занимается построением системы «умный дом» в частных (не многоквартирных) домах, бесплатные лицензии для системы AggreGate SCADA/HMI:

— Лицензия AggreGate SCADA/HMI Basic на 10 устройств (Modbus и т.п.) без ограничений по времени и количеству тэгов— Лицензия AggreGate SCADA/HMI Building Automation на 1 устройство (OPC, BACnet и т.п.) без ограничений по времени и количеству тэгов

Различия версий описаны тут: http://aggregate.tibbo.com/ru/solutions/scada_hmi/compare.html

Для получения лицензии присылайте нам краткое описание проекта и активационный ключ сервера до 1 июля 2015 года.

© Habrahabr.ru