¡Usa Alexa para controlar tu televisor!
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Herramientas y máquinas necesarias
|
Aplicaciones y servicios en línea
|
Acerca de este proyecto
¡Usando Alexa para controlar tu TV!
Introducción: Entonces, este proyecto repasa cómo usar su Alexa para enviar comandos y controlar su televisor hablando con él. Todo lo que pueda hacer su control remoto de TV, su Alexa lo puede hacer. Lo que vamos a hacer es grabar las señales de infrarrojos remotas y usar Alexa para reenviar esas mismas señales cuando la voz lo ordene. Estos son los pasos que necesita para que esto suceda o vea este video de YouTube:
Paso 1:descargue las bibliotecas de requisitos previos
Descargue las siguientes bibliotecas y colóquelas en sus bibliotecas IDE de Arduino:
- ESPAsyncTCP - https://github.com/me-no-dev/ESPAsyncTCP
- ESPAsyncUDP - https://github.com/me-no-dev/ESPAsyncUDP
- FauxMoESP - https://bitbucket.org/xoseperez/fauxmoesp> Descargas> Descargar repositorio
Paso 2:Programación de NodeMCU (módulo Wi-Fi)
Abra el boceto ESP8266-Alexa.ino y cárguelo en su NodeMCU (descargue la información de la placa de Board Manager en Arduino IDE). Todo lo que debe cambiar son las credenciales de Wi-Fi y los nombres de los dispositivos.
Puede personalizar los nombres de los dispositivos en el boceto ESP8266-Alexa.ino y las señales que salen en el boceto IR-Alexa-Send.ino:
Paso 3:lectura de las señales de infrarrojos del control remoto de TV
Sube el boceto IR_REMOTE_read.ino a tu Arduino para leer los impactos de la señal remota y registrar tus señales IR recibidas para referencia más adelante como se ve en este tutorial:
Paso 4:Programación de Arduino para enviar señales de TV IR a través de Alexa
A continuación, abra IR-Alexa-Send.ino en el IDE de Arduino y cárguelo en su Arduino Uno (asegúrese de cambiar la información de la placa de carga a UNO).
Conecte la alimentación a ambos módulos y conecte los cables entre ellos. Asegúrese de que el transmisor de infrarrojos esté conectado al terminal 3 de UNO. Consulte el esquema adjunto para obtener más información:
Paso 5:prueba del proyecto con Alexa
Ahora vaya a su aplicación Amazon Alexa en su dispositivo móvil o PC, vaya a su Hogar Inteligente y presione "Agregar Dispositivos" para encontrar cada uno de los comandos que configuró en el boceto ESP8266-Alexa.ino.
Una vez que los encuentre, puede probarlos usando una de las siguientes estructuras de comando:
- "Alexa, enciende NOMBRE DEL DISPOSITIVO "
- "Alexa, gira NOMBRE DEL DISPOSITIVO en "
- "Alexa, gira el NOMBRE DEL DISPOSITIVO en "
- "Alexa, enciende el NOMBRE DEL DISPOSITIVO "
Código
- ESP8266-Alexa.ino
- IR-Alexa-Send.ino
- IR_REMOTE_read.ino
ESP8266-Alexa.ino C / C ++
Esto se debe escribir en el chip NodeMCU para emular un dispositivo "WEMO" a través de Arduino IDE#include#include #include "fauxmoESP.h" // ----- -------------------------------------------------- ---------------------- // Credenciales Wifi // ---------------------- -------------------------------------------------- ----- # define WIFI_SSID "linksys" #define WIFI_PASS "" #define SERIAL_BAUDRATE 115200fauxmoESP fauxmo; // -------------------------- -------------------------------------------------- -// Wifi// -------------------------------------------- --------------------------------- void wifiSetup () {// Configure el módulo WIFI en el modo STA WiFi.mode ( WIFI_STA); // Conectar Serial.printf ("[WIFI] Conectando a% s", WIFI_SSID); WiFi.begin (WIFI_SSID, WIFI_PASS); // Espere mientras (WiFi.status ()! =WL_CONNECTED) {Serial.print ("."); retraso (100); } Serial.println (); // ¡Conectado! Serial.printf ("Modo ESTACIÓN [WIFI], SSID:% s, dirección IP:% s \ n", WiFi.SSID (). C_str (), WiFi.localIP (). ToString (). C_str ()); } // ----------------------------------------------- ------------------------------ // Iniciar pines // -------------- -------------------------------------------------- ------------- # define RELAY_PIN1 13 # define RELAY_PIN2 2 # define RELAY_PIN3 14 # define RELAY_PIN4 15void setup () {// inicializa los pines del relé pinMode (RELAY_PIN1, OUTPUT); digitalWrite (RELAY_PIN1, BAJO); pinMode (RELAY_PIN2, SALIDA); digitalWrite (RELAY_PIN2, BAJO); pinMode (RELAY_PIN3, SALIDA); digitalWrite (RELAY_PIN3, BAJO); pinMode (RELAY_PIN4, SALIDA); digitalWrite (RELAY_PIN4, BAJO); // Iniciar puerto serie y limpiar basura Serial.begin (SERIAL_BAUDRATE); Serial.println (); Serial.println (); Serial.println ("Boceto de demostración de FauxMo"); Serial.println ("Después de la conexión, pídale a Alexa / Echo que 'encienda' o 'apague' los píxeles o que 'encienda o apague el relé'"); // Wifi wifiSetup (); // ----------------------------------------- ------------------------------------ // Nombres de dispositivos de Alexa // ------- -------------------------------------------------- -------------------- // Fauxmo fauxmo.addDevice ("TV"); fauxmo.addDevice ("GregsNetflix"); fauxmo.addDevice ("Suspender"); fauxmo.addDevice ("Oficina"); fauxmo.onMessage (devolución de llamada);} // ---------------------------------------- ------------------------------------- // Llamadas de operación de Alexa // ------ -------------------------------------------------- --------------------- devolución de llamada anulada (uint8_t device_id, const char * device_name, bool state) {Serial.printf ("[MAIN]% s estado:% s \ n ", nombre_dispositivo, estado?" ON ":" OFF "); if ((strcmp (nombre_dispositivo, "TV") ==0)) {// ¡ajusta el relé inmediatamente! if (estado) {digitalWrite (RELAY_PIN1, HIGH); } else {digitalWrite (RELAY_PIN1, HIGH); }} if ((strcmp (device_name, "GregsNetflix") ==0)) {// ¡ajusta el relé inmediatamente! if (estado) {digitalWrite (RELAY_PIN2, HIGH); } else {digitalWrite (RELAY_PIN2, LOW); }} if ((strcmp (device_name, "Sleep") ==0)) {// ¡ajusta el relé inmediatamente! if (estado) {digitalWrite (RELAY_PIN3, HIGH); } else {digitalWrite (RELAY_PIN3, LOW); }} if ((strcmp (device_name, "Office") ==0)) {// ¡ajusta el relé inmediatamente! if (estado) {digitalWrite (RELAY_PIN4, HIGH); } else {digitalWrite (RELAY_PIN4, LOW); }}} bucle vacío () {fauxmo.handle (); retraso (500); digitalWrite (RELAY_PIN1, BAJO); digitalWrite (RELAY_PIN2, BAJO); digitalWrite (RELAY_PIN3, BAJO); digitalWrite (RELAY_PIN4, BAJO);}
IR-Alexa-Send.ino C / C ++
Esto se carga en Arduino UNO para leer las señales de NodeMCU y enviar las señales de infrarrojos apropiadas a través del diodo de transmisión de infrarrojos#includeIRsend irsend; #define a 4 # define b 5 # define c 6 # defina d 7void setup () {Serial.begin (9600); pinMode (a, ENTRADA); pinMode (b, ENTRADA); pinMode (c, ENTRADA); pinMode (d, INPUT);} bucle vacío () {if (digitalRead (a) ==HIGH) {irsend.sendNEC (0x57E3E817, 32); // Código de alimentación Serial.println ("TV"); retraso (500); } if (digitalRead (b) ==HIGH) {irsend.sendNEC (0x57E354AB, 32); // Ingrese Key delay (2000); irsend.sendNEC (0x57E39867, 32); // Retardo de tecla arriba (1000); irsend.sendNEC (0x57E39867, 32); // Retardo de tecla arriba (1000); irsend.sendNEC (0x57E39867, 32); // Retardo de tecla arriba (1000); irsend.sendNEC (0x57E3B44B, 32); // Retraso de la tecla derecha (1000); irsend.sendNEC (0x57E354AB, 32); // Ingrese retraso (2000); irsend.sendNEC (0x57E354AB, 32); // Ingrese Serial.println ("La Oficina"); retraso (500); } if (digitalRead (c) ==HIGH) {irsend.sendNEC (0x57E38679, 32); // Retraso del botón de opciones (1500); irsend.sendNEC (0x57E3CC33, 32); // Retraso de tecla abajo (700); irsend.sendNEC (0x57E3CC33, 32); // Retraso de tecla abajo (700); irsend.sendNEC (0x57E3CC33, 32); // Retraso de tecla abajo (700); irsend.sendNEC (0x57E3CC33, 32); // Retraso de tecla abajo (700); irsend.sendNEC (0x57E3B44B, 32); // Retraso de la tecla derecha (700); irsend.sendNEC (0x57E3B44B, 32); // Retraso de la tecla derecha (900); irsend.sendNEC (0x57E38679, 32); // Botón de opciones Serial.println ("Temporizador de suspensión"); retraso (500); } if (digitalRead (d) ==HIGH) {irsend.sendNEC (0x57E34AB5, 32); // Código Netflix Serial.println ("Netflix de Greg"); retraso (500); }}
IR_REMOTE_read.ino C / C ++
Use este código en su Arduino para leer los Clicker Hits provenientes de su control remoto al receptor de infrarrojos.//2017.06.22#include#include / * CÓMO CONECTAR LA PANTALLA LCD PIN DE IZQUIERDA A DERECHA CON PINES EN LA PARTE SUPERIOR * * GND - VCC - POT MIDDLE - 12 - GND - 11 - NINGUNO - NINGUNO - NINGUNO - NINGUNO - 5 - 4 - 9 - 2 - VCC - GND * * POT DEBE TENER 5V Y CONECTE A TIERRA Y PUEDE GIRAR LA PERILLA PARA CAMBIAR EL CONTRASTE DEL LCD * / LiquidCrystal lcd (12, 11, 5, 4, 9, 2); // 9 en lugar de 3 (NECESIDAD DE TRANSMISOR) int receptor pin =10; IRrecv irrecv (receptor pin); decode_results resultados; void setup () {lcd.begin (16, 2); pinMode (pin receptor, ENTRADA); Serial.begin (9600); irrecv.enableIRIn ();} void loop () {if (irrecv.decode (&results)) {Serial.println (results.value, HEX); irrecv.resume (); lcd.clear (); lcd.print (resultados.valor, HEX); retraso (150); }}
Esquemas
Este es el esquema final que conecta el Arduino al NodeMCU (módulo Wi-Fi)Proceso de manufactura
- Píldora anticonceptiva
- Traslado de su sistema de control industrial a inalámbrico
- Razones para utilizar composites termoendurecibles en su producto
- ¿Reparar o reemplazar su control de pantalla táctil dañado?
- Habilita el control de Alexa en tu ventilador de techo
- Controla tu LED con Cortana
- Tomar el control de las reparaciones de su propio vehículo
- Asegurando su Sistema de Control Industrial
- Cómo utilizar su máquina perforadora para taladrar metal
- 8 pasos para depurar su sistema de control de procesos
- Utilice PLCnext para WakeOnLan (WoL) en su PC