Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Gebruik Alexa om je tv te bedienen!

Componenten en benodigdheden

Arduino UNO
Dit wordt gebruikt met de IR-zenddiode om de tv-opdrachten naar de televisie te sturen
× 1
NodeMCU ESP8266 Breakout Board
Dit onderdeel is de wifi-module die verbinding maakt met de Amazon Alexa-app als een "WEMO"-apparaat . Stuurt puls voor elk apparaat naar Arduino UNO
× 1
IR-zender/ontvanger
Dit onderdeel wordt gebruikt in serie met een 100 Ohm-weerstand om IR-opdrachten naar de tv te sturen
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE

Over dit project

Alexa gebruiken om je tv te bedienen!

Intro: Dus dit project gaat over hoe je je Alexa kunt gebruiken om opdrachten te verzenden en je tv te bedienen door ermee te praten. Alles wat je afstandsbediening van je tv kan, kan je Alexa ook. Wat we gaan doen is de externe IR-signalen opnemen en Alexa gebruiken om diezelfde signalen opnieuw te verzenden wanneer spraakgestuurd. Hier zijn de stappen die je nodig hebt om dit mogelijk te maken of om deze YouTube-video te bekijken:

Stap 1:Download de vereiste bibliotheken

Download de volgende bibliotheken en plaats ze in uw Arduino IDE-bibliotheken:

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

Stap 2:Programmeren van NodeMCU (Wi-Fi-module)

Open de ESP8266-Alexa.ino-schets en upload deze naar uw NodeMCU (download de bordinfo van Board Manager in Arduino IDE). Het enige dat u hoeft te wijzigen, zijn de Wi-Fi-referenties en de apparaatnamen.

U kunt de apparaatnamen aanpassen in de ESP8266-Alexa.ino-schets en de signalen die uitgaan in de IR-Alexa-Send.ino-schets:

Stap 3:IR-signalen van de afstandsbediening van de tv lezen 

Upload de IR_REMOTE_read.ino-schets naar uw Arduino om de treffers van het externe signaal te lezen en uw IR-signalen op te nemen die later ter referentie worden ontvangen, zoals te zien is in deze zelfstudie:

Stap 4:Arduino programmeren om tv-IR-signalen te verzenden via Alexa

Open vervolgens IR-Alexa-Send.ino in de Arduino IDE en upload het naar je Arduino Uno (zorg ervoor dat je de informatie van het uploadbord verandert in UNO).

Sluit de voeding naar beide modules aan en sluit de draden ertussen aan. Zorg ervoor dat de IR-zender is aangesloten op Terminal 3 van UNO. Zie bijgevoegd schema voor meer informatie:

Stap 5:Het project testen met Alexa

Ga nu naar je Amazon Alexa-app op je mobiele apparaat of pc, ga naar je Smart Home en druk op "Apparaten toevoegen" om elk van de opdrachten te vinden die je in de ESP8266-Alexa.ino-schets hebt ingesteld.

Zodra ze zijn gevonden, kunt u deze testen met een van de volgende opdrachtstructuur:

  • "Alexa, zet APPARAATNAAM aan "
  • 'Alexa, draai aan NAAM APPARAAT  aan"
  • 'Alexa, draai aan de NAAM APPARAAT  aan"
  • "Alexa, zet de APPARAATNAAM aan "

Code

  • ESP8266-Alexa.ino
  • IR-Alexa-Send.ino
  • IR_REMOTE_read.ino
