Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Utilisez Alexa pour contrôler votre téléviseur !

Composants et fournitures

Arduino UNO
Ceci est utilisé avec la diode de transmission IR pour envoyer les commandes TV à la télévision
× 1
Panneau de déploiement NodeMCU ESP8266
Ce composant est le module Wi-Fi qui se connecte à l'application Amazon Alexa en tant qu'appareil "WEMO" . Envoie une impulsion pour chaque appareil à Arduino UNO
× 1
Émetteur/Récepteur IR
Ce composant est utilisé en série avec une résistance de 100 ohms pour envoyer des commandes IR au téléviseur
× 1

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Arduino IDE

À propos de ce projet

Utiliser Alexa pour contrôler votre téléviseur !

Introduction : Ce projet explique donc comment utiliser votre Alexa pour envoyer des commandes et contrôler votre téléviseur en lui parlant. Tout ce que votre télécommande TV peut faire, votre Alexa peut le faire. Ce que nous allons faire, c'est enregistrer les signaux infrarouges à distance et utiliser Alexa pour renvoyer ces mêmes signaux lorsqu'ils sont commandés par la voix. Voici les étapes à suivre pour y parvenir ou regardez cette vidéo YouTube :

Étape 1 : Télécharger les bibliothèques prérequises

Téléchargez les bibliothèques suivantes et placez-les dans vos bibliothèques IDE Arduino :

  • ESPAsyncTCP - https://github.com/me-no-dev/ESPAsyncTCP
  • ESPAsyncUDP - https://github.com/me-no-dev/ESPAsyncUDP
  • FauxMoESP - https://bitbucket.org/xoseperez/fauxmoesp> Téléchargements> Dépôt de téléchargement

Étape 2 :Programmation de NodeMCU (module Wi-Fi)

Ouvrez le croquis ESP8266-Alexa.ino et téléchargez-le sur votre NodeMCU (téléchargez les informations de la carte à partir de Board Manager dans Arduino IDE). Tout ce que vous devez changer, ce sont les informations d'identification Wi-Fi et les noms des appareils.

Vous pouvez personnaliser les noms des appareils dans le sketch ESP8266-Alexa.ino et les signaux qui sortent dans le sketch IR-Alexa-Send.ino :

Étape 3 :Lecture des signaux infrarouges de la télécommande TV 

Téléchargez le croquis IR_REMOTE_read.ino sur votre Arduino pour lire les coups de signal à distance et enregistrez vos signaux IR reçus pour référence plus tard, comme indiqué dans ce didacticiel :

Étape 4:Programmation d'Arduino pour envoyer des signaux TV IR via Alexa

Ensuite, ouvrez IR-Alexa-Send.ino dans l'IDE Arduino et téléchargez-le sur votre Arduino Uno (assurez-vous de modifier les informations de la carte de téléchargement sur UNO).

Branchez l'alimentation aux deux modules et reliez les fils entre eux. Assurez-vous que l'émetteur IR est câblé à la borne 3 de UNO. Voir le schéma ci-joint pour plus d'informations :

Étape 5 :Tester le projet avec Alexa

Allez maintenant dans votre application Amazon Alexa sur votre appareil mobile ou votre PC, accédez à votre Smart Home et appuyez sur "Ajouter des appareils" pour trouver chacune des commandes que vous avez définies dans le croquis ESP8266-Alexa.ino.

Une fois qu'ils sont trouvés, vous pouvez le tester à l'aide de l'une des structures de commandes suivantes :

  • "Alexa, activez NOM DE L'APPAREIL "
  • "Alexa, activez NOM DE L'APPAREIL  sur"
  • "Alexa, tourne le NOM DE L'APPAREIL  sur"
  • "Alexa, active le NOM DE L'APPAREIL "

Code

  • ESP8266-Alexa.ino
  • IR-Alexa-Send.ino
  • IR_REMOTE_read.ino
