«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant

в 8:01, , рубрики: DEXP, DIY, esp8266, home automation, homeassistant, timeweb_статьи, xiaomi, сделай сам, увлажнитель воздуха, электроника
«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 1

Привет!

Наверное, многие из вас знают, насколько важно поддерживать качественный микроклимат в доме, одним из важных параметров которого является относительная влажность воздуха. Вот и я, года три назад, озаботился данным вопросом и приобрел увлажнитель воздуха Xiaomi Deerma Humidifier DEM-F628S (полный аналог DEXP HD-440). Увлажнитель оказался удачной конструкции и приемлемой ценной, что обеспечило ему «народную» популярность. Но, к сожалению, данный увлажнитель не поддерживает интеграцию в системы умного дома и вообще не имеет коммуникационных интерфейсов, я решил исправить этот недостаток и что у меня получилось — об этом далее.

Итак, что мы хотим?

Для начала, нам нужно определиться, что мы хотим делать с увлажнителем с помощью умного дома:

  1. Получать статусы увлажнителя (Вкл/выкл, режим работы, данные датчика, уровень воды в баке);
  2. Управлять питанием устройства, то есть включать и выключать;
  3. Выбирать уровень мощности увлажнителя.

Вскрытие покажет

Чтобы найти варианты реализации задуманного, нам необходимо вскрыть объект и изучить, как он работает. Ну что ж, давайте приступим, с детства люблю разбирать различные устройства. Разобьем на этапы разборки:

Сперва нам нужно удалить резиновые уплотнители, они же ножки, под ними скрываются шурупы, которые нам нужно вывернуть.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 2

Выкручиваем шурупы.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 3

Затем нужно аккуратно удалить верхнюю крышку и вуаля, нам доступен внутренний мир увлажнителя!

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 4

«Мозгом» нашего увлажнителя является вертикально расположенная плата, в которую подключены разъемы.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 5

Чтобы беспрепятственно её демонтировать и изучить, необходимо убрать панель с ультразвуковым излучателем. Откручиваем четыре больших шурупа, которыми прикреплен модуль.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 6

Затем аккуратно отключаем все разъёмы от платы и осторожно вынимаем светофильтр индикатора, предварительно отщелкнуть защелки, которые показаны на фото.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 7

Ура! Мы достали плату и теперь можем её изучить. Как можно видеть, пружины выполняют роль антенн сенсорных кнопок управления.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 8

Так выглядит плата с обратной стороны.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 9

Настало время волшебства

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

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 10

Описание точек подключения:

  1. Анод необходимого разряда;
  2. Катод индикации «Уровень воды минимум»;
  3. Катод индикации «Уровень мощности минимальный»;
  4. Катод индикации «Уровень мощности средний»;
  5. Катод индикации «Уровень мощности максимальный».

Точка J1-1 — это антенна сенсорной кнопки питания, она же выбор мощности. Алгоритм следующий:

Долгое нажатие включает или отключает увлажнитель, короткие нажатия изменяют режим мощности.

Эксперименты показали, что банальное замыкание антенны на GND вызывает срабатывание кнопки, то есть используя оптрон, припаяв его как можно ближе к антенне, мы можем управлять включением, выключением и выбором уровня мощности увлажнителя. К сожалению, варианты подключения ко встроенному датчику температуры/влажности я не смог найти, поэтому самым простым решением будет установка дополнительного датчика DHT22. В результате у меня вырисовывается следующая схема модуля для интеграции в Home Assistant, как вы могли догадаться, данный модуль построен на базе микроконтроллера esp8266, а так как мы извлекаем необходимые сигналы с динамического индикатора, то наиболее простым вариантом будет применение оптронов.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 11

На фото вариант подключения шлейф и проверка моей концепции с помощью тестового навесного монтажа.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 12

Ниже вариант изготовления печатной платы.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 13

Немного магии и упорства и плата готова.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 14

Подключаем её к нашему увлажнителю, согласно принципиальной схеме.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 15

И крепим её на боковой стенке корпуса с помощью двухстороннего скотча.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 16

Не забываем про датчик DHT22. Разместим его на крышке, как показано на фото.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 17

Теперь дело за малым — собрать всё в обратной разборке последовательности.

Прошивка устройства

Микро ПО модуля разрабатывалось в среде Arduino IDE. Для конфигурации устройства используется web интерфейс. При первом включении устройство создаст Wi-Fi точку доступа, при подключении к ней, пользователя автоматически «перенесёт» на страницу конфигурации устройства, благодаря технологии Captive Portal. Станица входа, по умолчанию пароль «Admin».

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 18

