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

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

Удалённое управление кондиционером через ИК-Порт 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 запрещен)

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

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

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

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


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

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

Иллюстрация к комментарию
раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий
А идея вовсе с прошлого года
Иллюстрация к комментарию
показать ответы
1
DELETED
Автор поста оценил этот комментарий

Объясните мне, нахуя? У кондеев обычно в комплекте идет пульт(ТАДАМ).

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

банальный пример, закрыли окна уехали на пару деньков на дачу, на пути назад включили кондиционер, пришли -> кайфуете

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

прошёл час возможности редактировать нет.

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

не сразу понял что за Алиски, теперь дошло, ок поправлю, спасибо

показать ответы
Автор поста оценил этот комментарий
Зачем изобретать велосипед?
Взял себе с полгода назад по акции за 600р.
Есть приложение на смартфон, вбил туда андроид приставку, телевизор и кондер. Работает через вай-фай.
Иллюстрация к комментарию
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
Летом было много свободного времени, если бы не руками то тогда не получил бы кайф. И это не конечная версия устройства, хочу переделать в часы
показать ответы
Автор поста оценил этот комментарий

Светодиоду пофиг на напряжение, лишь бы оно было больше его Vf. У ИК светодиодов Vf обычно около 1.6-1.8В. Для яркости нужен ток. Если напрямую с пина ESP8266 питать, оно больше 12мА не рекомендуется выдавать. Поэтому светодиод лучше подключать через транзистор и ток делать ближе к его максимально допустимому. А у ИК это обычно минимум 50мА. У меня на 100мА, с учетом скважности несущей в 50%, можно все 200мА запросто на импульс давать для максимальной дальности.

Берете NPN транзистор, например 2N3904. Подрубаете +3.3 В -> коллектор, к эмиттеру -> резистор -> анод, катод на землю. Базу на вывод ноги контроллера. Резистор надо считать исходя из Vf, Uпит и падения напряжения на транзисторе. Но для начала где-то 47 Ом можно попробовать и снижать. Это довольно-таки безопасное значение для большинства ИК-светодиодов. Правильно конечно знать параметры светодиода и посчитать всё.

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

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

Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий

Спасибо большое!

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

10A для кондиционера достаточно?

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

Хм, а понеделник вас видимо полностью устраивает.

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

Всё писалось побырику, Работает -> Круто, + нормально озвучивает. Уже поставил русский словарь в PHPStorm, ошибки исправил. Всем Спасибо!

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

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

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

так или иначе, OrangePi лучше быть возле роутера с подключённым LAN кабелем, на стене не её место

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

Ну да, на модуле и стоит транзистор NPN S8050 судя по маркировке J3Y и резистор аж на 470 Ом и еще один на 1кОм (этот видимо на базу идет). Я думаю если нижний (по фото) уменьшить, можно поднять мощность передатчика.

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Спасибо, попробую
Автор поста оценил этот комментарий

У меня блок управления сверху на шкафу лежит, напротив кондера, его не видно. Куда его запрятать - это уже другой вопрос совсем, никто не заставляет как на фото у ТС лепить на скотч рядом.

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

Также противоположно от кондиционера стоит шкаф но оттуда не добивает, или я не умею направлять, ещё и питаю светодиод от 3.3V, на пин 5V(он же VIN) подаю 3.7 с БП

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

Проблема не в идее. Проблема в поддержке конкретного пульта кондера. Вот моего например в библиотеке не было. И пришлось самому поддержку допиливать.

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

"А ESP просто раз в пару минут проверяет обновление этого JSON на предмет изменений и всё." мне показалось это не совсем практично, так как срабатывает не сразу по этому и предложил Blynk

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

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


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

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

Иллюстрация к комментарию
раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Удачи, Blynk значительно облегчит вам задачу. Косательно кражи - проект реализовал ещё в прошлом месяце, только сейчас решился написать пост
показать ответы
Автор поста оценил этот комментарий

А что значит "Включи розетку вчера"?

Вы контрамот?

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
нет, это было для демонстрации, как работает валидация запроса
3
Автор поста оценил этот комментарий

Господа, особенно те, кто полез на алиэкспресс заказывать все подряд - есть более крутая тема - модули sonoff(своими руками видел только basic, говорят в ней больше всего GPIO наружу просто вывести) - внутри такая-же esp8266, но кроме нее встроенный питальник с 220в, реле на 220В10А, которым можно щелкать через сеть, корпус, который выглядит не как кусок говна с проводами и 3(при желании 4) GPIO выхода. Как бонус эту штуку можно прошивать прошивкой tasmota и тогда оно начинает уметь в MQTT, а это позволяет через разный софт-прокладки управлять всем подряд, навешивать датчики и ик-передатчики. Впродь до работы с эпловским нативным homekit

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

Спасибо, посмотрю. у них большой ассортимент что вы имели в виду конкретно?

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

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

Имеите

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

прошёл час возможности редактировать нет.

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

А разве OrangePi не несет ИК-покрт на борту?

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

несёт, но ведь нужно выключить/включить кондиционер а не OrangePI

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

Видимо мало ссылок на WIki, или проблема с грамматикой?

показать ответы