Мониторинг температуры на удалённом объекте «подручными» средствами


    В далёком 2019 году, когда на улицу можно было выйти без пропуска, меня попросили сделать удалённое отслеживание температуры в деревенском доме. Условия были следующими. Есть частный дом с интернетом, в доме газовый котёл для отопления. Котёл поддерживает определённую температуру в системе отопления, периодически включаясь и выключаясь. В выключенном состоянии горит дежурный фитиль. Вытяжка установлена с ошибками, поэтому сильный ветер снаружи периодически задувает фитиль и отопление перестаёт работать. Чтобы зимой вода в системе отопления не замёрзла нужно вручную зажечь фитиль.

    В этом доме люди появляются один раз в месяц, поэтому без системы мониторинга не обойтись. Далее постановка задачи и её реализация самым «ленивым» способом, который нашёл за 2 месяца.


    Постановка задачи
    Если фитиль потух, то температура в доме начинает плавно опускаться. Когда она опустится ниже 15 градусов, отправить «клиенту» уведомление на электронную почту. «Клиент» сам принимает решение, или ехать самому, или позвонить соседям, которые зажгут фитиль. Главное условие: «Никакой настройки. Принёс, включил и всё работает».

    Выбор элементной базы
    На разработку у меня было 2 месяца (задача была поставлена осенью, до морозов было далеко). В данной ситуации сам собой напрашивался ESP8266. Wi-fi в доме есть, библиотеки для измерения температуры написаны для различных датчиков. И ESP и датчик температуры DS18b20 у меня были, поэтому отложил данный проект на некоторое время из-за дел на основной работе. Прошло почти 2 месяца и настала пора сдавать готовое решение, а я и не начинал. Посмотрел по сторонам и решил использовать готовое решение с некоторыми доработками. У меня был свободный контроллер умного дома на базе Z-Wave. Состоит из RaspberryPi и платы расширения к ней, которая и делает из неё контроллер умного дома. RaspberryPi купил на авито за 1500р. пол года назад, а плата расширения у меня была подержанная. Новая стоит 6000р.



    Если покупать всё в сборе в магазине, то цена около 13000р. и называется «Контроллер RaZberry».
    Готового датчика температуры совместимого с Z-wave у меня не было.

    Сделал его на базе ZUNo (в магазине около 3000р., мне достался бесплатно один из прототипов) и герметичного датчика температуры DS18B20.


    ZUNo – это ардуино совместимая плата со встроенным радио приёмо-передатчиком. Скетч для неё взял без изменений с сайта производителя (https://z-uno.z-wave.me/examples/1-wire-ds18b20-temperature-sensor/). Из этого скетча ZUNo каждые 30 секунд опрашивает датчик температуры и посылает уведомление контроллеру по радио. Во время ожидания ZUNo не спит. Это я к тому, что скетч примитивный, не экономит ресурсы ни самого микроконтроллера ни электроэнергию. Но делает ровно столько сколько мне и нужно!
    ZUNo «аккуратно» залил термоклеем в пластиковом корпусе.

    Из корпуса вывел 2 провода: питание от USB и датчик температуры. Получилось надёжно, так что и уронить не страшно и выглядит прилично.

    Контроллер подключил через Ethernet кабель к роутеру. Кабель можно было не использовать. RaspberryPi умеет пользоваться Wi-fi. Но поскольку главным требованием было «включил и забыл», не стал рисковать с предварительной настройкой wi-fi сети на raspberryPi.
    RaspberryPi была подключена к 2-х амперной «зарядке» от телефона. Датчик температуры потребляет до 50 мА поэтому его подключил в USB разъём RaspberryPi.

    Настройка Raspberry
    Образ взял отсюда storage.z-wave.me/z-way-server называется «razberry.img.zip».
    Далее установил образ на SD карту для RaspberryPi.
    Если RaspberryPi запустилась, то будет запущен и Z-way server (ПО умного дома). Но он старой версии, его нужно обновить. В настройках есть кнопка для обновления, но ей никто не пользуется и она не работает.

    Гораздо «удобнее» воспользоваться инструкцией для обновления. Она находится по этому адресу. Чтобы ввести команды описанные в данной инструкции нужно открыть терминал на RaspberryPi. Это можно сделать по ssh или подключить монитор с клавиатурой. Второй монитор и клавиатура у меня всегда рядом, в отличие от роутера, так что я выбрал второй вариант. Поскольку разрабатываю не обслуживаемую встраиваемую систему, то нужно предусмотреть сторожевой таймер для повышения надёжности. Всё таки RaspberryPi не является промышленным контроллером и систему Z-wave, тоже не рекомендуется применять в ответственных решениях буду рассчитывать на периодические зависания, выйти из которых можно только перезапуском ПО или всей операционной системы на RaspberryPi. Буду перезапускать операционную систему целиком каждый день в 12:00.
    Для этого добавил строчку в файл, выполняемый после старта операционной системы.
    #sudo vi /etc/rc.local
    shutdown -r 12:00

    Основные команды vi
    если захочу повторить и забуду
    «i»-начать печатать в vi
    «:wq!» – сохранить и выйти из vi

    Собранный термодатчик на базе ZUNo тоже не является идеальным, если подключить его к RaspberryPi он будет перезагружаться по питанию каждый день. Таким образом сильно повышается надёжность системы в целом. Слабым местом остаётся операционная система, если зависнет она и не перезагрузится в 12:00 уже ничего не поделаешь. Придётся вызывать «специалиста» передёрнуть питание. Однако, эта операционная система протестирована и отлажена лучше остальных составляющих этого проекта (надеюсь). На этот риск придётся пойти.

    Настройка ПО Z-way server

    Для входа в графическую часть ПО Z-way server подал питание на оборудование и через несколько минут воспользовался сервисом . Этот сервис ищет RaspberryPi c запущенным Z-way server в локальной сети и выводит их ip адреса. Также тут можно подключиться к удалённой RaspberryPi. Чтобы это настроить выбрал локальную RaspberryPi. Задал логин и пароль и запомнил шестизначный ID. Этого достаточно для удалённого подключения.

    ID для удалённого подключения.

    1) Добавил термодатчик. Это стандартное действие.

    2) Добавил Приложения-> Локальные приложения-> Email ME

    3) Указал название элемента и адрес электронной почты с текстом письма
    4) Добавил условие, при котором отправится письмо. Тоже ничего сложного.


    Финальная проверка
    Подключил RaspberryPi к роутеру через кабель, подал питание, подключил термодатчик.
    Охладил датчик температуры и получил письмо, потом ещё одно, и ещё. Пока температура ниже 15 градусов, «клиент» будет получать письма. Это хорошо, пропустить не удастся. (Забегая вперёд скажу, что почты у клиента тоже не было, поэтому я получал по несколько сотен писем от своего «детища». Мой почтовый клиент удобно складывал их в цепочки и никакого дискомфорта они не вызывали).
    Чтобы оперативно смотреть температуру в доме на телефоне, установил приложение Z-way.

    Не скажу что оно быстрое, удобное, но удалённо подключаться к Z-way server на RaspberryPi и смотреть температуру позволяет.

    Итоги
    За 2 вечера, оглядевшись по сторонам, собрал систему мониторинга температуры удалённого объекта. Раньше считал ZUNo и контроллер Razberry дорогими игрушками. Но после торжественного снятия моего оборудования с «боевого» поста, где оно несколько раз вовремя определило неисправность системы отопления за зимний сезон проникся уважением к данным изделиям. А уважать есть за что. Интернет и свет периодически пропадали, но после возобновления подачи связь восстанавливалась. Сейчас разобрал этот «комплекс» на запчасти и понял главную его силу. Имея платку-контроллер Razberry, которую можно вставить в RaspberryPi, а можно через UART переходник к любому компьютеру, одну или две ZUNo, базовый набор датчиков и простейшие исполнительные механизмы можно оперативно организовать решение возникшей проблемы. Не люблю слово «легко» и не имею опыта использования «умного» оборудования других производителей, но за 2 дня я получил готовый набор оборудования, который достаточно подключить к питанию, а также приложение на смартфон, web приложение на компьютер и уведомления на почту.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 14

      +5
      Делал подобное в виде пет проекта, датчик Bosch BME280. Записывал данные в базу для последующего построения графиков. Поднял на том же Raspberry PI сервачек и строил там графики.
      Если записывать не нужно в базу, а тупо мониторинг, то еще проще. Не понятно зачем все это нагромождение, датчик заказывал на али он рублей 200 стоил.
      Красивые картинки на веб сервере нарисовать можно было самому, уведомление о снижении — тоже на почту можно было послать.
      Короче из пушки по воробъям.
        +1
        а почему на фитиль не поставить датчик пламени? ну и следом электроподжиг можно, наверное.
          +1
          Идея с электроподжигом мне тоже нравилась. Но для этого нужно было туда поехать, потом разобрать котёл, чтобы до фитиля добраться. Нет опыта размещения датчиков выдерживающих большие температуры. И не хотелось лезть внутрь котла. Можно с другого конца заходить — мерить содержание бытового газа в вытяжке, но опять же во время работы котла там должна быть большая температура, которая испортит датчик. В итоге решили не проводить исследовательскую работу и не «модернизировать» газовое оборудование.
            0
            где-то в документах есть явный запрет на копание в газовых необслуживаемых котлах. Просто нужен новый котел уже с встроенной такой возможностью.
          +1
          У ребят еще недавно вышло новое приложение под Андроид, так и называется: «Z-Wave.Me» play.google.com/store/apps/details?id=me.zwave.zway
            0
            RaspberryPi купил на авито за 1500р. пол года назад, а плата расширения у меня была подержанная. Новая стоит 6000р.

            Мониторинг температуры на удалённом объекте «подручными» средствами
            за 105уе…
            store.ubibot.io/collections/all/products/ubibot-ws1
            на 30баксов бюджетнее вашего «подручного» решения
              0
              Резиновые бюджеты у вас. Я делал с SIM800L + Attiny2313A, а потом ESP8266 + Atmega8.
              Но хочется на самом деле еще бюджетнее.
              А вот за вечер-два не получается. Отладка самописного кода занимает не один вечер.
              0
              Но хочется на самом деле еще бюджетнее.

              учитывая что esp8866 умеет в tcp, наваять абсолютно любой http/socket сервер клиент не составляет труда. В итоге красная цена датчика такого — 10уе, и это с учетом выпитого пива во время разработки.
              Автор молодец, бесспорно, главное проблема решена, другое дело что это не бюджетно, и в целом чутка излишне
                +2

                Насколько понял из статьи котел старый без электроники, устройство контура газовой безопасности у него достаточно простое два датчика температуры (один на дымоходе, второй на котле) для контроля температуры (температура в дымоходе не должна превышать 80 С на котле так же 80С, чтобы не допустить закипания котла). Фитиль греет термопару, которая через цепь безопасности удерживает соленоид клапана регулятора газа. Так вот, с клеммы фитиля можно взять сигнал (постоянное напряжение в пределах 1В), ну а дальше надеюсь все сами поняли)
                Кейс- отключилось электричество, задуло фитиль и разморозили систему, рассматривали?

                  0
                  Спасибо за разъяснения по работе котла.
                  Кейс не рассматривал. Деревня не глухая, электричество дольше чем на пол дня не отключают, и то редко. Думаю, в доме температура с 22 до 15 градусов будет падать 1-2 дня. Поэтому не стали покупать бесперебойник. Весь проект обошёлся мне бесплатно, сейчас все детали вернулись ко мне обратно. А на будущую зиму исходные условия будут другими, так что может и вообще не придётся следить за температурой.
                    0

                    Была идея Холлом бесконтактно (без вмешательства в автоматику котла) контролировать наличие тока в цепи безопасности. Но до решения не дошло, из-за изменения условий проект застыл на отлаженных (> 95%) датчиках температуры с RS-485.

                    +2
                    Афигеть… А почему сервер с двумя Зионами не поставить под это дело?
                    Реально?

                    Обычной ОДНОЙ! ESP от Wemos за глаза хватило бы, стоимость решения 8-10$.

                    Бог ты мой, что лень с инженерами сделала…

                    P.S. контролировать бесконтактно горит ли фитиль можно по ИК-излучению (которое идет из зоны горения) или даже по свету (когда горит фитиль) — обычно там есть окошко. Точнее будет, чем ждать проседания температуры, но и ее можно померять на всякий и отправить сразу в одном пакете. А еще можно GSM-модем прикрутить (известный на али) и тогда даже ESP не нужна, и стоимость будет 4-8$.
                      0
                      Конечно, можно. Но я в глаза не видел котёл. По словам заказчика фитиль внутри и его не видно. Во время разработки находился от него в 350 км. Чтобы ставить ИК-приёмник придётся частично разобрать котёл, но до конца не уверен что это получится, потому что в своей жизни видел только газовые водонагреватели (там фитиль видно снаружи). Потом закрепить ИК приёмник и собрать всё обратно. И тут окажется, что на ИК падает слишком мало излучения и он не чувствует горящий фитиль. И клиенту нужно будет раздобыть компьютер, а мне объяснить по телефону как отлаживать ESP или модем за 4$. Идея отличная, чтобы после этого ко мне больше никогда и никто не обращался с просьбами.
                        0
                        В таком случае полно готовых промышленных решений для измерения температуры и передачи ее по сети. Зовутся они «WiFi loggers». Стоят меньше 100$. Можно было и не делать ничего.

                        А можно было чуть модифицировать датчик температуры и влажности от xiaomi aqara — прошивки емнип есть на 4pda — тогда 15-20$ и тоже почти не делать ничего.

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

                    Самое читаемое