- PVSM.RU - https://www.pvsm.ru -
Что имеем:
Что хотим получить
Рассматривать варианты я начал с последнего пункта («минимальные эксплуатационные расходы»). Ибо и так приходится платить за уборку территории, воду, газ и электричество. Соответственно, для целей удаленного мониторинга и управления есть два основных решения:
Отрицательные стороны
Отрицательные стороны
После изучения найденных на просторах Интернета решений я понял, что ни одно из них меня не устраивает (даже с точки зрения эксплуатационных расходов. Не говоря уже о стоимости самого оборудования). Поэтому будем делать все с нуля. Ладно, не совсем с нуля: у меня есть свободный сервер, который доступен в сети Интернет в режиме 24x7. Ну и все.
Проанализировав предложения «большой тройки» (как для частных лиц, так и M2M), я остановился на «Интернет планшет» [2]. В ней, в отличии от МТС, нет ограничений на использование «только на планшетах», а 20Мб ежедневного включенного бесплатного трафика для телеметрии более чем достаточно. Так как я использую устройство для собственных нужд в качестве физического лица, то никакие явно описанные условия и ограничения оператора не нарушаются.
Итак, в интернет-магазине приобретен USB-модем [3] от оператора, соответствующим образом изменен тарифный план и подключена требуемая опция.
Должен быть миниатюрным, стабильно работающим, не требующим внешнего охлаждения, допускать установку ОС Linux (чтобы по максимуму использовать готовые решения, а не изобретать велосипед по каждому случаю), иметь некоторое количество программно управляемых входов/выходов и, как минимум, один порт USB, поддерживающий режим хоста (для подключения USB-модема).
Самым дешевым вариантом оказалось использовать Banana PI [4], хотя можно взять и ее функциональный прототип Raspberry Pi [5]. Просто Banana в тот момент была доступна за меньшие деньги.
Вот что получилось в итоге (без схемы сопряжения с газовым котлом)
Мне хотелось иметь информацию о микроклимате во всем доме (2 этажа), соответственно было приобретено 5 цифровых термометров DS18B20 [6]. Их размещение: стена на 1-м этаже (температура воздуха на 1-м этаже), батарея на 1-м этаже (температура теплоносителя на 1-м этаже), стена на 2-м этаже и батарея на 2-м этаже (воздух и теплоноситель на 2-м этаже), один датчик вынесен наружу подальше от окон и дверей (чтобы получать информацию о реальной температуре на улице). Все датчики вешаются на одну двухпроводную (в моем случае еще и экранированную) шину. У меня длина кабеля получилась чуть более 20 метров, при этом все датчики работают стабильно и без сбоев.
Для учета расхода газа (мне повезло — у меня установлен газовый счетчик со встроенным магнитом), был использован датчик холла (подробнее см. в соответствующей статье [7]).
Для расширения функционала до встроенной погодной станции был также приобретен датчик атмосферного давления [8].
Для будущего развития (реализация алгоритмов отопления, использующих понятие «точка росы») был приобретен датчик относительной влажности воздуха, но он пока не используется.
Ох уж этот котел! Ну да, начал я с реализации наблюдения за микроклиматом, а в результате захотелось еще и им управлять. Мой котел поддерживает управление двух видов: «включил/выключил» (если «включил» — будем греть воду до температуры, заданной на консоли котла. Если «выключил» — ничего греть не будем) и цифровое по шине eBus [9]. Последнее является (немецкой) разработкой для управления домашним климатическим оборудованием, но конкретная реализация очень сильно зависит от производителя техники. Для своего котла в продаже я нашел только одно оригинальное устройство-терморегулятор [10], но оно работает исключительно в автономном режиме что, фактически, ничем не полезнее, чем управлять котлом через его консоль.
После некоторого изучения имеющейся в Интернет информации удалось выкопать некоторые обрывки протокола управления, полученные энтузиастами путем reverse engineering. Я не стал действовать так жестко, как автор этой статьи [11], но все-таки в результате мне удалось не только поговорить с котлом по душам, но и заставить его выполнять мои команды так, как если бы их выдавал оригинальный терморегулятор. Однако все равно большое спасибо первопроходцам [11], глядя на которых я понял, что в этой жизни нет ничего невозможного!
Итак, котлом будем управлять по шине eBus. Готовые адаптеры для шины стоят невменяемых денег (да, к тому же, доступны только «под заказ». А зима приближалась, систему надо запускать!), поэтому пришлось вспомнить молодость (и свое увлечение радиотехникой) и разработать собственную схему сопряжения. С гальванической развязкой (ибо память о сгоревшем из-за неисправного блока питания компьютере была еще свежа, а иметь на руках газовый котел со сгоревшей платой управления перед зимой мне не очень улыбалось). Схема пока собрана на макетной плате, но уже доказала свою стабильную работоспособность.
Интерфейсный блок на макетной плате
Оригинальная разработка (как серверная часть, так и «прошивка управляющего контроллера»). Для системы визуализации данных (пока) используется бесплатная система мониторинга Zabbix [12], но планируется все-таки сделать специализированное приложение. Вообще программное обеспечение поддерживает модульную организацию аппаратной части: что в контроллере установлено, то и будет обслуживаться. Нужна вам погодная станция (установили соответствующий модуль) — получите информацию об атмосферном давлении. Нужно вам управление газовым котлом (установили модуль с реле или интерфейс eBus) — сможете им управлять (иначе только наблюдайте за обстановкой в доме). Есть у вас собственный канал Интернет — тогда USB-модем вам не нужен, просто подключите устройство к вашему роутеру при помощи ethernet-кабеля.
На новогодние праздники мы с женой уезжали достаточно далеко от нашего дома, но имели возможность в любой момент проконтролировать его состояние. И, в случае необходимости, изменить параметры микроклимата (несколько раз этим пришлось воспользоваться при значительном изменении внешней температуры воздуха, ниже -15C). Во всяком случае заморозки системы отопления не произошло (несмотря на неоднократные перебои с электроснабжением поселка), растущие в доме цветы не замерзли, и газа для отопления мы сожгли не так уж и много. Кстати, значения газового счетчика с точки зрения программы и реальные за два месяца эксплуатации совпали полностью, поэтому платежки по газу можно заполнять даже не посещая свой дом.
Общий вид работающего устройства
(внизу — стабилизатор напряжения для газового котла, на него можно не обращать внимания)
Мониторинг без подключения к газовому котлу
Несмотря на автономное подключение, убедиться в работоспособности котла можно по пилообразному графику температуры теплоносителя в батареях отопления. Пустячок, а приятно!
Датчик расхода газа (см. предыдущую публикацию [13])
Пока все выводится нарастающим итогом, но этот график будет изменен на график скорости расхода газа в зависимости от времени.
Погодная станция: внешняя температура
Ну просто интересно мне знать, что одевать при выходе из дома.
Погодная станция: атмосферное давление
Эк его плющит и коллапсит! Пока понаблюдаем, но можно будет как-нибудь прикрутить и для предсказания погоды.
Мониторинг с подключением управления газовым котлом
Для управления в настоящий момент имеется возможность задать желаемую целевую температуру теплоносителя (его выход и обратное поступление). На графике цели указаны пунктирными линиями. По ним котел самостоятельно определяет алгоритм работы (интервал между включением горелки и насоса), ориентируясь на данные собственных датчиков температуры теплоносителя.
Операционная система в управляющем контроллере работает в режиме «только чтение», поэтому устройство не боится неожиданного пропадания электропитания. Аналогично, газовый котел управляется таким образом, чтобы в случае нарушения цепей управления (контроллер обесточен, выключен либо оборван интерфейсный кабель) котел автоматически переходил бы в стандартный режим работы с управлением со своей консоли. Алгоритмы обмена данными оптимизированы под «очень плохие каналы связи» (для работоспособности устройства достаточно наличие хотя бы «временами возникающего» подключения по EDGE, в чем я лично убедился при установке контроллера в пос. Бисерово московской области — покрытие Мегафона там просто никакое).
В настоящее время устройство собирает информацию с датчиков с периодичностью раз в минуту, а обмен с сервером производится раз в 15 минут. В таком режиме максимальная разрешающая способность мониторинга будет 1 минута, а максимально возможная задержка на получение информации 15 минут. При этом запас бесплатного суточного трафика составляет 15Мб из 20Мб предоставляемых в соответствии с тарифной опцией.
Второй тип управления (при помощи SMS) может использоваться тогда, когда необходимо получить информацию или изменить режим работы «здесь и сейчас» (т.е. если мы не хотим ждать 15 минут до очередного сеанса связи с сервером).
Ну и, напоследок, небольшое маркетинговое исследование. Вышеописанная разработка делалась исключительно «для себя», но с учетом интереса к ней наших друзей и соседей рассматривается вариант создания промышленного варианта такого контроллера.
Автор: Vedga
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/109646
Ссылки в тексте:
[1] некоторых случаях и нулевая: #megafon_inet
[2] «Интернет планшет»: http://moscow.megafon.ru/internet/options/internet_tablet_xs.html
[3] USB-модем: http://moscow.megafon.ru/mobile_devices/detail/?back_anchor=router#88295
[4] Banana PI: http://www.bananapi.org/p/product.html
[5] Raspberry Pi: https://ru.wikipedia.org/wiki/Raspberry_Pi
[6] DS18B20: http://voltmaster.ru/cgi-bin/qwery.pl/id=839442121
[7] соответствующей статье: http://geektimes.ru/post/265668/
[8] датчик атмосферного давления: http://amperka.ru/product/troyka-barometer
[9] eBus: http://ru.teplowiki.org/wiki/EBus
[10] устройство-терморегулятор: http://www.protherm-rus.ru/catalog/avtomatika-i-prinadlezhnosti/protherm-thermolink-p.html
[11] автор этой статьи: http://www.ab-log.ru/smart-house/heating-automation/gaz_meter
[12] Zabbix: http://www.zabbix.com/ru/
[13] предыдущую публикацию: https://geektimes.ru/post/265668/
[14] Источник: https://geektimes.ru/post/269318/
Нажмите здесь для печати.