Оглавление:
Видео: Alexa Voice Control TV Remote ESP8266: 9 шагов
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Кто-то в вашем доме теряет пульт дистанционного управления, вы заходите в пустую комнату и видите, как гудит телевизор. Батареи начинают выходить из строя, и никакого контроля из задней части комнаты. Теперь вы можете управлять своим телевизором, видеорегистратором и всем, что угодно с помощью ИК-управления, для которого вы можете захватывать ИК-сигнал. Я сделал эту систему для управления моим SKY DVR с помощью простого голосового интерфейса.
Требуемое оборудование:
- Amazon Echo или Dot
- Wi-Fi-роутер с возможностью переадресации портов (мой провайдер сделал это за меня)
- Arduino NANO преобразован в 3V3
- ESP8266 -01 или аналогичный
- Модуль или схема ИК-передатчика
- Модуль ИК-приемника, если вы хотите захватывать коды.
Требуемое программное обеспечение и услуги:
- Arduino IDE, я использовал 1.6.11
- Учетная запись Amazon Alexa Skills (бесплатно)
- Учетная запись Amazon AWS (бесплатный уровень, но для открытия учетной записи требуется кредитная карта) или альтернативный сервер.
Шаг 1. Настройка навыков Alexa
Набор навыков Alexas принимает голосовую команду и фильтрует ее, используя список «значений».
После регистрации:
В консоли разработчика Amazon выберите вкладку Alexa> Alexa Skills Kit [Начало работы]
[Добавить новый навык]
Тип навыка: пользовательская модель взаимодействия
Язык: выберите правильный, если он установлен на английский (США), он не будет отвечать!
Имя: сейчас это не важно, мы не публикуем.
Имя вызова: выберите короткое имя, это слово, используемое для открытия приложения.
[СЛЕДУЮЩИЙ]
Схема намерения, вставьте код
Пользовательские типы слотов {Добавить тип слота], введите EFFECT_ON_TV
в значениях слотов вставьте код
Примеры высказываний, put, TVCommandIntent tv {TVAction}
[СОХРАНИТЬ], на следующей странице навыков мы должны добавить ссылку на код, который мы собираемся запустить, когда «Намерение» запускается либо стартовым словом приложения «кликер», либо после этого «tv {slot value}».
Мы вернемся к Alexa после того, как настроим скрипт python для сервера Lambda.
Шаг 2. Скрипт Python для AWS Lambda Server
Зарегистрируйтесь на уровне бесплатного пользования AWS, у меня были опасения, что это может стоить мне реальных денег, но после того, как я использую его некоторое время и читая форумы, ограничения на использование настолько высоки для личного использования и разработки, что никогда не должны достигать точки зарядки. Существует альтернатива использованию вашего собственного HTTPS-сервера, и, возможно, это то, что может сделать esp8266, еще одно поучительное!
Это код, который запускается, когда произносится имя вызова (например, «Alexa open clicker») и получает волшебное слово от Alexa. После запуска приложения вам нужно только сказать «tv play, tv jump five», и Alexa отправит «play», «jump 5» этому скрипту python. Время ожидания приложения истекает, если через некоторое время оно не отвечает.
В сервисах AWS сначала выберите свое местоположение, в правом верхнем углу есть опция.
для США выберите N Вирджиния, для ЕС выберите Ирландию.
выберите "Лямбда" в заголовке "Вычислить".
[Создать лямбда-функцию]
[Пустая функция]
Настроить триггер: нажмите на пунктирную рамку и выберите Alexa Skills Kit.
[СЛЕДУЮЩИЙ]
Настроить функцию
Назови все, что хочешь
Описание на ваше усмотрение
Рутин: Python 2.7
вставить код Python,
в коде URL-адрес HTTP нужно будет позже изменить на ваш собственный внешний IP-адрес
ссылка = "https://185.255.255.255:777/text?data=" + любимый_цвет
внизу экрана находится РОЛЬ, щелкните вкладку и выберите Выбрать настраиваемую роль.
Откроется новый экран и нажмите «Разрешить». Он вернется к экрану «Настроить функцию» с основным исполнением Lamda, выбранным как «Существующая роль».
[ДАЛЕЕ] обзор, нажмите [Создать функцию], и он должен скомпилировать и дать вам номер ARN. Скопируйте этот код, и мы поместим его в набор навыков alexa.
Шаг 3:
Шаг 4. Установите ссылку набора навыков Alexa на AWS Lambda
В комплекте навыков Alexa выберите страницу конфигурации с заголовком Global Fields, выберите AWS Lambda и свой регион и вставьте код ARN в поле [ДАЛЕЕ], в тесте установите флажок ВКЛЮЧЕНО.
На этом мы закончили, теперь для некоторого оборудования.
Шаг 5: преобразование Arduino NANO 3V3
ESP8266 работает от 3v3, поэтому вы либо запускаете его от внешнего регулятора, либо конвертируете нано. Я использовал клон nano с USB-чипом CH340. У меня есть два разных макета печатных плат, о которых я знаю, но, надеюсь, они охватят большинство макетов.
Нам нужно заменить регулятор 5V на совместимый с контактами 3v3, 1117-3. затем направьте 5 В от гнезда USB только к регулятору, а все остальное подключите к его выходу. К счастью, этого можно достичь, удалив входной диод, заменив регулятор и добавив один провод от входной стороны диода к Vin на плате nano.
проверьте, сможете ли вы запрограммировать nano после преобразования.
Шаг 6: Код NANO
Здесь использовались коды для моего пульта дистанционного управления SKY UK, он может зависеть от модели, и стоит проверить, что ваши коды работают в отдельном эскизе, не связанном с esp8266.
Я использовал библиотеку IRremote от shirriff Version 2.0.1
Используйте пример IRrecord для захвата удаленных команд, для которых требуется модуль ИК-приемника, или вы можете найти свои коды в Интернете? Я не буду здесь вдаваться в подробности, но именно здесь вы можете выбрать, что и как контролировать.
Подключите ИК-передатчик, доступный на ebay, или создайте его. Вам следует использовать ИК-светодиоды с длиной волны 850 нм, так как они наиболее распространены в приемниках. Библиотека IR использовала D3 в качестве вывода TX.
Слово alexa передается в нано, поэтому отсюда его нано с голосовым управлением.
Шаг 7: ESP8266
Есть много модулей ESP8266, я использовал один, который мне пришлось подключить под микроскопом. ESP8266-01 имеет разъем 2x4 и все необходимые контакты, и это дешево. Множество примеров в Интернете,. Моя ошибка, GPIO_0 должен быть подключен к gnd во время включения (затем может быть перемещен) при программировании, его вывод конфигурации, подтянутый высоко внутри. После программирования позвольте GPIO_0 "плавать" и снова включиться. CHPD подключаются к V + постоянно.
Менеджер платы в Arduino 1.6.11 не имеет ссылки esp8622, в Arduino IDEfile> настройки> дополнительные URL-адреса Board Manager, добавьте:
arduino.esp8266.com/stable/package_esp8266c…
затем перейдите к менеджеру платы и найдите пакет esp8266. это должно дать вам большой список плат esp8266, выберите Tools> Board> ESP8266 Generic Module. Используя модуль usb to uart, теперь вы можете запрограммировать часть esp с помощью esp8266_server_text. Питание от 3V3, подключите TX-RX, RX-TX и Gnd.
Вам необходимо ввести свой сетевой SSID и пароль в скрипт, а также порт, который вы зададите для переадресации портов, например, 777.
Вы можете запустить код, повторно включив esp при подключении к преобразователю usb-uart, и в окне последовательного интерфейса Arduino (9600 бод) должен отображаться локальный IP-адрес модуля esp. введите это в код и перепрограммируйте.
Шаг 8: Настройка сети
Итак, чтобы разрешить вызову Lambda URL подключаться к HTTP-серверу ESP, нам нужно настроить ваш маршрутизатор на переадресацию портов. Я получил свой внешний IP-адрес с https://www.whatsmyip.org/, я использую микроволновую связь, поэтому у моего провайдера есть маршрутизатор, и мне пришлось запросить у них переадресацию портов. Мне пришлось указать IP-адрес ESP8266 в моей сети и порт, который я выбрал, например 777. Внешний IP-адрес необходимо ввести в лямбда-скрипт python, и ваш локальный адрес esp будет показан, когда вы запустите код esp8266 через ссылка usb на uart.
Модуль ESP на соединении usb-uart должен отображать на терминале входящее слово от лямбды.
Подключите ESP к nano, как показано 3v3, gnd и TX to nano D2 soft serial. Если у вас есть nano на usb для последовательного порта связи на th epc, он должен показать, что он получает от esp.
Если ESP не подключен к сети или не отвечает на URL-вызов от лямбда, лямбда будет тайм-аут и Alexa сообщает о неудачном ответе навыка
Шаг 9: Alexa Open Clicker Tv Pause
Я поставил модуль рядом с приемником, но с более мощным ИК-выходом он может быть где угодно в комнате. Я использую адаптер питания USB известного бренда для подачи питания через USB.
Устройтесь поудобнее и скажите "Alexa open Clicker"
Телепрограмма
телевизор идет вниз
ТВ выбор
ТВ спектакль
тв прыгай пять
для перехода вперед на заданное количество минут макрос перейдет к 30-кратному ожиданию запрошенного времени, а затем воспроизведется.
Рекламы в Великобритании занимают около пяти минут.
Чтобы выйти из приложения, скажите, что Alexa выйдет.
Наслаждаться.