В своих первых статьях на хабре мы пообещали рассказывать о конкретных проектах, в которых применяется наша система. Идей очень много, но начать мы решили с рассказа об одном из наших внутренних 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 лет, это время все работает без поломок. В планах собрать устройство управления вытяжкой в бане по заданным значениям влажности.

Спецпредложение от 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)


  1. Indemsys
    29.05.2015 12:29

    Т.е. на самом деле баня не стала умной.
    Весь проект был сделан только для того чтобы провести исследования и попытаться построить модель управления обогревом баней.
    SCADA по сути не нужна была, все мог бы заменить накопитель на SD карте.

    Более интересно как здесь выполняются операций администрирования датчиков по 1-Wire — привязка к месту, замена, подключение дополнительных и т.д.


    1. Sonic1980 Автор
      29.05.2015 17:48

      Да, баня умной не стала, это только «первые шаги».
      Про SD карту непонятно. Как она в реальном времени сообщит о проблеме и построит графики?
      Про администрирование датчиков: Сделано так:

      • Подключаем к 1-wire шине новый датчик.
      • Далее, если мы не знаем его id, то в устройстве «термостат», в меню, выбираем поиск нового датчика. Находим, сохраняем.
      • Если мы знаем его id, то просто добавляем его в таблицу идентификаторов в AggreGate.
      • После этого значение нового регистра появится в следующем по порядку регистре температур в таблице в AggreGate.
      • Замены датчиков пока не было, но все по тому же принципу.
      • Привязка к месту – можно создать таблицу соответствий в «общих таблицах». Id датчика = описание датчика. Или просто дать правильное имя регистру датчика.







  1. Captcha
    29.05.2015 15:14

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


    1. Sonic1980 Автор
      29.05.2015 17:51

      Да, все обсыпано керамзитом. Еще от труб идут небольшие теплопотери, и грунт совсем рядом не мерзнет. На фото не видно.


      1. switlle
        29.05.2015 19:42

        А еще все эти трубы поместить в одну большую. Так у вас и утеплитель не будет портиться плюс дополнительное утепление.
        В идеале в этот участок кинуть нагревающийся кабель, который как раз и предназначен для того, чтобы уберечь трубы от промерзания. И уже этот кабель вы в своей «умной бане» включали бы и отключали как вам нужно. Стоит он не так уж и дорого. Переделывать подводку намного дороже.


  1. dom1n1k
    29.05.2015 19:37

    Прочитал сначала «к умной бабе»


  1. ivanych
    29.05.2015 21:53

    Умная баня, Карл!