- Hardware-Anforderungen
- Projektablauf für sprachgesteuerte Alexa-LED
- Einrichten eines Adafruit-Kontos für die Kommunikation
- Verknüpfen Sie Alexa mit IFafTT mit Adafruit IO
- Erläuterung des ESP12-Codes
- Arbeiten:
In früheren Tutorials haben wir gesehen, wie wir einen Amazon Echo-Lautsprecher bauen und wie wir dann jeden Raspberry Pi GPIO mit Alexa Voice steuern können. Jetzt führen wir ein IoT-Projekt durch, um Haushaltsgeräte von überall auf der Welt mit AlexaPi und ESP-12E (oder einer beliebigen ESP- Karte) zu steuern.
Hardware-Anforderungen
- Raspberry Pi mit AVS installiert
- USB 2.0 Mikrofon / Webcam
- ESP-12E
- Relaismodul
- LED / AC-Lampe
Sie sollten Ihren Raspberry Pi mit dem darin installierten Alexa-Sprachdienst mit einem ordnungsgemäß konfigurierten Amazon-Entwicklerkonto bereithalten. Gehen Sie also das folgende Tutorial durch, um die Alexa-Dienste vorzubereiten.
- Erstellen Sie Ihr eigenes Amazon Echo mit einem Raspberry Pi
Projektablauf für sprachgesteuerte Alexa-LED
Wir werden diesem Flussdiagramm für dieses IoT-gesteuerte LED-Projekt folgen:
Der Prozess ist also ungefähr so. Zunächst wird Raspberry Pi über das USB- Mikrofon eingegeben. Diese Aufzeichnung wird nun an die Sprachdienste von Alexa gesendet. Nach der Spracherkennung hat AVS die Daten an IFTTT gesendet und die Bedingung in IFTTT ausgelöst. Gemäß dem Rezept sendet IFTTT den Befehl an Adafruit IO, den MQTT-Broker, um eine Aktion auszuführen. Dann empfängt ESP 12e die Daten von Adafruit IO über das MQTT-Protokoll und die LED leuchtet gemäß dem Befehl ein / aus.
Hier haben wir eine USB WebCam für Mikrofon verwendet. Wir haben den Alexa Voice-Dienst bereits zum Einschalten einer Glühbirne verwendet, er kann jedoch nur lokal angeschlossene Geräte verarbeiten.
Da wir davon ausgehen, dass Sie bereits Raspberry Pi mit installierten Alexa Voice-Diensten installiert haben, bleiben wir bei den folgenden zwei Schritten, die wir nacheinander erläutern werden:
- Einrichten eines Adafruit-Kontos für die Kommunikation
- Verknüpfen Sie Alexa mit IFafTT mit Adafruit IO
- Laden Sie den Code in ESP12 hoch
Einrichten eines Adafruit-Kontos für die Kommunikation
Zuerst werden wir einen Feed in Adafruit IO erstellen. Feed speichert die von IFTTT gesendeten Daten. Gehen Sie folgendermaßen vor, um einen Feed zu erstellen:
Schritt 1: - Melden Sie sich mit Ihren Anmeldeinformationen bei Adafruit IO an oder melden Sie sich an, wenn Sie kein Konto haben.
Schritt 2: - Klicken Sie auf Mein Konto -> Dashboard
Schritt 3: - Klicken Sie auf Aktionen und erstellen Sie ein neues Dashboard .
Schritt 4: - Geben Sie Ihrem Feed Namen und Beschreibung und klicken Sie auf Erstellen .
Schritt 5: - Klicken Sie auf die Schaltfläche Schlüssel und notieren Sie sich die AIO-Schlüssel. Wir werden diesen Schlüssel in unserem Code verwenden.
Schritt 6: - Klicken Sie auf die Schaltfläche '+', um einen neuen Block zu erstellen, und klicken Sie auf die Schaltfläche Umschalten.
Schritt 7: - Geben Sie nun den Namen des Feeds ein und klicken Sie auf Erstellen . Wählen Sie dann den Feed aus und klicken Sie auf Weiter.
Schritt 8: - Schreiben Sie in den Blockeinstellungen '1' in das Textfeld Schaltfläche EIN und '0' in das Textfeld Schaltfläche AUS .
Schritt 9: - Ihr Feed wurde erfolgreich erstellt.
Verknüpfen Sie Alexa mit IFafTT mit Adafruit IO
Befolgen Sie diese Schritte, um ein Applet / Rezept in IFTTT zu erstellen:
Schritt 1: - Melden Sie sich mit Ihren Anmeldeinformationen bei IFTTT an oder melden Sie sich an, wenn Sie kein Konto haben.
Schritt 2: - Klicken Sie in Meine Applets auf Neues Applet
Schritt 3: - Klicken Sie auf + dies
Schritt 4: - Durchsuchen Sie Amazon Alexa und klicken Sie darauf. Melden Sie sich mit Ihren Amazon-Entwicklerkontodaten an.
Schritt 5: - Wählen Sie den Auslöser, sagen Sie eine bestimmte Phrase
Schritt 6: - Geben Sie als Ausdruck "Licht einschalten " an und klicken Sie auf " Trigger erstellen".
Schritt 7: - Klicken Sie auf + das
Schritt 8: - Suchen Sie nach Adafruit und klicken Sie darauf.
Schritt 9: - Melden Sie sich mit Ihren Anmeldeinformationen bei Adafruit an. Klicken Sie auf Daten an Adafruit senden .
Wählen Sie den Feed-Namen aus, den Sie gerade in Adafruit IO erstellt haben. Geben Sie nun '1' in den zu speichernden Daten ein. Dies bedeutet, dass die LED leuchtet. Klicken Sie auf Aktion erstellen .
Schritt 10: - Befolgen Sie die gleichen Schritte, um Applets zum Ausschalten der LED zu erstellen . Geben Sie einfach '0' in das Feld Daten zum Speichern ein. Alle Schritte bleiben gleich.
Sie haben die Hälfte Ihrer Arbeit erledigt. Jetzt ist es Zeit, Ihren ESP-12E zu programmieren.
Erläuterung des ESP12-Codes
Wir werden ESP12 mit Arduino IDE programmieren. Der vollständige Code wird am Ende dieses Tutorials angegeben.
Zunächst benötigen wir eine Adafruit Mqtt-Bibliothek, die über diesen Link heruntergeladen werden kann. Öffnen Sie einfach die Arduino IDE. Gehen Sie zu Beispielen -> adafruit mqtt library -> mqtt_esp8266
Wir werden diesen Code gemäß unseren AIO-Schlüsseln und Wi-Fi-Anmeldeinformationen bearbeiten.
Zunächst haben wir alle Bibliotheken für ESP8266WIFI und Adafruit MQTT aufgenommen .
#einschließen
Wir haben die SSID und das Passwort für Ihr Wi-Fi definiert, von dem aus Sie Ihr ESP-12e verbinden möchten.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
In diesem Abschnitt werden der Adafruit-Server und der Server-Port definiert, die als " io.adafruit.com " bzw. " 1883 " festgelegt sind.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Ersetzen Sie die folgenden Felder durch Ihren Benutzernamen und Ihre AIO-Schlüssel, die Sie beim Erstellen des Feeds von der Adafruit-Website kopiert haben.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
Erstellen Sie dann eine ESP8266 WiFiClient-Klasse, um eine Verbindung zum MQTT-Server herzustellen.
WiFiClient-Client;
Richten Sie die MQTT-Clientklasse ein, indem Sie den WiFi-Client und den MQTT-Server sowie die Anmeldedaten übergeben.
Adafruit_MQTT_Client mqtt (& client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Richten Sie einen Feed mit dem Namen "light" ein, um Änderungen zu abonnieren.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
In der Setup- Funktion deklarieren wir die PIN von ESP-12e, auf der Sie eine Ausgabe erhalten möchten. Ich benutze D0 Pin als Ausgang. Dann verbinden wir ESP-12e mit dem Wi-Fi-Zugangspunkt.
void setup () { Serial.begin (115200); Verzögerung (10); PinMode (D0, OUTPUT); Serial.println (F ("Adafruit MQTT-Demo")); // Verbindung zum WiFi-Zugangspunkt herstellen. Serial.println (); Serial.println (); Serial.print ("Herstellen einer Verbindung zu"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); while (WiFi.status ()! = WL_CONNECTED) { …. …. …
Richten Sie das MQTT-Abonnement für Light Feed ein.
mqtt.subscribe (& light); }}
In der Schleifenfunktion stellen wir mithilfe von MQTT_connect () sicher, dass die Verbindung zum MQTT-Server besteht. Funktion.
void loop () { MQTT_connect ();
Jetzt abonnieren wir unseren 'leichten' Feed und holen die Zeichenfolge von adafruit IO und konvertieren diese Zeichenfolge mit atoi () in eine Zahl . Funktioniere und schreibe diese Nummer mit digitalWrite () in PIND0 ; Funktion.
Adafruit_MQTT_Subscribe * -Abonnement; while ((Abonnement = mqtt.readSubscription (5000))) { if (Abonnement == & light) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, num); }}
Arbeiten:
Verbinden Sie Ihren ESP-12E mit dem Laptop und laden Sie den folgenden Code hoch (vergessen Sie nicht, Ihre Anmeldeinformationen im Code zu bearbeiten).
Schließen Sie eine LED oder ein Relais an Pin D0 an. Stellen Sie jetzt sicher, dass Ihr Alexa-Dienst auf Ihrem RPi ausgeführt wird.
Um einen Befehl zu erteilen, müssen Sie den Alexa-Dienst aktivieren, indem Sie jedes Mal, wenn Sie einen Befehl senden möchten, „Alexa“ anrufen. Sie hören einen Piepton. Wenn Sie den Piepton hören, sagen Sie „ Alexa Trigger Schalten Sie das Licht ein. Sie können sehen, dass das Licht innerhalb eines Augenblicks aufleuchtet. Und wenn Sie dann „ Alexa Trigger Schalten Sie das Licht aus “ sagen, sollte sich das Licht ausschalten .
Das ist es…. Sie können dem obigen Code weitere Appliances hinzufügen, indem Sie die GPIO-Pins von ESP-12E hinzufügen und verschiedene Applets mit unterschiedlichen Phrasen in IFTTT erstellen.
Überprüfen Sie den vollständigen Code und das Demonstrationsvideo unten. Überprüfen Sie auch alle unsere Hausautomationsprojekte hier