Модуль управления бойлером, вытяжкой и контроль уровня газа (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 также будет реализована передача информации на мобильный телефон в меседжер Телеграмм
     
    don13 нравится это.
  2. IvanUA

    IvanUA Гик

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

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

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

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

    [​IMG]

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

    [​IMG]

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

    IvanUA Гик

    [​IMG]

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


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

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

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

    Ну и собственно не законченная картинка, но уже на половину опоясавшая датчиками картина умного дома
    [​IMG]
     
    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. Так что скоро будет новая игрушка)))