Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Steuern Sie Ihren Fernseher mit Alexa!

Komponenten und Verbrauchsmaterialien

Arduino UNO
Dies wird mit der IR-Sendediode verwendet, um die TV-Befehle an den Fernseher zu senden
× 1
NodeMCU ESP8266 Breakout Board
Diese Komponente ist das Wi-Fi-Modul, das sich als "WEMO"-Gerät mit der Amazon Alexa App verbindet . Sendet Impulse für jedes Gerät an Arduino UNO
× 1
IR-Sender/Empfänger
Diese Komponente wird in Reihe mit einem 100-Ohm-Widerstand verwendet, um IR-Befehle an den Fernseher zu senden
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Verwenden von Alexa zur Steuerung Ihres Fernsehers!

Einführung: In diesem Projekt wird also erläutert, wie Sie mit Alexa Befehle senden und Ihren Fernseher steuern, indem Sie mit ihm sprechen. Alles, was Ihre TV-Fernbedienung kann, kann Ihre Alexa. Was wir tun werden, ist die Remote-IR-Signale aufzuzeichnen und Alexa zu verwenden, um dieselben Signale auf Sprachbefehl erneut zu senden. Hier sind die Schritte, die Sie dafür benötigen, oder sehen Sie sich dieses YouTube-Video an:

Schritt 1:Erforderliche Bibliotheken herunterladen

Laden Sie die folgenden Bibliotheken herunter und fügen Sie sie in Ihre Arduino IDE-Bibliotheken ein:

  • ESPAsyncTCP - https://github.com/me-no-dev/ESPAsyncTCP
  • ESPAsyncUDP - https://github.com/me-no-dev/ESPAsyncUDP
  • FauxMoESP - https://bitbucket.org/xoseperez/fauxmoesp> Downloads> Repository herunterladen

Schritt 2:Programmierung von NodeMCU (Wi-Fi-Modul)

Öffnen Sie die ESP8266-Alexa.ino-Skizze und laden Sie sie auf Ihre NodeMCU hoch (laden Sie die Board-Informationen vom Board Manager in Arduino IDE herunter). Alles, was Sie ändern müssen, sind die WLAN-Anmeldeinformationen und die Gerätenamen.

Sie können die Gerätenamen in der Skizze ESP8266-Alexa.ino und die Signale, die in der Skizze IR-Alexa-Send.ino ausgegeben werden, anpassen:

Schritt 3:IR-Signale von der TV-Fernbedienung lesen 

Laden Sie die Skizze IR_REMOTE_read.ino auf Ihren Arduino hoch, um die Remote-Signaltreffer zu lesen und Ihre empfangenen IR-Signale als Referenz später aufzuzeichnen, wie in diesem Tutorial zu sehen:

Schritt 4:Programmierung von Arduino zum Senden von TV-IR-Signalen über Alexa

Öffnen Sie als Nächstes IR-Alexa-Send.ino in der Arduino IDE und laden Sie es auf Ihr Arduino Uno hoch (stellen Sie sicher, dass Sie die Upload-Board-Info in UNO ändern).

Verdrahten Sie beide Module mit Strom und verbinden Sie die Drähte dazwischen. Stellen Sie sicher, dass der IR-Sender an Klemme 3 von UNO angeschlossen ist. Weitere Informationen finden Sie im beigefügten Schaltplan:

Schritt 5:Testen des Projekts mit Alexa

Gehen Sie nun auf Ihrem Mobilgerät oder PC in Ihre Amazon Alexa-App, gehen Sie zu Ihrem Smart Home und klicken Sie auf "Geräte hinzufügen", um jeden der Befehle zu finden, die Sie in der ESP8266-Alexa.ino-Skizze festgelegt haben.

Sobald sie gefunden wurden, können Sie sie mit einer der folgenden Befehlsstrukturen testen:

  • "Alexa, schalte GERÄTENAME ein "
  • "Alexa, drehe GERÄTENAME  auf"
  • "Alexa, dreh den GERÄTENAME  auf"
  • "Alexa, schalte GERÄTENAME ein "

Code

  • ESP8266-Alexa.ino
  • IR-Alexa-Send.ino
  • IR_REMOTE_read.ino
