Обучаемый ИК-пульт 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).


Подробнее по настройке разделе «Полезные ссылки».

IR-Blynk-Pult.jpg

Создаем проект в Blynk

  1. Скачиваем официальное приложение blynk из GooglePlay или AppStore.
  2. Регистрируемся в приложении (рис. 1)
  3. Создаём новый проект (рис. 2)
  4. Важно правильно выбрать микроконтроллер (рис. 3)
  5. Появится пустая страница для элементов управления (рис. 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-сети

Загружаем скетч в наше устройство.

Готовим устройство через навык "Домовенок Кузя"

Будем использовать хорошо зарекомендовавший себя навык УД "Домовенок Кузя". Для этого:

  1. Переходим на сайт навыка и авторизуемся там с помощью учетной записи Яндекс.
  2. Выбираем кнопку "Добавить правило HTTP (GET)".
  3. Для управления нам нужна ссылка на 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

  1. Вставляем полученную ссылку в поле ввода URL управления устройством, доступный из интернета на сайте навыка "Домовенок Кузя" (Рис. 2.1)
  2. Переходим в раздел виртуальных устройств нажатием на кнопку "Виртуальные устройства умного дома" в шапке сайта
  3. Создаем новое устройство нажатием соответствующей кнопки (например, для простого действия достаточно выбрать "Розетка" (даже если у нас кнопка телевизора), имеющего функции "Вкл" и "Выкл"
  4. Вводим название устройства и комнату, в которой оно располагается (Рис. 2.2)
  5. В поле "Правило на включение" и "Правило на выключение" выбираем из списка наше созданное ранее правило (Рис. 2.2)

Добавляем устройство в УДЯ

  1. Переходим в веб-версию УДЯ и нажимаем "+" для добавления нового устройства
  2. Выбираем "Устройство умного дома" (Рис. 3.1)
  3. Из списка выбираем навык "Домовенок Кузя" (Рис. 3.2)
  4. На странице навыка нажимаем кнопку "Обновить список устройств" (Рис. 3.3)
  5. Должно появиться новое устройство с именем, которое мы задали на сайте навыка (Рис. 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-запрос.

Полезные ссылки

Источник — https://wiki.yaboard.com/index.php?title=Обучаемый_ИК-пульт_DIY&oldid=7878 // MOD ext links // End MOD