Удалённое управление кондиционером через ИК-Порт

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

Удалённое управление кондиционером через ИК-Порт Arduino, Wemos, Esp8266, Кондиционер, Яндекс Алиса, PHP, Длиннопост, Orangepi

В основе всего лежит библиотека arduino-heatpumpir именно она позволяет взаимодействовать с кондиционером, на момент прототипирования проходил YAC2018, и по этому решил попробовать Яндекс. Диалоги, которые позволяют создавать навыки для Алисы (хотел использовать бота Telegram) также поскольку это элемент управления умного дома пришёл к решению использовать OrangePI, дабы все устройства взаимодействовали с этой платой а плата с диалогами. То есть работать это должно так:

Удалённое управление кондиционером через ИК-Порт Arduino, Wemos, Esp8266, Кондиционер, Яндекс Алиса, PHP, Длиннопост, Orangepi

Это сугубо моё решение, если хотите по простому то рекомендую использовать Blynk, или Universal-Arduino-Telegram-Bot.

Удалённое управление кондиционером через ИК-Порт Arduino, Wemos, Esp8266, Кондиционер, Яндекс Алиса, PHP, Длиннопост, Orangepi

Стоимость компонентов получилась ~4$, (Wemos D1 Mini [RobotDyn], и ИК модуль) БП в расчёт не брал. Соединяться очень просто

IN -> D2,

GND -> GND

VCC -> 5V

Крепление на скотч, держится больше месяца

Удалённое управление кондиционером через ИК-Порт Arduino, Wemos, Esp8266, Кондиционер, Яндекс Алиса, PHP, Длиннопост, Orangepi

Больше деталей
Wemos с OrangePI соединяются через websocket, на Wemos'e используется Arduino-Websocket, на OrangePi Workerman. Запросы диалогов нужно ещё и обрабатывать, использовал фреймворк Laravel (проще [мне] писать на PHP, поэтому и использовал его). Все запросы обрабатываются в порядке очереди, добавляться записи в БД, а после на основе времени извлекаются, если говорить проще, пример запроса:

SELECT * FROM `queue` WHERE `device_id` = 1 AND `time` <= 1535357950

После ответа Wemos'a запись удаляется, то есть не будет ответа - запись будет циклично отправляться.
Также, хочу отметить, используются шаблоны запросов, текст подставляется под каждый и при совпадении обрабатывается

Удалённое управление кондиционером через ИК-Порт Arduino, Wemos, Esp8266, Кондиционер, Яндекс Алиса, PHP, Длиннопост, Orangepi

В результате будет массив с action, num и в зависимости от шаблона, day и time, класс отвечающий за это выгрузил на gist. И в качестве фичи, реализовал уточнение запроса если что-то получено не верно. (Вкл/выкл по таймеру, вырезал из за не надобности, на скрине пример с розеткой)

Удалённое управление кондиционером через ИК-Порт Arduino, Wemos, Esp8266, Кондиционер, Яндекс Алиса, PHP, Длиннопост, Orangepi

Большее спасибо что дочитали до конца. Вот видео как это работает: https://youtu.be/lbdwN-Ki7rU, нету рейтинга чтобы прикрепить прямо в пост

Arduino & Pi

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

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

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

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

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

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

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

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

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

11
Автор поста оценил этот комментарий
Включить 28 розетку вчера в 28 30... Алиса охуела от такой команды😂
12
Автор поста оценил этот комментарий

Ну хоть грамматику Алиски поправь.

Имеите

раскрыть ветку
5
Автор поста оценил этот комментарий

киберпанк, который мы заслужили

4
Автор поста оценил этот комментарий

Блин! @aquaminer, ты украл у меня пост! ) Только собирался аналогичный пилить на днях. Сам реализовал похожую штуку. Именно на Wemos D1 Mini, именно с этой библиотекой. Даже новый кондер/пульт туда добавил и закоммитил недавно на гитхаб: https://github.com/ToniA/arduino-heatpumpir/commit/2761aba5f...


Только у меня другой чуть подход, без OPi и алис. Страничка HTML на AngularJS + Bootstrap вешается на хостинг. Она же передает данные простенькому PHP скрипту, который сохраняет в JSON файл текущие настройки. А ESP просто раз в пару минут проверяет обновление этого JSON на предмет изменений и всё.

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

Иллюстрация к комментарию
раскрыть ветку
4
Автор поста оценил этот комментарий
Тихо плачу в углу... По Русски а непонятно....
раскрыть ветку