Первые шаги к умной бане
В своих первых статьях на хабре мы пообещали рассказывать о конкретных проектах, в которых применяется наша система. Идей очень много, но начать мы решили с рассказа об одном из наших внутренних DIY-проектов: Расскажу о своей попытке немного автоматизировать баню. Во время капитального ремонта бани появилась идея заодно провести в нее отопление. Чтобы зимой не промерзала, как следствие, быстрей протапливалась. В результате этого обогрева мы не пускаем точку росы внутрь бани, избавляемся от ненужного конденсата на бревнах, сруб дольше служит, ну, в общем, одни плюсы. Если бы не один минус: за дополнительное отопление придется платить. Дальше я постараюсь рассказать, как можно минимизировать издержки на это отопление и автоматизировать процесс.
Итак. Имеется частный дом с отопительным контуром (контур 1) от газового котла. Рядом, не далее 6 метров, стоит баня. Было решено подключить баню к домашнему отопительному контуру. При этом, к трубе отопления контура бани (контур 2), через несколько метров, в местах вероятного промерзания, поставить датчики температуры. Контур 2 у нас должен будет работать не всегда, и не на полную мощность. Для управления этим процессом было спроектировано и собрано на коленках устройство, под условным названием «Термостат». К «Термостату» подключены датчики температур, данные с датчиков анализируются устройством, проверяются на заданные пороговые величины, и принимается решение о включении/выключении реле, которое, в свою очередь, включает/выключает циркуляционный насос контура 2. «Термостат» будет управляться по протоколу Modbus (через Ethernet). Система мониторинга — AggreGate. Подробнее об это далее. А сейчас по порядку:
Под землей, на глубине около 1 м, была проложена магистраль в 4 трубы. 2 трубы — отопление, 2 трубы — горячая/холодная вода.
Туда же сразу положил, чтобы по воздуху не болтались: силовой электрический провод, витую пару UTP-5 для локалки. К трубе «обратки», под утеплителем, проложил провод с датчиками температур, прикрепил их к трубе. Датчики температур выбрал серии DS18b20. Почему именно их? Просто потому, что они работают по протоколу 1-Wire, и их можно параллельно вешать на 1 линию. Что и было сделано.
Температурный датчик на трубе:
Сам датчик прочно сидит в герметичной термоусадке:
Итого, у нас имеются следующие датчики: в котельной, на выходе из котельной, пару датчиков под землей (скорее из любопытства, чем по технической необходимости, т.к. под землей температура более-менее стабильна), в земле-у самой бани, далее несколько датчиков вдоль стены внутри бани, 3 датчика будут в парилке (снизу, сверху, посередине) + 1 датчик на улице. Общее количество датчиков может быть до 20.
Собрано на коленках, в свободное время, за пару месяцев. Схему/разводку делал в Proteus. Прошивка писалась в AVR Studio. Плату делал методом лазерного принтера и утюга. Что получилось:
Основные элементы: процессор ATmega128, преобразователь Ethernet→SPI (от Arduino), экран, клавиатура, 20 датчиков DS18B20, 2 датчика температуры/влажности AM201.
Устройство постоянно опрашивает подключенные к нему датчики DS18B20 и AM201. Все значения складываются в регистры. Так же в регистрах хранятся пороги включения/выключения реле для каждого из датчиков. Доступ к регистрам — по протоколу ModBus, через сеть Ethernet. Все настройки можно менять как с помощью клавиатуры, так и через регистры ModBus.
На вопрос, зачем городить свое, наверняка же уже есть готовое, отвечу: просто захотелось сделать самому, для общего развития, так сказать. Да и готовое решение, думаю, вышло бы сильно дороже.
В качестве системы мониторинга используется AggreGate SCADA/HMI.
Устанавливаем, запускаем, разбираемся.
Подключаем наше устройство к системе:
Смотрим, что данные загрузились:
Все работает.
Теперь построим графики температур. Если не знать, куда нажимать, то сразу не разберешься. Покажу по порядку, что нужно делать.
1. В списке регистров, щелкаем правой кнопкой на поле регистра «Температура на улице», в контекстном меню выбираем «Создать диаграмму»:
Контекстное меню переменной/регистра 2. Далее, выбираем «График по истории и/или изменению в реальном времени:
Выбор источника данных 3. Снова ОК:
Выбор типа и параметров графика 4. В поле выражения набираем {tOut}/16, поскольку, все значения температур в регистрах нашего устройства хранятся уже помноженные на 16:
5. Все, график готов. По аналогии делаем остальные.
Температура на улице за месяц:
Температура по всему контуру в летнем режиме, с отключенным котлом:
Температура по всему контуру в зимнем режиме:
Синусоидальные всплески малой амплитуды — это плавное изменение температуры контура при периодическом включении/отключении самого котла. Большие провалы — это переключение котла на нагрев внутреннего бойлера, в это время отопление остывает. Теоретически, может случиться так, что кто-то надолго включит горячую воду, и котел будет постоянно подогревать бойлер, при этом температура отопительного контура может сильно упасть. Это может оказаться критично для нашей бани. При морозе -30 С, за 20–30 минут простоя, в некоторых местах труба может замерзнуть.
Эту проблему можно диагностировать средствами AggreGate. Добавляем тревогу на минимальное значение температуры:
и, в случае возникновения тревоги отправляем СМС:
СМС отправляется по протоколу 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 года.