Из этой статьи мы с вами узнаем, как можно самостоятельно сделать голосового помощника для управления телевизором. У мастера, сделавшего это устройство есть дома телевизор Samsung Smart TV, но без голосового управления. Для расширения функционала можно приобрести умную колонку, например, Amazon Echo Dot, но мастер решил попробовать сделать ее самостоятельно.
Инструменты и материалы:
-Паяльник;
-Термоклей;
-3D-принтер;
-Термоусадочная трубка;
-Плата ESP8266-01s + программатор;
-NPN транзистор 2N2222A;
-Резистор 100 Ом;
-2 резистора 10 кОм;
-Переключатель;
-ИК-светодиод;
-Понижающий преобразователь;
-Плата Micro USB;
-Плата зарядки TP4056;
-Mini LiPo аккумулятор;
Шаг первый: общие вопросы
Вот некоторые возможные и полезные команды:
Включение / выключение телевизора
Настройки громкости (вверх / вниз / без звука)
Переключение на другой вход (порт HDMI, телевизор, приставка и т. д.)
Включите Netflix / Amazon Prime / YouTube …
Для питания устройства есть три варианта.
Через порт USB телевизора.
Через любой адаптер и понижающий преобразователь (нужно напряжение 5В).
Или от встроенной батареи, что делает устройство мобильным.
Для запуска этого проекта нам потребуется система, в которой работает бесплатное программное обеспечение «ioBroker». Это бесплатный MQTT-брокер, который позволяет ESP8266 подключаться к нему и обмениваться данными. У ioBroker также есть адаптер Alexa, который мы можем использовать для беспроводной связи нашего ESP с Alexa.
Мастер запускает ioBroker на старом ноутбуке, но для небольших устройств достаточно Raspberry-Pi. Скачать ioBroker можно на его официальном сайте здесь: www.iobroker.net
Еще нужна прошивка Tasmota. Ее можно скачать здесь: https://github.com/arendst/Tasmota/releases
Шаг второй: программирование ESP8266
Перед сборкой устройства нужно запрограммировать ESP8266.
Сначала подключаем ESP к программатору. Затем запустите Flash-Tool на компьютере. Дальше подключаем программатор через USB и нажимаем кнопку FLASH на плате. Отпустите ее через несколько секунд. Теперь в Program-Tool должен быть показан COM-пор. Выбираем его и продолжаем, выбрав Tasmota-Firmware. В настройках Baud-Rate должен быть 115.000 и выбран режим QIO.
По окончанию нажимаем Flash и должна появится надпись DONE.
Теперь нужно удалить программатор с ПК и установить его обратно после переключения его в режим UART (переключатель на плате).
Шаг третий: настройка устройства
Настройте ESP — WiFi.
Теперь, когда ESP запрограммирован и подключен к компьютеру в режиме UART, переходим в настройки Wi-Fi устройства и находим сеть, которая содержит слово «tasmota» в SSID (например, «Tasmota-31278D»). Дальше нужно подключится к сети. В браузере набираем 192.168.4.1.
Настройки Wi-Fi:
WLAN1:
SSID вашего Wi-Fi-роутера
Пароль вашего Wifi-роутера
WLAN2:
SSID вашего (второго) маршрутизатора (необязательно)
Пароль вашего (второго) маршрутизатора (необязательно)
Имя хоста: имя, которое будет отображаться в сети (у мастера «TV-Remote»).
Подтверждаем настройки, нажав «Save» (зеленая кнопка). Теперь ESP пытается подключиться к домашней сети Wi-Fi. Если этот процесс не запускается, ESP снова открывает свою собственную сеть Tasmota-Wifi-Network.
Настройка ESP — конфигурация модуля.
Когда ESP успешно подключился к домашней сети, нужно найти его IP-адрес в меню маршрутизатора.
Вводим адрес в свой браузер. Будет показана страница tasmota ESP. Теперь переходим в Settings —> Configure Module и выбираем » Generic (18) «.
В строке «GPIO-2» выбираем «IRsend (8)».
Далее Save.
Настройка ESP — MQTT.
ESP необходимо подключиться к ioBroker. Можно настроить MQTT-параметры на вкладке Settings—>Configure MQTT. Здесь нужно ввести свой Broker-IP, Broker-Port, MQTT-User (его можно найти в настройках MQTT-адаптера на ioBroker). Кроме того, необходимо ввести MQTT-пароль, имя клиента (как устройство отображается в ioBroker) и заголовок. Заголовок — это имя папки в iobroker. Если вы хотите использовать больше MQTT-устройств, мастер рекомендует давать полные заголовки, такие как гостиная /% topic% или кухня /% topic%. Это не обязательно делать, но это поможет в дальнейшем, когда у вас будет много подключенных устройств.
После настройки необходимо все сохранить.
ESP готов к использованию.
Шаг четвертый: настройка IoBroker
Теперь, когда ESP готов к использованию, нам нужно настроить MQTT-Broker и, необязательно, Alexa-Adapter.
Перейдем на свою веб-страницу ioBroker ( ip-адрес + порт (8081), например 192.168.178.188:8081 в данном случае).
Переходим в «Adapters», находим «MQTT Broker / Client» и « Alexa2».
Нам необходим MQTT-адаптер, Alexa не обязателен.
Выбираем параметры, как показано на фото. MQTT-User и пароль можно установить по своему усмотрению.
Сохраняем (левый нижний угол).
Чтобы проверить соединение ESP с брокером, необходимо отключить ESP от ПК и снова включить его в рабочем режиме.
Ждем несколько секунд, проверяем состояние «instances» страницы iobroker и посмотрите на «light» символ MQTT-адаптера. Если ваш ESP указан там, он успешно подключен.
Папки MQTT автоматически появятся на странице «Objects».
Дальше переходим на вкладку «Objects» в ioBroker.
Открываем папку mqtt.0 / YourTopic / cmnd.
Внутри этой папки cmnd (команды) нужно создать новую точку данных. Это можно сделать, щелкнув символ + (плюс) вверху.
Имя : IRsend
тип : Datapoint
тип данных: string
Шаг пятый: монтаж
Печатная плата на которой собирается устройство должна иметь круглую форму диаметром 50 мм.
Монтируем комплектующие согласно прилагаемой схемы.
Мастер использовал небольшие 2-контактные разъемы для ИК-светодиода, переключателя и Micro-USB-Power-Board. Не забываем отметить + и — на боковой стороне разъема. Ориентация переключателя не имеет значения.
Для устройства мастер напечатал на 3D-принтере корпус. Файлы можно скачать ниже.
ESP-IR-Cover-v2.stl
ESP-IR-v2.stl
Мастер приклеил плату, ИК-светодиод, переключатель и USB-порт внутрь с помощью термоклея. Само устройство он за своим телевизором с помощью двустороннего скотча.
Чтобы запустить устройство нужно нажать кнопку и удерживать во время включения в течение нескольких секунд. При нажатии выключатель отключает ИК-светодиод от GPIO-2, чтобы ESP мог запуститься.
Шаг шестой: автоматизация
Чтобы устройство заработало, нужно загрузить «Scripts» адаптера в ioBroker. После того, как вы установили его, слева появится новое поле с названием «Scripts». Откройте его и создайте новый Blockly-Script — это способ очень простого программирования.
Чтобы управлять телевизором, нам необходимо знать его ИК-коды. Коды можно легко найти в Интернете, найдите свою модель телевизора + ИК-коды. Так же коды можно декодировать с помощью ИК-приемника и Arduino.
В данном случае, у мастера, сигнал включения / выключения телевизора — «0xE0E040BF». Теперь нужна переменная IRsend, которую создали ранее. Приведенный пример программы записывает код в переменную. Но до и после IRsend нужно прописать «0» с некоторой задержкой, например, 1 сек (смотрим фото в конце).
Нам необходимо использовать этот заголовок для IRsend: {«Protocol»:»NEC»,»Bits»:32,»Data»: YourIRCode}
Триггером для включения телевизора может быть любая переменная в ioBroker. Если вы хотите сделать это с помощью Alexa, просто создайте новую процедуру в приложении Alexa на своем смартфоне и назовите ее, например, «Включить телевизор».
Эту переменную можно найти в папке адаптера Alexa на вкладке «Objects» вашего ioBroker. Эта переменная должна быть выбрана в качестве триггерного события в верхней части примера сценария (условие if).
Если у пользователя есть смарт-телевизор, можно также запустить, например, Netflix, Amazon Prime, YouTube и т. д.
Не забудьте установить IRsend на 0 между командами с небольшой задержкой. Задержки должны быть со значениями от 500 до 1000 мс.
Источник (Source)
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
Источник: