Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Use Alexa para controlar sua TV!

Componentes e suprimentos

Arduino UNO
Isso é usado com o diodo de transmissão IV para enviar os comandos da TV à televisão
× 1
NodeMCU ESP8266 Breakout Board
Este componente é o módulo Wi-Fi que se conecta ao aplicativo Amazon Alexa como um dispositivo "WEMO" . Envia pulso para cada dispositivo ao Arduino UNO
× 1
Transmissor / receptor IR
Este componente é usado em série com um resistor de 100 Ohm para enviar comandos IR para a TV
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Aplicativos e serviços online

Arduino IDE

Sobre este projeto





Usando Alexa para controlar sua TV!


Introdução: Portanto, este projeto mostra como usar sua Alexa para enviar comandos e controlar sua TV falando com ela. Tudo o que o controle remoto da TV pode fazer, a Alexa pode fazer. O que vamos fazer é gravar os sinais de infravermelho remotos e usar o Alexa para reenviar esses mesmos sinais quando comandado por voz. Aqui estão as etapas necessárias para que isso aconteça ou assista a este vídeo no YouTube:





Etapa 1:Baixe as bibliotecas de pré-requisitos


Baixe as seguintes bibliotecas e coloque-as em suas bibliotecas do IDE do Arduino:
  • ESPAsyncTCP - https://github.com/me-no-dev/ESPAsyncTCP
  • ESPAsyncUDP - https://github.com/me-no-dev/ESPAsyncUDP
  • FauxMoESP - https://bitbucket.org/xoseperez/fauxmoesp> Downloads> Baixar repositório





Etapa 2:NodeMCU de programação (módulo Wi-Fi)


Abra o esboço ESP8266-Alexa.ino e carregue-o em seu NodeMCU (baixe as informações da placa do Board Manager no Arduino IDE). Tudo o que você precisa alterar são as credenciais do Wi-Fi e os nomes dos dispositivos.

Você pode personalizar os nomes dos dispositivos no esboço ESP8266-Alexa.ino e os sinais que saem no esboço IR-Alexa-Send.ino:





Etapa 3:leitura dos sinais de infravermelho do controle remoto da TV


Faça upload do esboço IR_REMOTE_read.ino para o seu Arduino para ler os acessos do sinal remoto e registrar os sinais IR recebidos para referência posteriormente, conforme visto neste tutorial:





Etapa 4:Programação do Arduino para enviar sinais de TV IR via Alexa


Em seguida, abra IR-Alexa-Send.ino no Arduino IDE e carregue-o no seu Arduino Uno (certifique-se de alterar as informações da placa de upload para UNO).

Conecte a alimentação a ambos os módulos e conecte os fios entre eles. Certifique-se de que o transmissor IR esteja conectado ao Terminal 3 do UNO. Consulte o esquema em anexo para obter mais informações:





Etapa 5:Testar o projeto com Alexa


Agora vá para o aplicativo Amazon Alexa em seu dispositivo móvel ou PC, vá para sua casa inteligente e pressione "Adicionar dispositivos" para encontrar cada um dos comandos que você definiu no esboço ESP8266-Alexa.ino.

Assim que forem encontrados, você pode testá-los usando uma das seguintes estruturas de comando:
  • "Alexa, ligue NOME DO DISPOSITIVO "
  • "Alexa, vire NOME DO DISPOSITIVO em "
  • "Alexa, gire o NOME DO DISPOSITIVO em "
  • "Alexa, ligue o NOME DO DISPOSITIVO "

Código

  • ESP8266-Alexa.ino
  • IR-Alexa-Send.ino
  • IR_REMOTE_read.ino
