В своих первых статьях на хабре мы пообещали рассказывать о конкретных проектах, в которых применяется наша система. Идей очень много, но начать мы решили с рассказа об одном из наших внутренних DIY-проектов:
Расскажу о своей попытке немного автоматизировать баню. Во время капитального ремонта бани появилась идея заодно провести в нее отопление. Чтобы зимой не промерзала, как следствие, быстрей протапливалась. В результате этого обогрева мы не пускаем точку росы внутрь бани, избавляемся от ненужного конденсата на бревнах, сруб дольше служит, ну, в общем, одни плюсы. Если бы не один минус: за дополнительное отопление придется платить. Дальше я постараюсь рассказать, как можно минимизировать издержки на это отопление и автоматизировать процесс.
![](//habrastorage.org/files/e81/55a/804/e8155a804a67435b8e81280790d6cef2.png)
Итак. Имеется частный дом с отопительным контуром (контур 1) от газового котла. Рядом, не далее 6 метров, стоит баня. Было решено подключить баню к домашнему отопительному контуру. При этом, к трубе отопления контура бани (контур 2), через несколько метров, в местах вероятного промерзания, поставить датчики температуры. Контур 2 у нас должен будет работать не всегда, и не на полную мощность. Для управления этим процессом было спроектировано и собрано на коленках устройство, под условным названием «Термостат». К «Термостату» подключены датчики температур, данные с датчиков анализируются устройством, проверяются на заданные пороговые величины, и принимается решение о включении/выключении реле, которое, в свою очередь, включает/выключает циркуляционный насос контура 2. «Термостат» будет управляться по протоколу Modbus (через Ethernet). Система мониторинга – AggreGate. Подробнее об это далее. А сейчас по порядку:
Под землей, на глубине около 1 м, была проложена магистраль в 4 трубы. 2 трубы – отопление, 2 трубы – горячая/холодная вода.
![](//habrastorage.org/files/ed0/aa7/9bf/ed0aa79bf63243ce8d64f793d1becbb4.jpg)
Туда же сразу положил, чтобы по воздуху не болтались: силовой электрический провод, витую пару UTP-5 для локалки. К трубе «обратки», под утеплителем, проложил провод с датчиками температур, прикрепил их к трубе. Датчики температур выбрал серии DS18b20. Почему именно их? Просто потому, что они работают по протоколу 1-Wire, и их можно параллельно вешать на 1 линию. Что и было сделано.
![](//habrastorage.org/files/94d/615/d88/94d615d88ca24568a98b96e0c9335d44.jpg)
![](//habrastorage.org/files/4d7/da1/340/4d7da13400d84975b48f27b44b04ac45.jpg)
Температурный датчик на трубе:
![](//habrastorage.org/files/c89/25b/c91/c8925bc914c4477297ed30ce618280a9.jpg)
Сам датчик прочно сидит в герметичной термоусадке:
![](//habrastorage.org/files/fe6/0d8/4a6/fe60d84a67134799bfeed787934a8c90.jpg)
Итого, у нас имеются следующие датчики: в котельной, на выходе из котельной, пару датчиков под землей (скорее из любопытства, чем по технической необходимости, т.к. под землей температура более-менее стабильна), в земле-у самой бани, далее несколько датчиков вдоль стены внутри бани, 3 датчика будут в парилке (снизу, сверху, посередине) + 1 датчик на улице. Общее количество датчиков может быть до 20.
Собрано на коленках, в свободное время, за пару месяцев. Схему/разводку делал в Proteus. Прошивка писалась в AVR Studio. Плату делал методом лазерного принтера и утюга. Что получилось:
![](//habrastorage.org/files/c4c/d71/466/c4cd714660d846cb92e26b0cda82f4b0.png)
![](//habrastorage.org/files/0c3/c4a/3f2/0c3c4a3f2f0543e4b222049b834bbce8.png)
![](//habrastorage.org/files/a67/327/4a7/a673274a762947d1affc7d37852ce948.png)
![](//habrastorage.org/files/3ab/ecd/e41/3abecde41e364afebb4af5aa4d0c687a.png)
![](//habrastorage.org/files/434/290/48f/43429048fa4048d4a3b303ef4713204b.jpg)
Основные элементы: процессор ATmega128, преобразователь Ethernet->SPI (от Arduino), экран, клавиатура, 20 датчиков DS18B20, 2 датчика температуры/влажности AM201.
Устройство постоянно опрашивает подключенные к нему датчики DS18B20 и AM201. Все значения складываются в регистры. Так же в регистрах хранятся пороги включения/выключения реле для каждого из датчиков. Доступ к регистрам – по протоколу ModBus, через сеть Ethernet. Все настройки можно менять как с помощью клавиатуры, так и через регистры ModBus.
На вопрос, зачем городить свое, наверняка же уже есть готовое, отвечу: просто захотелось сделать самому, для общего развития, так сказать. Да и готовое решение, думаю, вышло бы сильно дороже.
В качестве системы мониторинга используется AggreGate SCADA/HMI.
Устанавливаем, запускаем, разбираемся.
Подключаем наше устройство к системе:
![](//habrastorage.org/files/7a5/0f3/415/7a50f341504d44b49b9779e09a66c67b.png)
Смотрим, что данные загрузились:
![](//habrastorage.org/files/9b1/07d/9b3/9b107d9b32514f49ab758790a224750b.png)
Все работает.
Теперь построим графики температур. Если не знать, куда нажимать, то сразу не разберешься. Покажу по порядку, что нужно делать.
1. В списке регистров, щелкаем правой кнопкой на поле регистра «Температура на улице», в контекстном меню выбираем «Создать диаграмму»:
2. Далее, выбираем «График по истории и/или изменению в реальном времени:
3. Снова ОК:
4. В поле выражения набираем {tOut}/16, поскольку, все значения температур в регистрах нашего устройства хранятся уже помноженные на 16:
![](//habrastorage.org/files/28e/41f/e32/28e41fe3283642278c86ae55b4545a1a.png)
5. Все, график готов. По аналогии делаем остальные.
Температура на улице за месяц:
![](//habrastorage.org/files/87d/0e6/af0/87d0e6af04454672a2264d0918c135d1.png)
Температура по всему контуру в летнем режиме, с отключенным котлом:
![](//habrastorage.org/files/d62/6fb/2b8/d626fb2b8bda45d98637537c35f00caf.png)
Температура по всему контуру в зимнем режиме:
![](//habrastorage.org/files/e81/55a/804/e8155a804a67435b8e81280790d6cef2.png)
![](//habrastorage.org/files/2a7/dc8/4d4/2a7dc84d43c14b118f4db2e1b92837b0.png)
Синусоидальные всплески малой амплитуды – это плавное изменение температуры контура при периодическом включении/отключении самого котла. Большие провалы – это переключение котла на нагрев внутреннего бойлера, в это время отопление остывает. Теоретически, может случиться так, что кто-то надолго включит горячую воду, и котел будет постоянно подогревать бойлер, при этом температура отопительного контура может сильно упасть. Это может оказаться критично для нашей бани. При морозе -30 С, за 20-30 минут простоя, в некоторых местах труба может замерзнуть.
Эту проблему можно диагностировать средствами AggreGate. Добавляем тревогу на минимальное значение температуры:
![](//habrastorage.org/files/b36/7df/a00/b367dfa007444b25a26dcd36fee57178.png)
![](//habrastorage.org/files/f0a/ce3/0d6/f0ace30d638845a292fc3d24a3a0eb9e.png)
и, в случае возникновения тревоги отправляем СМС:
![](https://habrastorage.org/files/9fa/312/e8b/9fa312e8b6c0420ba26e5a81b8e079b8.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 года.
Расскажу о своей попытке немного автоматизировать баню. Во время капитального ремонта бани появилась идея заодно провести в нее отопление. Чтобы зимой не промерзала, как следствие, быстрей протапливалась. В результате этого обогрева мы не пускаем точку росы внутрь бани, избавляемся от ненужного конденсата на бревнах, сруб дольше служит, ну, в общем, одни плюсы. Если бы не один минус: за дополнительное отопление придется платить. Дальше я постараюсь рассказать, как можно минимизировать издержки на это отопление и автоматизировать процесс.
![](http://habrastorage.org/files/e81/55a/804/e8155a804a67435b8e81280790d6cef2.png)
Итак. Имеется частный дом с отопительным контуром (контур 1) от газового котла. Рядом, не далее 6 метров, стоит баня. Было решено подключить баню к домашнему отопительному контуру. При этом, к трубе отопления контура бани (контур 2), через несколько метров, в местах вероятного промерзания, поставить датчики температуры. Контур 2 у нас должен будет работать не всегда, и не на полную мощность. Для управления этим процессом было спроектировано и собрано на коленках устройство, под условным названием «Термостат». К «Термостату» подключены датчики температур, данные с датчиков анализируются устройством, проверяются на заданные пороговые величины, и принимается решение о включении/выключении реле, которое, в свою очередь, включает/выключает циркуляционный насос контура 2. «Термостат» будет управляться по протоколу Modbus (через Ethernet). Система мониторинга – AggreGate. Подробнее об это далее. А сейчас по порядку:
Прокладка труб
Под землей, на глубине около 1 м, была проложена магистраль в 4 трубы. 2 трубы – отопление, 2 трубы – горячая/холодная вода.
![](http://habrastorage.org/files/ed0/aa7/9bf/ed0aa79bf63243ce8d64f793d1becbb4.jpg)
Туда же сразу положил, чтобы по воздуху не болтались: силовой электрический провод, витую пару UTP-5 для локалки. К трубе «обратки», под утеплителем, проложил провод с датчиками температур, прикрепил их к трубе. Датчики температур выбрал серии DS18b20. Почему именно их? Просто потому, что они работают по протоколу 1-Wire, и их можно параллельно вешать на 1 линию. Что и было сделано.
![](http://habrastorage.org/files/94d/615/d88/94d615d88ca24568a98b96e0c9335d44.jpg)
![](http://habrastorage.org/files/4d7/da1/340/4d7da13400d84975b48f27b44b04ac45.jpg)
Температурный датчик на трубе:
![](http://habrastorage.org/files/c89/25b/c91/c8925bc914c4477297ed30ce618280a9.jpg)
Сам датчик прочно сидит в герметичной термоусадке:
![](http://habrastorage.org/files/fe6/0d8/4a6/fe60d84a67134799bfeed787934a8c90.jpg)
Итого, у нас имеются следующие датчики: в котельной, на выходе из котельной, пару датчиков под землей (скорее из любопытства, чем по технической необходимости, т.к. под землей температура более-менее стабильна), в земле-у самой бани, далее несколько датчиков вдоль стены внутри бани, 3 датчика будут в парилке (снизу, сверху, посередине) + 1 датчик на улице. Общее количество датчиков может быть до 20.
Немного об устройстве «Термостат»
Собрано на коленках, в свободное время, за пару месяцев. Схему/разводку делал в Proteus. Прошивка писалась в AVR Studio. Плату делал методом лазерного принтера и утюга. Что получилось:
![](http://habrastorage.org/files/c4c/d71/466/c4cd714660d846cb92e26b0cda82f4b0.png)
![](http://habrastorage.org/files/0c3/c4a/3f2/0c3c4a3f2f0543e4b222049b834bbce8.png)
![](http://habrastorage.org/files/a67/327/4a7/a673274a762947d1affc7d37852ce948.png)
![](http://habrastorage.org/files/3ab/ecd/e41/3abecde41e364afebb4af5aa4d0c687a.png)
![](http://habrastorage.org/files/434/290/48f/43429048fa4048d4a3b303ef4713204b.jpg)
Основные элементы: процессор ATmega128, преобразователь Ethernet->SPI (от Arduino), экран, клавиатура, 20 датчиков DS18B20, 2 датчика температуры/влажности AM201.
Устройство постоянно опрашивает подключенные к нему датчики DS18B20 и AM201. Все значения складываются в регистры. Так же в регистрах хранятся пороги включения/выключения реле для каждого из датчиков. Доступ к регистрам – по протоколу ModBus, через сеть Ethernet. Все настройки можно менять как с помощью клавиатуры, так и через регистры ModBus.
На вопрос, зачем городить свое, наверняка же уже есть готовое, отвечу: просто захотелось сделать самому, для общего развития, так сказать. Да и готовое решение, думаю, вышло бы сильно дороже.
Мониторим
В качестве системы мониторинга используется AggreGate SCADA/HMI.
Устанавливаем, запускаем, разбираемся.
Подключаем наше устройство к системе:
![](http://habrastorage.org/files/7a5/0f3/415/7a50f341504d44b49b9779e09a66c67b.png)
Смотрим, что данные загрузились:
![](http://habrastorage.org/files/9b1/07d/9b3/9b107d9b32514f49ab758790a224750b.png)
Все работает.
Теперь построим графики температур. Если не знать, куда нажимать, то сразу не разберешься. Покажу по порядку, что нужно делать.
1. В списке регистров, щелкаем правой кнопкой на поле регистра «Температура на улице», в контекстном меню выбираем «Создать диаграмму»:
Контекстное меню переменной/регистра![](//habrastorage.org/files/a93/e6e/36a/a93e6e36a8b94d1789399c840570c8ab.png)
![](http://habrastorage.org/files/a93/e6e/36a/a93e6e36a8b94d1789399c840570c8ab.png)
2. Далее, выбираем «График по истории и/или изменению в реальном времени:
Выбор источника данных![](//habrastorage.org/files/9a3/f01/b51/9a3f01b51ae148a6966498243d60b0dd.png)
![](http://habrastorage.org/files/9a3/f01/b51/9a3f01b51ae148a6966498243d60b0dd.png)
3. Снова ОК:
Выбор типа и параметров графика![](//habrastorage.org/files/59c/b4f/386/59cb4f3868fa4ecea91755e00b82eb84.png)
![](http://habrastorage.org/files/59c/b4f/386/59cb4f3868fa4ecea91755e00b82eb84.png)
4. В поле выражения набираем {tOut}/16, поскольку, все значения температур в регистрах нашего устройства хранятся уже помноженные на 16:
![](http://habrastorage.org/files/28e/41f/e32/28e41fe3283642278c86ae55b4545a1a.png)
5. Все, график готов. По аналогии делаем остальные.
Температура на улице за месяц:
![](http://habrastorage.org/files/87d/0e6/af0/87d0e6af04454672a2264d0918c135d1.png)
Температура по всему контуру в летнем режиме, с отключенным котлом:
![](http://habrastorage.org/files/d62/6fb/2b8/d626fb2b8bda45d98637537c35f00caf.png)
Температура по всему контуру в зимнем режиме:
![](http://habrastorage.org/files/e81/55a/804/e8155a804a67435b8e81280790d6cef2.png)
![](http://habrastorage.org/files/2a7/dc8/4d4/2a7dc84d43c14b118f4db2e1b92837b0.png)
Синусоидальные всплески малой амплитуды – это плавное изменение температуры контура при периодическом включении/отключении самого котла. Большие провалы – это переключение котла на нагрев внутреннего бойлера, в это время отопление остывает. Теоретически, может случиться так, что кто-то надолго включит горячую воду, и котел будет постоянно подогревать бойлер, при этом температура отопительного контура может сильно упасть. Это может оказаться критично для нашей бани. При морозе -30 С, за 20-30 минут простоя, в некоторых местах труба может замерзнуть.
Эту проблему можно диагностировать средствами AggreGate. Добавляем тревогу на минимальное значение температуры:
![](http://habrastorage.org/files/b36/7df/a00/b367dfa007444b25a26dcd36fee57178.png)
![](http://habrastorage.org/files/f0a/ce3/0d6/f0ace30d638845a292fc3d24a3a0eb9e.png)
и, в случае возникновения тревоги отправляем СМС:
![](https://habrastorage.org/files/9fa/312/e8b/9fa312e8b6c0420ba26e5a81b8e079b8.png)
СМС отправляется по протоколу SMPP. В случае, если связь с интернетом отсутствует, можно подключить к AggreGate обычный GSM-модем, и через него отправлять тревожные сообщения.
Так получилось, что основное свое предназначение устройство «Термостат» не выполняет. Мощности внутреннего циркуляционного насоса котла с лихвой хватает на контур 2, и нет необходимости ставить второй насос. Скорее, нужно ставить н/о клапан, который при подаче напряжения будет закрываться, и открываться, когда температура достигнет минимума. Такого клапана у меня не оказалось, поэтому я просто немного прикрыл напор на контуре 2, и оставил временно так (уже на 2 зимы).
На текущий момент устройство в эксплуатации больше 2 лет, это время все работает без поломок. В планах собрать устройство управления вытяжкой в бане по заданным значениям влажности.
Спецпредложение от Tibbo по диспетчеризации и мониторингу частных домов
В нынешние непростые времена мы хотим предложить тем, кто занимается построением системы „умный дом“ в частных (не многоквартирных) домах, бесплатные лицензии для системы 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 года.
Комментарии (7)
Captcha
29.05.2015 15:14Всё хорошо конечно, но нельзя так трубы в земле укладывать. В нашей полосе может морозным пучением грунта расфигачить. Нужно было на песчано-гравийную подушку положить, а ещё лучше — со всех сторон щебнем обсыпать.
Sonic1980 Автор
29.05.2015 17:51Да, все обсыпано керамзитом. Еще от труб идут небольшие теплопотери, и грунт совсем рядом не мерзнет. На фото не видно.
switlle
29.05.2015 19:42А еще все эти трубы поместить в одну большую. Так у вас и утеплитель не будет портиться плюс дополнительное утепление.
В идеале в этот участок кинуть нагревающийся кабель, который как раз и предназначен для того, чтобы уберечь трубы от промерзания. И уже этот кабель вы в своей «умной бане» включали бы и отключали как вам нужно. Стоит он не так уж и дорого. Переделывать подводку намного дороже.
Indemsys
Т.е. на самом деле баня не стала умной.
Весь проект был сделан только для того чтобы провести исследования и попытаться построить модель управления обогревом баней.
SCADA по сути не нужна была, все мог бы заменить накопитель на SD карте.
Более интересно как здесь выполняются операций администрирования датчиков по 1-Wire — привязка к месту, замена, подключение дополнительных и т.д.
Sonic1980 Автор
Да, баня умной не стала, это только «первые шаги».
Про SD карту непонятно. Как она в реальном времени сообщит о проблеме и построит графики?
Про администрирование датчиков: Сделано так: