Удалённое управление кондиционером через ИК-Порт
Привет всем, скорее всего у многих было желание включить кондиционер находясь вдали от дома, надеюсь этот пост поможет вам с реализацией.
В основе всего лежит библиотека arduino-heatpumpir именно она позволяет взаимодействовать с кондиционером, на момент прототипирования проходил YAC2018, и по этому решил попробовать Яндекс. Диалоги, которые позволяют создавать навыки для Алисы (хотел использовать бота Telegram) также поскольку это элемент управления умного дома пришёл к решению использовать OrangePI, дабы все устройства взаимодействовали с этой платой а плата с диалогами. То есть работать это должно так:
Это сугубо моё решение, если хотите по простому то рекомендую использовать Blynk, или Universal-Arduino-Telegram-Bot.
Стоимость компонентов получилась ~4$, (Wemos D1 Mini [RobotDyn], и ИК модуль) БП в расчёт не брал. Соединяться очень простоIN -> D2,
GND -> GND
VCC -> 5V
Крепление на скотч, держится больше месяца
Больше деталей
Wemos с OrangePI соединяются через websocket, на Wemos'e используется Arduino-Websocket, на OrangePi Workerman. Запросы диалогов нужно ещё и обрабатывать, использовал фреймворк Laravel (проще [мне] писать на PHP, поэтому и использовал его). Все запросы обрабатываются в порядке очереди, добавляться записи в БД, а после на основе времени извлекаются, если говорить проще, пример запроса:SELECT * FROM `queue` WHERE `device_id` = 1 AND `time` <= 1535357950
После ответа Wemos'a запись удаляется, то есть не будет ответа - запись будет циклично отправляться.
Также, хочу отметить, используются шаблоны запросов, текст подставляется под каждый и при совпадении обрабатывается
В результате будет массив с action, num и в зависимости от шаблона, day и time, класс отвечающий за это выгрузил на gist. И в качестве фичи, реализовал уточнение запроса если что-то получено не верно. (Вкл/выкл по таймеру, вырезал из за не надобности, на скрине пример с розеткой)
Большее спасибо что дочитали до конца. Вот видео как это работает: https://youtu.be/lbdwN-Ki7rU, нету рейтинга чтобы прикрепить прямо в пост
Ну хоть грамматику Алиски поправь.
Имеите
киберпанк, который мы заслужили
Блин! @aquaminer, ты украл у меня пост! ) Только собирался аналогичный пилить на днях. Сам реализовал похожую штуку. Именно на Wemos D1 Mini, именно с этой библиотекой. Даже новый кондер/пульт туда добавил и закоммитил недавно на гитхаб: https://github.com/ToniA/arduino-heatpumpir/commit/2761aba5f...
Только у меня другой чуть подход, без OPi и алис. Страничка HTML на AngularJS + Bootstrap вешается на хостинг. Она же передает данные простенькому PHP скрипту, который сохраняет в JSON файл текущие настройки. А ESP просто раз в пару минут проверяет обновление этого JSON на предмет изменений и всё.
Пока как на скрине выглядит - минимализм, мне другого пока не надо, хотя в планах еще всё-таки добавить переключение режимов и иные функции пульта, и еще датчик температуры и влажности в комнате прикрутить и показывать данные с него. Со смарта удобно с такой странички рулить.