Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Используйте Alexa для управления телевизором!

Компоненты и расходные материалы

Arduino UNO
Используется с передающим ИК-диодом для отправки телевизионных команд на телевизор
× 1
NodeMCU ESP8266 Breakout Board
Этот компонент представляет собой модуль Wi-Fi, который подключается к приложению Amazon Alexa как устройство WEMO. . Отправляет импульс для каждого устройства в Arduino UNO
× 1
ИК-передатчик / приемник
Этот компонент используется последовательно с резистором 100 Ом для отправки ИК-команд на телевизор
× 1

Необходимые инструменты и машины

Паяльник (универсальный)

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Использование Alexa для управления телевизором!

Введение: Итак, в этом проекте рассказывается, как использовать Alexa для отправки команд и управления телевизором, разговаривая с ним. Все, что может делать ваш пульт от телевизора, может делать и ваш Alexa. Что мы собираемся сделать, так это записать удаленные ИК-сигналы и использовать Alexa для повторной отправки тех же сигналов по голосовой команде. Вот шаги, которые вам нужно сделать, чтобы это произошло, или посмотрите это видео на YouTube:

Шаг 1. Загрузите необходимые библиотеки

Загрузите следующие библиотеки и поместите их в свои библиотеки IDE Arduino:

  • ESPAsyncTCP - https://github.com/me-no-dev/ESPAsyncTCP
  • ESPAsyncUDP - https://github.com/me-no-dev/ESPAsyncUDP
  • FauxMoESP - https://bitbucket.org/xoseperez/fauxmoesp> Загрузки> Загрузить репозиторий

Шаг 2. Программирование NodeMCU (модуля Wi-Fi)

Откройте эскиз ESP8266-Alexa.ino и загрузите его в свой NodeMCU (загрузите информацию о плате из Board Manager в Arduino IDE). Все, что вам нужно изменить, - это учетные данные Wi-Fi и имена устройств.

Вы можете настроить имена устройств в эскизе ESP8266-Alexa.ino и сигналы, которые выходят в эскизе IR-Alexa-Send.ino:

Шаг 3. Считывание ИК-сигналов с пульта ДУ

Загрузите скетч IR_REMOTE_read.ino на свой Arduino, чтобы считывать попадания удаленного сигнала и записывать полученные ИК-сигналы для дальнейшего использования, как показано в этом руководстве:

Шаг 4. Программирование Arduino для отправки телевизионных ИК-сигналов через Alexa

Затем откройте IR-Alexa-Send.ino в среде Arduino IDE и загрузите его на свой Arduino Uno (убедитесь, что вы изменили информацию о загрузочной плате на UNO).

Подключите питание к обоим модулям и соедините провода между собой. Убедитесь, что ИК-передатчик подключен к клемме 3 UNO. См. Прилагаемую схему для получения дополнительной информации:

Шаг 5. Тестирование проекта с помощью Alexa

Теперь войдите в приложение Amazon Alexa на мобильном устройстве или ПК, перейдите в «Умный дом» и нажмите «Добавить устройства», чтобы найти все команды, которые вы установили в эскизе ESP8266-Alexa.ino.

Как только они будут обнаружены, вы можете протестировать его, используя одну из следующих структур команд:

  • "Алекса, включи НАЗВАНИЕ УСТРОЙСТВА "
  • "Алекса, включи НАЗВАНИЕ УСТРОЙСТВА на "
  • "Алекса, поверните НАЗВАНИЕ УСТРОЙСТВА на "
  • "Алекса, включи НАЗВАНИЕ УСТРОЙСТВА "

Код

  • ESP8266-Alexa.ino
  • IR-Alexa-Send.ino
  • IR_REMOTE_read.ino