ESP8266-Alexa.inoC/C++
Ceci doit être écrit sur la puce NodeMCU pour émuler un périphérique "WEMO" via Arduino IDE
#include #include #include "fauxmoESP.h"// ----- -------------------------------------------------- ----------------------// Identifiants Wifi// ---------------------- -------------------------------------------------- -----#define WIFI_SSID "linksys"#define WIFI_PASS ""#define SERIAL_BAUDRATE 115200fauxmoESP fauxmo;// -------------------------- -------------------------------------------------- -// Wifi// -------------------------------------------- ---------------------------------void wifiSetup() { // Réglez le module WIFI sur le mode STA WiFi.mode( WIFI_STA); // Connecter Serial.printf("[WIFI] Connexion à %s ", WIFI_SSID); WiFi.begin(WIFI_SSID, WIFI_PASS); // Attendez pendant (WiFi.status() !=WL_CONNECTED) { Serial.print("."); retard (100); } Serial.println(); // Lié! Serial.printf("[WIFI] Mode STATION, SSID :%s, adresse IP :%s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str()); }// -------------------------------------------------------------- -------------------------------// Initialiser les broches// -------------- -------------------------------------------------- -------------#define RELAY_PIN1 13#define RELAY_PIN2 2#define RELAY_PIN3 14#define RELAY_PIN4 15void setup() { //initialise les broches du relais pinMode(RELAY_PIN1, OUTPUT); digitalWrite(RELAY_PIN1, LOW); pinMode(RELAY_PIN2, SORTIE); digitalWrite(RELAY_PIN2, LOW); pinMode(RELAY_PIN3, SORTIE); digitalWrite(RELAY_PIN3, LOW); pinMode(RELAY_PIN4, SORTIE); digitalWrite(RELAY_PIN4, LOW); // Initialiser le port série et nettoyer les ordures Serial.begin(SERIAL_BAUDRATE); Serial.println(); Serial.println(); Serial.println("Esquisse de démonstration FauxMo"); Serial.println ("Après la connexion, demandez à Alexa/Echo d'activer ou de désactiver les pixels ou d'activer ou de désactiver le relais" ); //Wifi wifiSetup();// ------------------------------------------ ------------------------------------// Noms des appareils Alexa// ------- -------------------------------------------------- -------------------- // Fauxmo fauxmo.addDevice("TV"); fauxmo.addDevice("GregsNetflix"); fauxmo.addDevice("Sommeil"); fauxmo.addDevice("Bureau"); fauxmo.onMessage(rappel);}// ---------------------------------------- -------------------------------------// Appels d'opération Alexa// ------ -------------------------------------------------- --------------------- void callback(uint8_t device_id, const char * device_name, bool state) { Serial.printf("[MAIN] %s state :%s \n", nom_périphérique, état ? "ON" :"OFF"); if ( (strcmp(device_name, "TV") ==0) ) { // ajuste le relais immédiatement ! if (état) { digitalWrite(RELAY_PIN1, HIGH); } else { digitalWrite(RELAY_PIN1, HIGH); } } if ( (strcmp(device_name, "GregsNetflix") ==0) ) { // ajuste le relais immédiatement ! if (état) { digitalWrite(RELAY_PIN2, HIGH); } else { digitalWrite(RELAY_PIN2, LOW); } } if ( (strcmp(device_name, "Sleep") ==0) ) { // ajuste le relais immédiatement ! if (état) { digitalWrite(RELAY_PIN3, HIGH); } else { digitalWrite(RELAY_PIN3, LOW); } } if ( (strcmp(device_name, "Office") ==0) ) { // ajuste le relais immédiatement ! if (état) { digitalWrite(RELAY_PIN4, HIGH); } else { digitalWrite(RELAY_PIN4, LOW); } }}boucle vide() { fauxmo.handle(); retard (500); digitalWrite(RELAY_PIN1, LOW); digitalWrite(RELAY_PIN2, LOW); digitalWrite(RELAY_PIN3, LOW); digitalWrite(RELAY_PIN4, LOW);}
IR-Alexa-Send.inoC/C++
Ceci est téléchargé sur l'Arduino UNO pour lire les signaux de NodeMCU et envoyer les signaux IR appropriés via la diode de transmission 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); //Power Code Serial.println("TV"); retard (500); } if (digitalRead(b) ==HIGH) { irsend.sendNEC(0x57E354AB, 32); //Entrez le délai de clé (2000); irsend.sendNEC (0x57E39867, 32); //Délai de touche haut (1000); irsend.sendNEC (0x57E39867, 32); //Délai de touche haut (1000); irsend.sendNEC (0x57E39867, 32); //Délai de touche haut (1000); irsend.sendNEC (0x57E3B44B, 32); //Délai touche droite (1000); irsend.sendNEC (0x57E354AB, 32); //Entrez le délai (2000); irsend.sendNEC (0x57E354AB, 32); //Entrez Serial.println("Le Bureau"); retard (500); } if (digitalRead(c) ==HIGH) { irsend.sendNEC(0x57E38679, 32); //Options Bouton délai(1500); irsend.sendNEC (0x57E3CC33, 32); //Délai touche bas (700); irsend.sendNEC (0x57E3CC33, 32); //Délai touche bas (700); irsend.sendNEC (0x57E3CC33, 32); //Délai touche bas (700); irsend.sendNEC (0x57E3CC33, 32); //Délai touche bas (700); irsend.sendNEC (0x57E3B44B, 32); //Délai touche droite (700); irsend.sendNEC (0x57E3B44B, 32); //Délai touche droite (900); irsend.sendNEC (0x57E38679, 32); //Bouton d'options Serial.println("Mise en veille"); retard (500); } if (digitalRead(d) ==HIGH) { irsend.sendNEC(0x57E34AB5, 32); //Netflix Code Serial.println("Greg's Netflix"); retard (500); }}
IR_REMOTE_read.inoC/C++
Utilisez ce code sur votre Arduino pour lire les clics provenant de votre télécommande vers le récepteur IR.
//2017.06.22#include #include /* COMMENT BRANCHER L'ÉCRAN LCD BROCHE DE GAUCHE À DROITE AVEC BROCHES SUR LE CTÉ SUPÉRIEUR * * GND - VCC - POT MIDDLE - 12 - GND - 11 - AUCUN - AUCUN - AUCUN - AUCUN - 5 - 4 - 9 - 2 - VCC - GND * * LE POT DOIT AVOIR 5V ET GND SUR ELLE ET PEUT TOURNER LE BOUTON POUR CHANGER LE CONTRASTE LCD */ LiquidCrystal lcd (12, 11, 5, 4, 9, 2); //9 au lieu de 3 (NEED FOR TRANSMITTER)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(&results)) { Serial.println(results.value, HEX); irrecv.resume(); lcd.clear(); lcd.print(résultats.valeur, HEX); retard (150); }}

Schémas

Ceci est le schéma final connectant l'Arduino au NodeMCU (module Wi-Fi)

Processus de fabrication

  1. pilule contraceptive
  2. Déplacement de votre système de contrôle industriel vers le sans fil
  3. Raisons d'utiliser des composites thermodurcissables dans votre produit
  4. Réparer ou remplacer votre commande à écran tactile endommagée ?
  5. Prendre le contrôle des réparations de votre propre véhicule
  6. Sécuriser votre système de contrôle industriel
  7. Comment utiliser votre perceuse pour percer le métal
  8. 8 étapes pour déboguer votre système de contrôle de processus
  9. Utilisez PLCnext pour WakeOnLan (WoL) sur votre PC