После входа, первым делом необходимо настроить подключение к вашей Wi-Fi сети и перезагрузить устройство. Далее, используя присвоенный IP адрес, повторно войти для дальнейшей конфигурации. Ниже несколько скриншотов интерфейса.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 19

При включении увлажнителя появляется функция выбора мощности увлажнителя.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 20

Страница конфигурации подключения с использованием протокола MQTT.

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 21

Интеграция в Home Assistant

Чтобы интегрировать наш увлажнитель в Home Assistant, необходимо настроить MQTT подключение и разрешить отправку данных при конфигурации модуля. Затем в Home Assistant отредактировать файл configuration.yaml, добавив в секцию mqtt следующий код:

sensor:
    - name: "Датчик температуры увлажнителя"
      unique_id: 5bc54f8b-7d41-4774-bfce-e98e92409d3e
      state_topic: "humiditer/jsondata"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.temp }}"
      device_class: temperature  
    - name: "Датчик влажности увлажнителя"
      unique_id: 5bc54f8b-7d41-4774-bfce-e98e92409d3f
      state_topic: "humiditer/jsondata"
      unit_of_measurement: "%"
      value_template: "{{ value_json.hum }}"
      device_class: humidity  
switch:
    - name: "Питание увлажнителя"
      unique_id: 5bc54f8b-7d41-4774-bfce-e98e92409d38
      state_topic: "humiditer/jsondata"
      command_topic: "humiditer/control"
      value_template: "{{ value_json.chanel1 }}"
      payload_on: "0"
      payload_off: "0"
      state_on: "On"
      state_off: "Off"
    - name: "Режим мин"
      unique_id: 5bc54f8b-7d41-4564-bfce-e98e92409d38
      state_topic: "humiditer/jsondata"
      command_topic: "humiditer/control"
      value_template: "{% if value_json.chanel1 == 'On' and value_json.level2 == '0' and value_json.level3 == '0' %} On {% else %} Off {% endif %}"
      payload_on: "1"
      state_on: "On"
      state_off: "Off"
    - name: "Режим сред"
      unique_id: 5bc54f8b-7d41-4764-bfce-e98e92409d38
      state_topic: "humiditer/jsondata"
      command_topic: "humiditer/control"
      value_template: "{% if value_json.chanel1 == 'On' and value_json.level2 == '1' and value_json.level3 == '0' %} 1 {% else %} 0 {% endif %}"
      payload_on: "2"
      state_on: "1"
      state_off: "0"
    - name: "Режим макс"
      unique_id: 5bc54f8b-7d41-4784-bfce-e98e92409d38
      state_topic: "humiditer/jsondata"
      command_topic: "humiditer/control"
      value_template: "{% if value_json.chanel1 == 'On' and value_json.level2 == '1' and value_json.level3 == '1' %} 1 {% else %} 0 {% endif %}"
      payload_on: "3"
      state_on: "1"
      state_off: "0"
      #конец увлажнителя

Теперь добавим карточку нашего увлажнителя на панель управления Home Assistant, предварительно создав карточку «Объекты» и в текстовом редакторе вставить следующий код:

type: entities
entities:
  - entity: sensor.datchik_temperatury_uvlazhnitelia
  - entity: sensor.datchik_vlazhnosti_uvlazhnitelia_2
  - entity: binary_sensor.uroven_vody
  - entity: switch.rezhim_min
  - entity: switch.rezhim_sred
  - entity: switch.rezhim_maks
  - entity: switch.status_uvlazhnitelia
title: Увлажнитель воздуха
state_color: true

В итоге, мы должны получить что-то подобное:

«Глупый» увлажнитель VS умный дом: подключаем «народный» увлажнитель к Home Assistant - 22

В данном примере используется имя корня топика «humiditer», что указывается при конфигурации устройства.

Подводим итоги

У нас получилось достаточно простое и бюджетное решение для интеграции «народного» увлажнителя воздуха в системы умного дома. Описанная в статье схема управления без нареканий проработала уже более двух лет, использовался навесной монтаж, но для статьи я решил изготовить полноценную печатную плату. Теперь давайте подсчитаем наши затраты:
Комплектующие:

  1. Микроконтроллер esp8266 — 1 шт $1.15;
  2. Оптрон EL817 — $2.42 (цена за 100 шт);
  3. Линейный стабилизатор HT7333-A SOT23 — $1.9 (цена за 20 шт);
  4. Датчик DHT22 (он же AM2302) — 1 шт $1.4;
  5. Прочие компоненты < $1.

Итого, примерный бюджет на реализацию: $8.

Демонстрация работы

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

Ссылки к статье:


Автор: Valeriy

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js