ESP8266-Alexa.ino C / C ++
Это должно быть записано в чип NodeMCU для эмуляции устройства "WEMO" через Arduino IDE
 #include  #include  #include "fauxmoESP.h" // ----- -------------------------------------------------- ---------------------- // Учетные данные Wi-Fi // ---------------------- -------------------------------------------------- ----- # определить WIFI_SSID "linksys" #define WIFI_PASS "" #define SERIAL_BAUDRATE 115200fauxmoESP fauxmo; // -------------------------- -------------------------------------------------- -// Вай-фай// -------------------------------------------- --------------------------------- void wifiSetup () {// Установить модуль WIFI в режим STA WiFi.mode ( WIFI_STA); // Подключение Serial.printf ("[WIFI] Подключение к% s", WIFI_SSID); WiFi.begin (WIFI_SSID, WIFI_PASS); // Ждем пока (WiFi.status ()! =WL_CONNECTED) {Serial.print ("."); задержка (100); } Serial.println (); // Связанный! Serial.printf ("[WIFI] STATION Mode, SSID:% s, IP address:% s \ n", WiFi.SSID (). C_str (), WiFi.localIP (). ToString (). C_str ()); } // ----------------------------------------------- ------------------------------ // Инициализация контактов // -------------- -------------------------------------------------- ------------- # определить RELAY_PIN1 13 # определить RELAY_PIN2 2 # определить RELAY_PIN3 14 # определить RELAY_PIN4 15void setup () {// инициализировать контакты реле pinMode (RELAY_PIN1, OUTPUT); digitalWrite (RELAY_PIN1, LOW); pinMode (RELAY_PIN2, ВЫХОД); digitalWrite (RELAY_PIN2, LOW); pinMode (RELAY_PIN3, ВЫХОД); digitalWrite (RELAY_PIN3, LOW); pinMode (RELAY_PIN4, ВЫХОД); digitalWrite (RELAY_PIN4, LOW); // Запуск последовательного порта и очистка мусора Serial.begin (SERIAL_BAUDRATE); Serial.println (); Serial.println (); Serial.println («Демо-скетч FauxMo»); Serial.println («После подключения попросите Alexa / Echo« включить или выключить пиксели »или« включить реле »или« выключить »); // Wi-Fi wifiSetup (); // ----------------------------------------- ------------------------------------ // Имена устройств Alexa // ------- -------------------------------------------------- -------------------- // Fauxmo fauxmo.addDevice ("TV"); fauxmo.addDevice ("GregsNetflix"); fauxmo.addDevice («Сон»); fauxmo.addDevice («Офис»); fauxmo.onMessage (callback);} // ---------------------------------------- ------------------------------------- // Вызовы операций Alexa // ------ -------------------------------------------------- --------------------- void callback (uint8_t device_id, const char * device_name, bool state) {Serial.printf ("[MAIN]% s state:% s \ n ", имя_устройства, состояние?" ВКЛ ":" ВЫКЛ "); if ((strcmp (device_name, "TV") ==0)) {// немедленно настраиваем реле! если (состояние) {digitalWrite (RELAY_PIN1, HIGH); } еще {digitalWrite (RELAY_PIN1, HIGH); }} if ((strcmp (device_name, "GregsNetflix") ==0)) {// немедленно настройте реле! если (состояние) {digitalWrite (RELAY_PIN2, HIGH); } еще {digitalWrite (RELAY_PIN2, LOW); }} if ((strcmp (device_name, "Sleep") ==0)) {// немедленно настраиваем реле! если (состояние) {digitalWrite (RELAY_PIN3, HIGH); } еще {digitalWrite (RELAY_PIN3, LOW); }} if ((strcmp (device_name, "Office") ==0)) {// немедленно настраиваем реле! если (состояние) {digitalWrite (RELAY_PIN4, HIGH); } еще {digitalWrite (RELAY_PIN4, LOW); }}} void loop () {fauxmo.handle (); задержка (500); digitalWrite (RELAY_PIN1, LOW); digitalWrite (RELAY_PIN2, LOW); digitalWrite (RELAY_PIN3, LOW); digitalWrite (RELAY_PIN4, LOW);} 
