Обучаемый ИК-пульт DIY
Применение информации с этой страницы требует специальных знаний и навыков
Всё описанное на этой странице вы производите на свой страх и риск, включая нарушение работы программного обеспечения и выход из строя оборудования, а также риск поражения током и травмы.
Материал носит информационный характер, и не является прямым указанием к действию!
Возможно, копия страницы Алиса_и_обучаемый_ИК-пульт_DIY
Содержание
Вступление
Сегодня соберем полностью обучаемый ИК-пульт для управления устройствами посредством команд Алисе.
Для сборки нам понадобятся:
1. NodeMcu V3 (покупал здесь) или Wemos D1 mini (или подобные платы с esp2688) - 1 шт.
2. Модуль ИК-приемника (можно этот или любой принимающий ИК-диод) - 1 шт.
3. Модуль ИК-излучателя (покупал этот) - 1-4 шт. (в зависимости от желаемого угла излучения и бюджета)
4. Источник стабилизированного (желательно, чтобы избежать проблем) питания (подойдет обычная USB зарядка около 1А)
Преимущества перед прошлым решением или заводским решением:
- Отсутствие потребности загрузки скетча при любых изменениях;
- Управление любыми инфракрасными устройствами (если найдутся устройства, которые откажутся работать - пишите, рассмотрим);
- Дешевизна деталей и простота сборки;
- Возможность коррекции списка устройств и сценариев управления ими
- Возможность разместить пульт в любой корпус (включая корпус самого принимающего устройства);
- Отличный способ провести время и подтянуть скиллы.
Подготовительные работы
Установить:
- ArduinoIDE, и в самой среде:
- библиотеки Blynk и IRremoteESP8266,
- библиотеки для платы NodeMCU.
Проверить правильность настройки ArduinoIDE:
- Подключить NodeMCU к USB-порту компьютера.
- Выбрать правильный тип платы.
- Выбрать правильный порт (меню «Инструменты» - «Порт»), его можно посмотреть в диспетчере устройств вашей ОС (например, COM4).
- Создать пустой скетч (меню «Файл» - «Новый», или Ctrl-N).
- Загрузить этот пустой скетч в плату (кнопка «Загрузка», или Ctrl-U).
Подробнее по настройке разделе «Полезные ссылки».
Создаем проект в Blynk
- Скачиваем официальное приложение blynk из GooglePlay или AppStore.
- Регистрируемся в приложении (рис. 1)
- Создаём новый проект (рис. 2)
- Важно правильно выбрать микроконтроллер (рис. 3)
- Появится пустая страница для элементов управления (рис. 4), а на адрес электронной почты придёт token от нашего проекта в blynk, который мы будем использовать для управления через webhook.
Собираем схему пульта
Собираем схему пульта по рисунку (Рис. 1)
Скачиваем скетч по ссылке и меняем в файле "config.h" следующие данные:
1. char auth[] = "TokenBlynkTokenBlynkTokenBlynkTokenBlynk"; TokenBlynkTokenBlynkTokenBlynkTokenBlynk меняем на свой токен, полученный при создании проекта в приложении Blynk
2. char ssid[] = "My-WiFi"; My-WiFi меняем на название Вашей WiFi-сети
3. char pass[] = "My-pass"; My-pass меняем на пароль от Вашей WiFi-сети
Загружаем скетч в наше устройство.
Готовим устройство через навык "Домовенок Кузя"
Будем использовать хорошо зарекомендовавший себя навык УД "Домовенок Кузя". Для этого:
- Переходим на сайт навыка и авторизуемся там с помощью учетной записи Яндекс.
- Выбираем кнопку "Добавить правило HTTP (GET)".
- Для управления нам нужна ссылка на get-запрос вида http://blynk-cloud.com/token_blynk/update/V1?value=key_ir
где token_blynk - токен, полученный на моменте создания проекта blynk и зашитый в конфиге нашего скетча key_ir - код ИК-сигнала, который мы должны получить следующим образом:
- Наводим оригинальный пульт от устройства на наш DIY-пульт и нажимаем нужную кнопку (например включение-выключение телевизора)
- Переходим по ссылке http://blynk-cloud.com/token_blynk/get/V0, где token_blynk - наш токен и видим ответ вида: ["71-9098,4498,632,514,600,542,606,512,634,508,598,544,608,508,634,508,598,544,608,1658,596,1670,630,1662,610,1658,602,1664,634,1658,608,1660,604,1664,626,516,594,1672,626,1666,610,510,628,514,602,542,604,512,626,522,598,1664,636,508,594,548,606,1660,598,1668,634,1660,602,1666,604,1662,636,40458,9106,2228,600"]
тут 71-9098,4498,632,514,600,542,606,512,634,508,598,544,608,508,634,508,598,544,608,1658,596,1670,630,1662,610,1658,602,1664,634,1658,608,1660,604,1664,626,516,594,1672,626,1666,610,510,628,514,602,542,604,512,626,522,598,1664,636,508,594,548,606,1660,598,1668,634,1660,602,1666,604,1662,636,40458,9106,2228,600 и будет нужный нам key_ir
В итоге ссылка на отправку get-запроса будет выглядеть примерно так: http://blynk-cloud.com/jiuiIOJUYiytUITY78698UuiY7y/update/V1?value=71-9098,4498,632,514,600,542,606,512,634,508,598,544,608,508,634,508,598,544,608,1658,596,1670,630,1662,610,1658,602,1664,634,1658,608,1660,604,1664,626,516,594,1672,626,1666,610,510,628,514,602,542,604,512,626,522,598,1664,636,508,594,548,606,1660,598,1668,634,1660,602,1666,604,1662,636,40458,9106,2228,600
- Вставляем полученную ссылку в поле ввода URL управления устройством, доступный из интернета на сайте навыка "Домовенок Кузя" (Рис. 2.1)
- Переходим в раздел виртуальных устройств нажатием на кнопку "Виртуальные устройства умного дома" в шапке сайта
- Создаем новое устройство нажатием соответствующей кнопки (например, для простого действия достаточно выбрать "Розетка" (даже если у нас кнопка телевизора), имеющего функции "Вкл" и "Выкл"
- Вводим название устройства и комнату, в которой оно располагается (Рис. 2.2)
- В поле "Правило на включение" и "Правило на выключение" выбираем из списка наше созданное ранее правило (Рис. 2.2)
Добавляем устройство в УДЯ
- Переходим в веб-версию УДЯ и нажимаем "+" для добавления нового устройства
- Выбираем "Устройство умного дома" (Рис. 3.1)
- Из списка выбираем навык "Домовенок Кузя" (Рис. 3.2)
- На странице навыка нажимаем кнопку "Обновить список устройств" (Рис. 3.3)
- Должно появиться новое устройство с именем, которое мы задали на сайте навыка (Рис. 3.4)
Если устройство не появилось, советую проверить список своих устройств. Возможно оно уже в списке под названием "Розетка" в комнате "Комната". УДЯ подтягивает данные от навыка моментально, поэтому устройство может быть создано до момента его редактирования на сайте. В таком случае его можно удалить из списка и снова добавить или попросту переименовать и настроить уже в самом УДЯ.
Жмем кнопку "Далее" и настраиваем принадлежность нашего устройства "по-вкусу".
На этом настройка первой кнопки закончена. Теперь можно сказать "Алиса, включи телевизор" и сработает действие соответствующее заданной кнопке.
Далее добавлять кнопки можно таким образом:
- Нажимаем кнопку на оригинальном пульте устройства, заблаговременно наведя его на DIY-пульт
- Обновляем открытую ранее страничку http://blynk-cloud.com/token_blynk/get/V0
- Копируем полученный код
- Вставляем код в правило в формате get-запроса
Послесловие
Данная инструкция рассказывает о том, как пробросить отправку и получение сигналов в RAW-формате от УДЯ до инфракрасных устройств посредством облачного сервиса Blynk.
Принцип работы в том, что при получении ИК-сигнала микроконтроллер декодирует сигнал в RAW-формат и задает виртуальному пину Blynk V0 строковое состояние с кодом сигнала. которое мы получает через API сервиса Blynk.
Далее мы через это же API задаем состояние пина V1 в виде полученной нами строки с кодом. При изменении состояния происходит кодирование и отправка ИК-сигнала. То есть мы можем использовать это в таких примерах:
- В приложении Blynk добавить виджет "Webhook" задав ему ссылку на get-запрос, а рядом новый виджет кнопки. Важно, чтобы виртуальный пин у обоих виджетов был идентичный. Например V2.
- В конструкторе MIT App Inventor создать свое apk-приложение с собственным дизайном и кнопками управления.
- Собрать собственный виджет в Rainmeter
- Использовать API с форматом запроса в своих проектах или в других системах умного дома
- И многое-многое другое, ограниченное лишь Вашей фантазией.
Всем желаю интересных изобретательских решений и хорошего пинга.
Будут трудности - пишите в Telegram.
P.S. Отдельная благодарность разработчику навыка "Домовенок Кузя", который по просьбе увеличил размер поля ввода ссылки на get-запрос.