ESP8266-Alexa.ino C / C ++
Isso deve ser gravado no chip NodeMCU para emular um dispositivo "WEMO" via Arduino IDE
 #include  #include  #include "fauxmoESP.h" // ----- -------------------------------------------------- ---------------------- // Wifi Credentials // ---------------------- -------------------------------------------------- ----- # define WIFI_SSID "linksys" #define WIFI_PASS "" #define SERIAL_BAUDRATE 115200fauxmoESP fauxmo; // -------------------------- -------------------------------------------------- -// Wi-fi// -------------------------------------------- --------------------------------- void wifiSetup () {// Defina o módulo WIFI para o modo STA WiFi.mode ( WIFI_STA); // Conecte Serial.printf ("[WIFI] Conectando a% s", WIFI_SSID); WiFi.begin (WIFI_SSID, WIFI_PASS); // Aguarde enquanto (WiFi.status ()! =WL_CONNECTED) {Serial.print ("."); atraso (100); } Serial.println (); // Conectado! Serial.printf ("[WIFI] Modo STATION, SSID:% s, endereço IP:% s \ n", WiFi.SSID (). C_str (), WiFi.localIP (). ToString (). C_str ()); } // ----------------------------------------------- ------------------------------ // Iniciar pinos // -------------- -------------------------------------------------- ------------- # define RELAY_PIN1 13 # define RELAY_PIN2 2 # define RELAY_PIN3 14 # define RELAY_PIN4 15void setup () {// inicializa os pinos do relé pinMode (RELAY_PIN1, OUTPUT); digitalWrite (RELAY_PIN1, LOW); pinMode (RELAY_PIN2, OUTPUT); digitalWrite (RELAY_PIN2, LOW); pinMode (RELAY_PIN3, OUTPUT); digitalWrite (RELAY_PIN3, LOW); pinMode (RELAY_PIN4, OUTPUT); digitalWrite (RELAY_PIN4, LOW); // Inicia a porta serial e limpa o lixo Serial.begin (SERIAL_BAUDRATE); Serial.println (); Serial.println (); Serial.println ("esboço de demonstração FauxMo"); Serial.println ("Após a conexão, peça a Alexa / Echo para 'ligar os pixels' ou 'desligar' ou 'ligar o relé' ou 'desligar'"); // Wifi wifiSetup (); // ----------------------------------------- ------------------------------------ // Nomes de dispositivos Alexa // ------- -------------------------------------------------- -------------------- // Fauxmo fauxmo.addDevice ("TV"); fauxmo.addDevice ("GregsNetflix"); fauxmo.addDevice ("Sleep"); fauxmo.addDevice ("Office"); fauxmo.onMessage (callback);} // ---------------------------------------- ------------------------------------- // Chamadas de operação Alexa // ------ -------------------------------------------------- --------------------- retorno de chamada vazio (uint8_t device_id, const char * device_name, bool state) {Serial.printf ("[MAIN]% s state:% s \ n ", device_name, state?" ON ":" OFF "); if ((strcmp (device_name, "TV") ==0)) {// ajuste o relé imediatamente! if (estado) {digitalWrite (RELAY_PIN1, HIGH); } else {digitalWrite (RELAY_PIN1, HIGH); }} if ((strcmp (device_name, "GregsNetflix") ==0)) {// ajuste o relé imediatamente! if (estado) {digitalWrite (RELAY_PIN2, HIGH); } else {digitalWrite (RELAY_PIN2, LOW); }} if ((strcmp (device_name, "Sleep") ==0)) {// ajuste o relé imediatamente! if (estado) {digitalWrite (RELAY_PIN3, HIGH); } else {digitalWrite (RELAY_PIN3, LOW); }} if ((strcmp (device_name, "Office") ==0)) {// ajuste o relé imediatamente! if (estado) {digitalWrite (RELAY_PIN4, HIGH); } else {digitalWrite (RELAY_PIN4, LOW); }}} void loop () {fauxmo.handle (); atraso (500); digitalWrite (RELAY_PIN1, LOW); digitalWrite (RELAY_PIN2, LOW); digitalWrite (RELAY_PIN3, LOW); digitalWrite (RELAY_PIN4, LOW);} 