ESP8266-Alexa.inoC/C++
Dies muss auf den NodeMCU-Chip geschrieben werden, um ein "WEMO"-Gerät über die Arduino IDE zu emulieren
#include #include #include "fauxmoESP.h"// ----- -------------------------------------------------- ----------------------// WLAN-Zugangsdaten// ---------------------- -------------------------------------------------- -----#define WIFI_SSID "linksys"#define WIFI_PASS ""#define SERIAL_BAUDRATE 115200fauxmoESP fauxmo;// -------------------------- -------------------------------------------------- -// W-lan// -------------------------------------------- ---------------------------------void wifiSetup () { // WIFI-Modul auf STA-Modus setzen WiFi.mode ( WIFI_STA); // Connect Serial.printf("[WIFI] Verbindung zu %s", WIFI_SSID); WiFi.begin(WIFI_SSID, WIFI_PASS); // Warten Sie, während (WiFi.status () ! =WL_CONNECTED) { Serial.print ( "."); Verzögerung (100); } Serial.println(); // In Verbindung gebracht! Serial.printf("[WIFI] STATION-Modus, SSID:%s, IP-Adresse:%s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str()); }// ----------------------------------------------------------- ------------------------------// Pins initialisieren// -------------- -------------------------------------------------- -------------#define RELAY_PIN1 13#define RELAY_PIN2 2#define RELAY_PIN3 14#define RELAY_PIN4 15void setup () {//Relaispins initialisieren PinMode (RELAY_PIN1, OUTPUT); digitalWrite (RELAY_PIN1, LOW); pinMode (RELAY_PIN2, AUSGANG); digitalWrite (RELAY_PIN2, LOW); pinMode (RELAY_PIN3, AUSGANG); digitalWrite (RELAY_PIN3, LOW); pinMode (RELAY_PIN4, AUSGANG); digitalWrite (RELAY_PIN4, LOW); // Serielle Schnittstelle initialisieren und Müll bereinigen Serial.begin (SERIAL_BAUDRATE); Serial.println(); Serial.println(); Serial.println ("FauxMo-Demoskizze"); Serial.println ("Nach der Verbindung bitten Sie Alexa/Echo, "Pixel ein- oder auszuschalten" oder "Relais ein- oder auszuschalten"); // Wifi wifiSetup(); // ------------------------------------------ ----------------------------------// Alexa-Gerätenamen// ------- -------------------------------------------------- -------------------- // Fauxmo fauxmo.addDevice("TV"); fauxmo.addDevice("GregsNetflix"); fauxmo.addDevice("Schlaf"); fauxmo.addDevice("Büro"); fauxmo.onMessage(callback);}// ---------------------------------------- --------------------------------------// Alexa Operation Calls// ------ -------------------------------------------------- ---------------------void callback(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) ) { // Relais sofort einstellen! if (Zustand) { digitalWrite (RELAY_PIN1, HIGH); aufrechtzuerhalten. Sonst { DigitalWrite (RELAY_PIN1, HIGH); } } if ( (strcmp(device_name, "GregsNetflix") ==0) ) { // Relay sofort einstellen! if (Zustand) { digitalWrite (RELAY_PIN2, HIGH); aufrechtzuerhalten. Sonst { DigitalWrite (RELAY_PIN2, LOW); } } if ( (strcmp(device_name, "Sleep") ==0) ) { // Relay sofort einstellen! if (Zustand) { digitalWrite (RELAY_PIN3, HIGH); aufrechtzuerhalten. Sonst { DigitalWrite (RELAY_PIN3, LOW); } } if ( (strcmp(device_name, "Office") ==0) ) { // Relay sofort einstellen! if (Zustand) { digitalWrite (RELAY_PIN4, HIGH); aufrechtzuerhalten. Sonst { DigitalWrite (RELAY_PIN4, LOW); }}}void loop () {fauxmo.handle (); Verzögerung (500); digitalWrite (RELAY_PIN1, LOW); digitalWrite (RELAY_PIN2, LOW); digitalWrite (RELAY_PIN3, LOW); digitalWrite(RELAY_PIN4, LOW);}
IR-Alexa-Send.inoC/C++
Dies wird auf das Arduino UNO hochgeladen, um Signale von NodeMCU zu lesen und die entsprechenden IR-Signale über die IR-Sendediode auszusenden
#include IRsend irsend;#define a 4#define b 5#define c 6# definiere d 7void setup () { Serial.begin (9600); pinMode (a, EINGANG); pinMode (b, EINGANG); pinMode (c, EINGANG); pinMode (d, INPUT);}void loop () { if (digitalRead (a) ==HIGH) { irsend.sendNEC (0x57E3E817, 32); // Stromcode Serial.println ( "TV"); Verzögerung (500); aufrechtzuerhalten. Wenn (digitalRead (b) ==HIGH) {irsend.sendNEC (0x57E354AB, 32); //Enter Key delay (2000); irsend.sendNEC(0x57E39867, 32); // Aufwärts-Tastenverzögerung (1000); irsend.sendNEC(0x57E39867, 32); // Aufwärts-Tastenverzögerung (1000); irsend.sendNEC(0x57E39867, 32); // Aufwärts-Tastenverzögerung (1000); irsend.sendNEC(0x57E3B44B, 32); // Rechte Taste Verzögerung (1000); irsend.sendNEC(0x57E354AB, 32); // Verzögerung eingeben (2000); irsend.sendNEC(0x57E354AB, 32); // Serial.println eingeben ("Das Büro"); Verzögerung (500); aufrechtzuerhalten. Wenn (digitalRead (c) ==HIGH) {irsend.sendNEC (0x57E38679, 32); // Optionsschaltflächenverzögerung (1500); irsend.sendNEC(0x57E3CC33, 32); // Verzögerung der Abwärtstaste (700); irsend.sendNEC(0x57E3CC33, 32); // Verzögerung der Abwärtstaste (700); irsend.sendNEC(0x57E3CC33, 32); // Verzögerung der Abwärtstaste (700); irsend.sendNEC(0x57E3CC33, 32); // Verzögerung der Abwärtstaste (700); irsend.sendNEC(0x57E3B44B, 32); // Rechte Taste Verzögerung (700); irsend.sendNEC(0x57E3B44B, 32); // Rechte Taste Verzögerung (900); irsend.sendNEC(0x57E38679, 32); // Optionstaste Serial.println ( "Sleep Timer"); Verzögerung (500); aufrechtzuerhalten. Wenn (digitalRead (d) ==HIGH) {irsend.sendNEC (0x57E34AB5, 32); // Netflix-Code Serial.println ("Gregs Netflix"); Verzögerung (500); }}
IR_REMOTE_read.inoC/C++
Verwenden Sie diesen Code auf Ihrem Arduino, um die Clicker-Hits zu lesen, die von Ihrer Fernbedienung zum IR-Empfänger kommen PIN VON LINKS NACH RECHTS MIT PINS AUF OBERSEITE * * GND - VCC - POT MIDDLE - 12 - GND - 11 - KEINE - KEINE - KEINE - KEINE - 5 - 4 - 9 - 2 - VCC - GND * * POT MUSS 5V HABEN UND GND DARAUF UND KANN DEN KNOPF DREHEN, UM LCD-KONTRAST ZU ÄNDERN */ LiquidCrystal lcd(12, 11, 5, 4, 9, 2); // 9 statt 3 (NEED FOR SENMITTER)int receiverpin =10;IRrecv irrecv(receiverpin);decode_results Ergebnisse;void setup() {lcd.begin (16, 2); pinMode (Empfängerpin, INPUT); Serial.begin (9600); irrecv.enableIRIn();}void loop() { if (irrecv.decode (&results)) { Serial.println (results.value, HEX); irrecv.resume(); lcd.clear(); lcd.print (results.value, HEX); Verzögerung (150); }}

Schaltpläne

Dies ist der endgültige Schaltplan zum Verbinden des Arduino mit der NodeMCU (Wi-Fi-Modul)

Herstellungsprozess

  1. Antibabypille
  2. Umstellen Ihres industriellen Steuerungssystems auf Wireless
  3. Gründe für die Verwendung von Duroplast-Verbundwerkstoffen in Ihrem Produkt
  4. Reparieren oder ersetzen Sie Ihre beschädigte Touchscreen-Steuerung?
  5. Aktivieren Sie die Alexa-Steuerung für Ihren Deckenventilator
  6. Übernehmen Sie die Kontrolle über Ihre eigenen Fahrzeugreparaturen
  7. Sicherung Ihres industriellen Steuerungssystems
  8. So verwenden Sie Ihre Bohrmaschine zum Bohren von Metall
  9. 8 Schritte zum Debuggen Ihres Prozessleitsystems
  10. Nutzen Sie PLCnext to WakeOnLan (WoL) Ihren PC