Делаем аромадиффузор Xiaomi Youpin HL "умным"

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

Сам аромадиффузор выглядит так:

Делаем аромадиффузор Xiaomi Youpin HL "умным" Умный дом, Esp8266, Arduino, Ароматизатор, Xiaomi, Своими руками, Самоделки, Электроника

По сути, это маленький ультразвуковой увлажнитель с подсветкой и одной кнопкой для включения/переключения цветов подсветки коротким нажатием и выключения длительным нажатием. Питается от USB. При подаче питания автоматически не включается, обязательно нужно нажать кнопку.

В результате доработки появляется возможность получать статус устройства и эмулировать нажатия на кнопку с помощью MQTT.

Для доработки нам понадобятся:

  1. D1 Mini. Маленькая плата с питанием от USB, с WiFi и разными входами-выходами для подключения внешних компонентов. Можно использовать и что-нибудь другое, но именно D1 Mini по габаритам идеально вписывается в корпус этого аромадиффузора, располагаясь под основной платой.

  2. Два резистора на 470 Ом

  3. Резистор на 10 кОм

  4. Две оптопары PC817.

Как сделать:

  1. Скачать скетч из репозитория, открыть его в Arduino IDE, вбить данные для Wi-Fi роутера и MQTT-брокера. Залить скетч в D1 Mini.

  2. Разобрать аромадиффузор. Для этого снимаем резинку снизу и выкручиваем четыре самореза. После этого корпус достаточно легко разделяется на две части.

  3. Соединить пины D6 и GND через резистор на 10 кОм.

  4. Светодиод первой оптопары присоединяем через резистор на 470 Ом параллельно контактам вентилятора. Фототранзистор - к пинам D6 и 3.3v. Это позволит нам узнавать статус устройства. Замечу, что у этого аромадиффузора есть особенность: если в бачке нет воды, то вентилятор включается на очень короткий промежуток времени. Что я и использовал для определения наличия воды. Наверное можно было иначе, но так проще и меньше деталей.

  5. Светодиод второй оптопары присоединяем через резистор на 470 Ом к пинам D7 и GND. Фототранзистор параллельно кнопке. Это позволит нам эмулировать нажатия.

После этого можно собирать аромадиффузор.

В MQTT можно использовать два топика:

  1. state - для получения статуса устройства. Может принимать значения on, off или error (если нет воды).

  2. command - для управления кнопкой. Соответственно, press - для включения и переключения цветов, а press_long для выключения устройства.

В таком виде устройство работает уже более года без нареканий. Фото не прикладываю, ибо сам спаял все на коленке и как пособие такие фотографии не годятся. Замечания, советы, коммиты в репозиторий приветствуются: сам переделывать вряд ли буду, но может кому-то будет полезно.

Arduino & Pi

1.4K постов20.6K подписчика

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу