Модуль управления бойлером, вытяжкой и контроль уровня газа (ESP-12, DS1307, LCD16x2, WEB, MQTT)

Тема в разделе "Глядите, что я сделал", создана пользователем IvanUA, 9 окт 2017.

  1. IvanUA

    IvanUA Гик

    Ну вот фактически на выходе, мой проект по управлению бойлером и вытяжкой. Почему на выходе?
    Просто до этого момента, эта идея уже успела притерпеть не одну итерацию изменений как в коде, так и в железе. На самом деле проект начался 5 месяцев назад, и успел перекочевать с Arduino NANO на ESP-12.
    От первоначального состояния осталась только идея. И уверен, что это не последние изменения.
    Почему решил написать, об этом сейчас? Я реализовал большинство функций что задумывал и мне кажется что сейчас наступило время "большой обкатки"

    И так что хотелось сделать и что было реализовано:
    - Управление температурой бойлера по расписанию
    - 4-ре настраиваемых временных интервала
    - Задавать время и температуру бойлера можно при помощи WEB интерфейса
    - Вывод значений текущей температуры, заданной температуры, заданного времени, состояния вклюяения бойлера, состояния ручного подогрева, на MQTT сервер.
    - Управление ручным подогревом (бойлер греет воду до определенной температуры без каких либо временных параметров) через WEB интерфейс, через MQTT протокол (просто с мобильного или MajorDomo) или просто кнопки на самом устройстве.
    - Индикация: включения бойлера, включения ручного подогрева, подключения к сети WiFi
    - Индикация на LCD дисплее времени, температуры бойлера, заданной температуры, заданного времени смены температуры
    - с WiFi-ем всё понятно, настройка через WEB, выбор сети из списка доступных, настройка имени и пароля точки доступа, автоматическое пере подключение к сети в случае "потери" последней ни что-то что было в предыдущих проектах

    - Вытяжка - включение оной при достижении температуры в 40 градусов
    - Передача температуры вытяжки и её состояния (вкл/выкл) на MQTT сервер
    - Задать порог включения вытяжки и посмотреть ее температуру можно через WEB интерфейс
    - Буквально вчера добавлена функция включения вытяжки при увеличении температуры на 10 градусов от температуры в доме (температуру в доме берем из данный других устройств через MQTT сервер)

    - Датчик уровня газа, ну он живет своей жизнь где то за газовой плитой
    - Есть визуальный контроль (светодиодный индикатор уровня) уровня газа в блоке реле над вытяжкой - можно независимо от работы системы оценить какой уровень утечки газа по количеству зажженных светодиодов
    - Информация о уровне газа через аналоговый вход ESP-12 передается на MQTT сервер
    - При достижении определенного значения - подается предупреждающий сигнал из динамика устройства
    - Также параллельно сигналу информация через MQTT подается на информ. устройства. В моем случае это часы-информер в зале и часы в детской. Через MajorDomo также будет реализована передача информации на мобильный телефон в меседжер Телеграмм
     
    sys и don13 нравится это.
  2. IvanUA

    IvanUA Гик

    Вся начинка разместилась в электрической коммутационной коробке
    [​IMG]
    Как обычно, на скорую руку (а возможно навсегда) все зафиксировано термоклеем

    Также на боковую панель был выведен разъем для прошивки устройства через СОМ порт, хоть в нем уже и так заложена возможность прошивки по воздуху.....

    Передняя панель выглядит немного по симпатичнее))))
    [​IMG]
    Желтый светодиод говорит о том что не удалось подключиться к существующей сети WiFi и устройство подняло свою точку доступа.
    Информация о подключению к сети (адрес) или об адресе точки доступа выводится на дисплей

    [​IMG]
    Синий светодиод сигнализирует включение режима ручного подогрева, а красный собственно включение бойлера

    [​IMG]

    Реле управления вытяжкой и индикатору уровня газа разместился также в электрической коробке над вытяжкой

    [​IMG]

    Мелкие часы в детской пищат и пишут что: "ВНИМАНИЕ!!! Превышен уровень газа 322 ед.!!!!
     
    DIYMan и sys нравится это.
  3. IvanUA

    IvanUA Гик

    [​IMG]

    Часы информер в зале также не отстают и синхронно рапортуют о том же...
    [​IMG]
    [​IMG]


    Ну и все это действо прекрасно описано в графиках на MajorDomo
    [​IMG]

    Ночью по дешевому тарифу греем бойлер до 60 градусов, днем - при снижении до 38 градусов, начинаем греть до 40
    [​IMG]

    Здесь видно как часто и с какой интенсивностью пользовались газовой печкой)))
    [​IMG]

    Ну и собственно не законченная картинка, но уже на половину опоясавшая датчиками картина умного дома
    [​IMG]
     
    Securbond, sys и Igor68 нравится это.
  4. IvanUA

    IvanUA Гик

    Вчера планировал закончить коментить скейтч и выдать его в свободное плавание, но увы весь вечер убил на допиливание функционала.
    Как оказалось не лишними стали функции:
    - Настройка часового пояса и перехода на летнее время через WEB страницу
    - Настройка уровня аларма датчика газа через WEB страницу
    - Настройка параметров включения вытяжки через WEB страницу
    Так же добавил уличный датчик DS18B20.

    С чем пришлось столкнуться:
    LCD 16х2 и часы реального времени общаются с ESP через I2C протокол и после включения или после перезаписи ESP этот протокол "подвисает". По началу делал скидку на несогласованность уровней шины со стороны ESP -3,3В, а со стороны экрана и часов 5,5В. Установка конвертера уровней к сожалению успеха не принесла. Можно сказать что этот глюк не особо и мешает (1 раз на 5-10 включений), но не приятно.

    Следующим этапом собирался переводить свою коридорную Ардуинку на ESP. Но... Понимаю что мощности ESP-12 и ее портов увы для меня не хватает. Сегодня заказал ESP-32. Так что скоро будет новая игрушка)))
     
  5. Oleksandr54

    Oleksandr54 Нерд

    Доброго времени суток IvanUA, через Вас "подсел" ( в добром смисле етого слова) на MQTT и MajorDomo. И пока только начинаю вникать в систему умного дома соответственно появилась пара вопросов:
    1. Из Вашего опита насколько стабильно работает связка MQTT, MajorDomo и ESP, если есть подвисания то насколько часто и после пропадания и появления интернета стабильно ли "оживает" система в целом ?;
    2.Есть ли целесообразность и опит применения внешнего модуля (220+БП, датчика температури DS18B20 и ESP) которий находиться на улице и влияние на его работу низких температур, -20 например. Так как не хочу сверлить диру в стене для виноса чисто одного датчика DS18B20;
    3.В какой программе нарисована картинка для MajorDomo, у меня квартира один в один с Вашей только без верхней (синей) комнати и часи такие же, и информер (информер на 8 матриц) :) ?
     
  6. IvanUA

    IvanUA Гик

    MajorDomo - у меня живет на OrngePiOne - и в связке через MQTT с ЕСПшками в принципе работают стабильно. Было пару раз что подвисал модуль MQTT в МD. Один раз я перезагрузил апельсина, а другой просто пересохранил параметры МQTT в настройках модуля.
    Если вам для питания внешнего модуля необходимо будет просверлить дырку для 220, то какая разница внешний, или просто датчик... Как писал выше, я использовал просто датчик, но в планах есть и сбрка внешнего термометра на аккумуляторе. ЕСП - естественно загонять в режим глубокого сна. На своем 18В20 максимум что я видел это -15.
    Комнату рисовал в SweetHome3D
    Сейчас она выглядит так
    [​IMG]
     
  7. Securbond

    Securbond Гик

    Оооо третий день бьюсь с тем, что датчик AM2320 подвисает уходит через какое то время в offline (рандомно. Может через 5 минут, может через час), на одной шине с экраном 2004 i2c. Похоже, что это из той же оперы.
     
  8. IvanUA

    IvanUA Гик

    Да, каким то образом это связано. Я пытался по отдельности запускать экран и модуль времени, и так они стартуют без проблем. А вот вместе иногда висят.
     
  9. Oleksandr54

    Oleksandr54 Нерд

    Спасибо за ответ. Тоже нарисовал план в SweetHome3D много лишнего наверно натулил. Из значков реально пока работает только температура от часов, остальние значки пока только проба. И вопрос: для MajorDomo на каком сервере MQTT локальном или отдаленном лучше строить умний дом из опита.
     

    Вложения:

    • 22.jpg
      22.jpg
      Размер файла:
      205,5 КБ
      Просмотров:
      258
  10. IvanUA

    IvanUA Гик

    У меня сейчас хоть и поднят локальный MQTT на апельсинке, но пользуюсь внешним москитом... Просто еще не дошли руки как настроить внешний доступ к локальному MQTT серверу. А без этого я не буду видеть из далека, что творится у меня дома))) Красивый план нарисовали, но попробуйте его покрутить и поэкспериментировать с вертикальным углом камеры (у вас получился совсем закрытый корридор)