ESP8266-Alexa.inoC/C++
Dit moet naar de NodeMCU-chip worden geschreven om een ​​"WEMO"-apparaat te emuleren via Arduino IDE
#include #include #include "fauxmoESP.h"// ----- -------------------------------------------------- ----------------------// Wifi-referenties// ---------------------- -------------------------------------------------- -----#define WIFI_SSID "linksys"#define WIFI_PASS ""#define SERIAL_BAUDRATE 115200fauxmoESP fauxmo;// -------------------------- -------------------------------------------------- -// Wifi// -------------------------------------------- --------------------------------- ongeldig wifiSetup() {// Stel WIFI-module in op STA-modus WiFi.mode ( WIFI_STA); // Connect Serial.printf ("[WIFI] Verbinding maken met %s ", WIFI_SSID); WiFi.begin(WIFI_SSID, WIFI_PASS); // Wacht terwijl (WiFi.status() !=WL_CONNECTED) { Serial.print("."); vertraging (100); } Serieel.println(); // Verbonden! Serial.printf("[WIFI] STATION-modus, SSID:%s, IP-adres:%s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str()); }// ----------------------------------------------- ------------------------------// Pinnen initialiseren// -------------- -------------------------------------------------- -------------#define RELAY_PIN1 13#define RELAY_PIN2 2#define RELAY_PIN3 14#define RELAY_PIN4 15void setup() {//initialiseer relaispinnen pinMode (RELAY_PIN1, OUTPUT); digitalWrite (RELAY_PIN1, LAAG); pinMode (RELAY_PIN2, UITGANG); digitalWrite (RELAY_PIN2, LAAG); pinMode (RELAY_PIN3, UITGANG); digitalWrite (RELAY_PIN3, LAAG); pinMode (RELAY_PIN4, UITGANG); digitalWrite (RELAY_PIN4, LAAG); // Init seriële poort en schoon vuilnis Serial.begin (SERIAL_BAUDRATE); Serieel.println(); Serieel.println(); Serial.println("FauxMo demo schets"); Serial.println("Vraag na verbinding Alexa/Echo om 'pixels aan' of 'uit' of 'relais aan' of 'uit'"); // Wifi wifiSetup();// ----------------------------------------- ------------------------------------// Alexa-apparaatnamen// ------- -------------------------------------------------- -------------------- // Fauxmo fauxmo.addDevice ("TV"); fauxmo.addDevice("GregsNetflix"); fauxmo.addDevice("Slaap"); fauxmo.addDevice("Office"); fauxmo.onMessage(callback);}// ---------------------------------------- -------------------------------------// Alexa Operation-oproepen// ------ -------------------------------------------------- ---------------------void callback(uint8_t device_id, const char * device_name, bool state) { Serial.printf("[MAIN] %s staat:%s \n", device_name, state ? "ON" :"OFF"); if ( (strcmp(device_name, "TV") ==0) ) { // pas het relais onmiddellijk aan! if (staat) {digitalWrite(RELAY_PIN1, HIGH); } else { digitalWrite(RELAY_PIN1, HIGH); } } if ( (strcmp(device_name, "GregsNetflix") ==0) ) { // pas het relais onmiddellijk aan! if (staat) {digitalWrite(RELAY_PIN2, HIGH); } else {digitalWrite(RELAY_PIN2, LOW); } } if ( (strcmp(device_name, "Sleep") ==0) ) { // pas het relais onmiddellijk aan! if (staat) {digitalWrite(RELAY_PIN3, HIGH); } else { digitalWrite (RELAY_PIN3, LAAG); } } if ( (strcmp(device_name, "Office") ==0) ) { // pas het relais onmiddellijk aan! if (staat) {digitalWrite(RELAY_PIN4, HIGH); } else { digitalWrite (RELAY_PIN4, LAAG); } }}void loop() { fauxmo.handle(); vertraging (500); digitalWrite (RELAY_PIN1, LAAG); digitalWrite (RELAY_PIN2, LAAG); digitalWrite (RELAY_PIN3, LAAG); digitalWrite(RELAY_PIN4, LOW);}
IR-Alexa-Send.inoC/C++
Dit wordt geüpload naar de Arduino UNO om signalen van NodeMCU te lezen en de juiste IR-signalen te verzenden via de IR-zenddiode
#include IRsend irsend;#define a 4#define b 5#define c 6# definieer d 7void setup() { Serial.begin(9600); pinMode(a, INPUT); pinMode(b, INPUT); pinMode(c, INPUT); pinMode (d, INPUT);} ongeldige lus () {if (digitalRead (a) ==HOOG) { irsend.sendNEC (0x57E3E817, 32); //Power Code Serial.println ("TV"); vertraging (500); } if (digitalRead (b) ==HOOG) { irsend.sendNEC (0x57E354AB, 32); // Voer toetsvertraging in (2000); irsend.sendNEC (0x57E39867, 32); // Omhoog toetsvertraging (1000); irsend.sendNEC (0x57E39867, 32); // Omhoog toetsvertraging (1000); irsend.sendNEC (0x57E39867, 32); // Omhoog toetsvertraging (1000); irsend.sendNEC (0x57E3B44B, 32); // Rechtertoets vertraging (1000); irsend.sendNEC (0x57E354AB, 32); // Voer vertraging in (2000); irsend.sendNEC (0x57E354AB, 32); //Voer Serial.println in ("The Office"); vertraging (500); } if (digitalRead (c) ==HOOG) { irsend.sendNEC (0x57E38679, 32); // Opties Knop vertraging (1500); irsend.sendNEC(0x57E3CC33, 32); //Down key vertraging (700); irsend.sendNEC(0x57E3CC33, 32); //Down key vertraging (700); irsend.sendNEC(0x57E3CC33, 32); //Down key vertraging (700); irsend.sendNEC(0x57E3CC33, 32); //Down key vertraging (700); irsend.sendNEC (0x57E3B44B, 32); // Rechtertoets vertraging (700); irsend.sendNEC (0x57E3B44B, 32); // Rechtertoets vertraging (900); irsend.sendNEC (0x57E38679, 32); //Opties-knop Serial.println ("Sleep Timer"); vertraging (500); } if (digitalRead (d) ==HOOG) { irsend.sendNEC (0x57E34AB5, 32); //Netflix-code Serial.println ("Greg's Netflix"); vertraging (500); }}
IR_REMOTE_read.inoC/C++
Gebruik deze code op uw Arduino om de Clicker Hits te lezen die van uw afstandsbediening naar de IR-ontvanger komen.
//2017.06.22#include #include /* HOE HET LCD-SCHERM AAN TE SLUITEN LINKS NAAR RECHTS PIN MET PINNEN AAN BOVENZIJDE * * GND - VCC - POT MIDDEN - 12 - GND - 11 - GEEN - GEEN - GEEN - GEEN - 5 - 4 - 9 - 2 - VCC - GND * * POT MOET 5V HEBBEN EN GND OP HET EN KAN DE KNOP DRAAIEN OM HET LCD-CONTRAST TE WIJZIGEN */ LiquidCrystal lcd (12, 11, 5, 4, 9, 2); //9 in plaats van 3 (NEED FOR TRANSMITTER)int receiverpin =10;IRrecv irrecv(receiverpin);decode_results results;void setup() { lcd.begin (16, 2); pinMode (ontvangerpin, INPUT); Serieel.begin(9600); irrecv.enableIRIn();}void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrev.resume(); lcd.wissen(); lcd.print(resultaten.waarde, HEX); vertraging (150); }}

Schema's

Dit is het definitieve schema De Arduino aansluiten op de NodeMCU (Wi-Fi-module)

Productieproces

  1. Birth Control Pil
  2. Uw industriële besturingssysteem naar draadloos verplaatsen
  3. Redenen om thermohardende composieten in uw product te gebruiken
  4. Uw beschadigde touchscreen-bediening repareren of vervangen?
  5. Schakel Alexa Control in op je plafondventilator
  6. Bedien uw led met Cortana
  7. Controle over uw eigen autoreparaties
  8. Uw industriële controlesysteem beveiligen
  9. Hoe u uw boormachine gebruikt om metaal te boren?
  10. 8 stappen om uw procesbesturingssysteem te debuggen
  11. Gebruik PLCnext to WakeOnLan (WoL) Uw pc