IR-Alexa-Send.ino C / C ++
Isso é carregado para o Arduino UNO para ler os sinais do NodeMCU e enviar os sinais de IR apropriados por meio do diodo transmissor de IR
 #include  IRsend irsend; #define a 4 # define b 5 # define c 6 # define d 7void setup () {Serial.begin (9600); pinMode (a, INPUT); pinMode (b, INPUT); pinMode (c, INPUT); pinMode (d, INPUT);} void loop () {if (digitalRead (a) ==HIGH) {irsend.sendNEC (0x57E3E817, 32); // Código de alimentação Serial.println ("TV"); atraso (500); } if (digitalRead (b) ==HIGH) {irsend.sendNEC (0x57E354AB, 32); // Insira o atraso da chave (2000); irsend.sendNEC (0x57E39867, 32); // Up Key delay (1000); irsend.sendNEC (0x57E39867, 32); // Up Key delay (1000); irsend.sendNEC (0x57E39867, 32); // Up Key delay (1000); irsend.sendNEC (0x57E3B44B, 32); // Atraso da tecla direita (1000); irsend.sendNEC (0x57E354AB, 32); // Insira atraso (2000); irsend.sendNEC (0x57E354AB, 32); // Insira Serial.println ("The Office"); atraso (500); } if (digitalRead (c) ==HIGH) {irsend.sendNEC (0x57E38679, 32); // Botão de opções delay (1500); irsend.sendNEC (0x57E3CC33, 32); // Down key delay (700); irsend.sendNEC (0x57E3CC33, 32); // Down key delay (700); irsend.sendNEC (0x57E3CC33, 32); // Down key delay (700); irsend.sendNEC (0x57E3CC33, 32); // Down key delay (700); irsend.sendNEC (0x57E3B44B, 32); // Atraso da tecla direita (700); irsend.sendNEC (0x57E3B44B, 32); // Atraso da tecla direita (900); irsend.sendNEC (0x57E38679, 32); // Botão Opções Serial.println ("Sleep Timer"); atraso (500); } if (digitalRead (d) ==HIGH) {irsend.sendNEC (0x57E34AB5, 32); // Netflix Code Serial.println ("Greg's Netflix"); atraso (500); }} 
IR_REMOTE_read.ino C / C ++
Use este código em seu Arduino para ler os acessos do Clicker vindos de seu remoto para o receptor de IV.
 //2017.06.22#include  #include  / * COMO CONECTAR A TELA LCD PINO DA ESQUERDA PARA A DIREITA COM PINOS NO LADO SUPERIOR * * GND - VCC - POT MEIO - 12 - GND - 11 - NENHUMA - NENHUMA - NENHUMA - NENHUMA - 5 - 4 - 9 - 2 - VCC - GND * * POT DEVE TER 5V E GND SOBRE ELE E PODE RODAR O BOTÃO PARA ALTERAR O CONTRASTE LCD * / LiquidCrystal lcd (12, 11, 5, 4, 9, 2); // 9 em vez de 3 (NECESSIDADE DE TRANSMISSOR) int receiverpin =10; IRrecv irrecv (receiverpin); decode_results results; void setup () {lcd.begin (16, 2); pinMode (receiverpin, INPUT); Serial.begin (9600); irrecv.enableIRIn ();} void loop () {if (irrecv.decode (&resultados)) {Serial.println (resultados.valor, HEX); irrecv.resume (); lcd.clear (); lcd.print (resultados.valor, HEX); atraso (150); }} 

Esquemas

Este é o Esquema Final Conectando o Arduino ao NodeMCU (Módulo Wi-Fi)

Processo de manufatura

  1. Pílula anticoncepcional
  2. Movendo seu sistema de controle industrial para sem fio
  3. Razões para usar compostos termofixos em seu produto
  4. Reparar ou substituir o controle da tela sensível ao toque danificado?
  5. Habilite o controle Alexa para o seu ventilador de teto
  6. Assumindo o controle de seus próprios reparos de veículos
  7. Protegendo seu sistema de controle industrial
  8. Como usar sua máquina de perfuração para perfurar metal
  9. 8 etapas para depurar seu sistema de controle de processos
  10. Use PLC ao lado de WakeOnLan (WoL) Seu PC