IR-Alexa-Send.ino C / C ++
Он загружается в Arduino UNO для чтения сигналов от NodeMCU и отправки соответствующих ИК-сигналов через передающий ИК-диод
 #include  IRsend irsend; #define a 4 # define b 5 # define c 6 # определить 7void setup () {Serial.begin (9600); pinMode (а, ВХОД); pinMode (b, ВХОД); pinMode (c, ВХОД); pinMode (d, INPUT);} void loop () {if (digitalRead (a) ==HIGH) {irsend.sendNEC (0x57E3E817, 32); // Код питания Serial.println ("TV"); задержка (500); } если (digitalRead (b) ==ВЫСОКИЙ) {irsend.sendNEC (0x57E354AB, 32); // Вводим задержку ключа (2000); irsend.sendNEC (0x57E39867, 32); // Задержка клавиши вверх (1000); irsend.sendNEC (0x57E39867, 32); // Задержка клавиши вверх (1000); irsend.sendNEC (0x57E39867, 32); // Задержка клавиши вверх (1000); irsend.sendNEC (0x57E3B44B, 32); // Задержка правой клавиши (1000); irsend.sendNEC (0x57E354AB, 32); // Вводим задержку (2000); irsend.sendNEC (0x57E354AB, 32); // Введите Serial.println ("Офис"); задержка (500); } если (digitalRead (c) ==ВЫСОКИЙ) {irsend.sendNEC (0x57E38679, 32); // Задержка кнопки опций (1500); irsend.sendNEC (0x57E3CC33, 32); // Задержка клавиши вниз (700); irsend.sendNEC (0x57E3CC33, 32); // Задержка клавиши вниз (700); irsend.sendNEC (0x57E3CC33, 32); // Задержка клавиши вниз (700); irsend.sendNEC (0x57E3CC33, 32); // Задержка клавиши вниз (700); irsend.sendNEC (0x57E3B44B, 32); // Задержка правой клавиши (700); irsend.sendNEC (0x57E3B44B, 32); // Задержка правой клавиши (900); irsend.sendNEC (0x57E38679, 32); // Кнопка параметров Serial.println ("Таймер сна"); задержка (500); } если (digitalRead (d) ==ВЫСОКИЙ) {irsend.sendNEC (0x57E34AB5, 32); // Код Netflix Serial.println («Netflix Грега»); задержка (500); }} 
IR_REMOTE_read.ino C / C ++
Используйте этот код на своем Arduino, чтобы прочитать количество кликеров, поступающих с пульта дистанционного управления на ИК-приемник.
 //2017.06.22#include  #include  / * КАК ПОДКЛЮЧИТЬ ЖК-ЭКРАН ПИН СЛЕВА НАПРАВО С ШТИФТАМИ НА ВЕРХНЕЙ СТОРОНЕ * * GND - VCC - POT MIDDLE - 12 - GND - 11 - NONE - NONE - NONE - NONE - 5 - 4 - 9 - 2 - VCC - GND * * POT ДОЛЖЕН ИМЕТЬ 5 В И ЗАЗЕМЛЕНИЕ И МОЖНО ВРАЩАТЬ РУЧКУ, ЧТОБЫ ИЗМЕНИТЬ КОНТРАСТ ЖК-дисплея * / LiquidCrystal lcd (12, 11, 5, 4, 9, 2); // 9 вместо 3 (НЕОБХОДИМО ПЕРЕДАТЧИК) int Receiverpin =10; IRrecv irrecv (Receiverpin); decode_results results; void setup () {lcd.begin (16, 2); pinMode (Receiverpin, ВХОД); Serial.begin (9600); irrecv.enableIRIn ();} цикл void () {if (irrecv.decode (&results)) {Serial.println (results.value, HEX); irrecv.resume (); lcd.clear (); lcd.print (results.value, HEX); задержка (150); }} 

Схема

Это окончательная схема подключения Arduino к NodeMCU (модуль Wi-Fi).

Производственный процесс

  1. Противозачаточные таблетки
  2. Перевод вашей промышленной системы управления на беспроводную связь
  3. Причины использования термореактивных композитов в вашем продукте
  4. Отремонтировать или заменить поврежденный элемент управления сенсорным экраном?
  5. Включение Alexa Control для потолочного вентилятора
  6. Возьмите под свой контроль ремонт вашего автомобиля
  7. Защита вашей промышленной системы управления
  8. Как использовать сверлильный станок для сверления металла
  9. 8 шагов для отладки вашей системы управления технологическим процессом
  10. Используйте PLCnext для WakeOnLan (WoL) вашего ПК