Делаем аромадиффузор Xiaomi Youpin HL "умным"
Необходимость в удаленном управлении аромадиффузором конечно специфическая... Но может быть кому-то захочется повторить :) В моем случае, мне хотелось, чтобы он включался автоматически на короткий промежуток времени, дабы реже заниматься его наполнением. Ну и было интересно поразбираться.
Сам аромадиффузор выглядит так:
По сути, это маленький ультразвуковой увлажнитель с подсветкой и одной кнопкой для включения/переключения цветов подсветки коротким нажатием и выключения длительным нажатием. Питается от USB. При подаче питания автоматически не включается, обязательно нужно нажать кнопку.
В результате доработки появляется возможность получать статус устройства и эмулировать нажатия на кнопку с помощью MQTT.
Для доработки нам понадобятся:
D1 Mini. Маленькая плата с питанием от USB, с WiFi и разными входами-выходами для подключения внешних компонентов. Можно использовать и что-нибудь другое, но именно D1 Mini по габаритам идеально вписывается в корпус этого аромадиффузора, располагаясь под основной платой.
Два резистора на 470 Ом
Резистор на 10 кОм
Две оптопары PC817.
Как сделать:
Скачать скетч из репозитория, открыть его в Arduino IDE, вбить данные для Wi-Fi роутера и MQTT-брокера. Залить скетч в D1 Mini.
Разобрать аромадиффузор. Для этого снимаем резинку снизу и выкручиваем четыре самореза. После этого корпус достаточно легко разделяется на две части.
Соединить пины D6 и GND через резистор на 10 кОм.
Светодиод первой оптопары присоединяем через резистор на 470 Ом параллельно контактам вентилятора. Фототранзистор - к пинам D6 и 3.3v. Это позволит нам узнавать статус устройства. Замечу, что у этого аромадиффузора есть особенность: если в бачке нет воды, то вентилятор включается на очень короткий промежуток времени. Что я и использовал для определения наличия воды. Наверное можно было иначе, но так проще и меньше деталей.
Светодиод второй оптопары присоединяем через резистор на 470 Ом к пинам D7 и GND. Фототранзистор параллельно кнопке. Это позволит нам эмулировать нажатия.
После этого можно собирать аромадиффузор.
В MQTT можно использовать два топика:
state - для получения статуса устройства. Может принимать значения on, off или error (если нет воды).
command - для управления кнопкой. Соответственно, press - для включения и переключения цветов, а press_long для выключения устройства.
В таком виде устройство работает уже более года без нареканий. Фото не прикладываю, ибо сам спаял все на коленке и как пособие такие фотографии не годятся. Замечания, советы, коммиты в репозиторий приветствуются: сам переделывать вряд ли буду, но может кому-то будет полезно.
Все получают камни и доски, а я arduino
Вот мне и "повезло". Заказал телефон (Xiaomi redmi 4x) и аксессуары к нему (+ всякую мелочь) на не безызвестном интернет-магазине GearBest. Способ доставки выбрал СДЕК. (Заказал 12.04.17, трек появился 18.04.17, пришла 5.05.17)
Принес мне на дом курьер, я расписался, и забрал посылку. Открыл ее на камеру, и после того как достал последний предмет, я уже пролетал Юпитер. Вместо телефона там лежало 3 Funduno Mega 2560 (китайская копия оригинального arduno) и 3 lcd экрана к нему. (Осталось купить gsm модуль и мобила готова, даже 3)
3 синие упаковки это funduno, а в красном поролоне lcd экраны.
Написал в тех поддержку GearBest. Ответили то что у нас товаров с таким с SKU (артикул) нет, поэтому они не могли их положить в посылку, спрашивай у своей почты.
Пробил я эти SKU 256335 и 374741 и эти товары оказались с не безызвестного интернет-магазина DealExtreme.
И даже не знаю что думать, для наших воров это слишком муторно, обычно кладут доски, камни, и всякую мишуру, а тут arduino по стоимости как пол телефона.