
ESP8266 Sprachsteuerung einrichten
11.05.2018
Mit einem NodeMCU ESP8266 lassen sich die verschiedensten Geräte ziemlich günstig smart machen. So können zum Beispiel mit einem Relais ganz einfach Lichter per Internet gesteuert werden. In dieser NodeMCU Anleitung zeige ich dir, wie du die Sprachsteuerung deines ESP8266 mit der App AIVC einrichten kannst. Du brauchst dazu nur einen ESP8266 und ein Gerät dass du steuern möchtest. Ich mache das in diesem Beispiel mit einem 2-Kanal Relais. Es kann jedoch auch ein Relais mit 1, 4 oder 8 Kanälen verwendet werden. Ohne viel Aufwand lassen sich diese smarten Geräte aber auch per Sprache steuern. Dazu wird lediglich die kostenlose App AIVC benötigt. Die PRO-Version der App enthält keine Werbung und wird mittlerweile sogar kostenlos auf der Website der Entwickler zum Download angeboten. Wenn du in AIVC mehr als 10 eigene Befehle definieren, die Spracherkennung per Hotword (so wie "Alexa" oder "Ok Google") nutzen oder Termine und Notizen verwalten möchtest, musst du zur mittlerweile kostenlosen Premium-Version von AIVC greifen, da diese Funktionen in der Free-Version fehlen. Im Play Store herunterladenDen ESP8266 programmieren
Bevor die Sprachsteuerung eingerichtet werden kann, muss der ESP8266 programmiert werden. Das kannst du mit der Arduino IDE machen. Wie genau das funktioniert, habe ich bereits im NodeMCU ESP8266 Einführungstutorial erklärt. In diesem Beispiel kann dann ein Relais mit 2 Kanälen gesteuert werden. Füge einfach den folgenden Code in die Arduino IDE ein, setze in den Zeilen 3 und 4 den Namen und das Passwort deines WLAN-Netzwerks ein und flashe das Programm auf deinen ESP8266.
#include <ESP8266WiFi.h>
const char* SSID = "Netzwerkname";
const char* PSK = "Netzwerkschlüssel";
WiFiServer server(80);
const int RELAIS1_PIN = 5;
const int RELAIS2_PIN = 4;
void setup() {
WiFi.mode(WIFI_STA);
Serial.begin (9600);
pinMode(RELAIS1_PIN, OUTPUT);
digitalWrite(RELAIS1_PIN, 1);
pinMode(RELAIS2_PIN, OUTPUT);
digitalWrite(RELAIS2_PIN, 1);
initWiFi();
}
void loop() {
WiFiClient client = server.available();
if(!client){
return;
}
if(WiFi.status() != WL_CONNECTED){
initWiFi();
}
String request = client.readStringUntil('\r');
client.flush();
String arrayString;
if(request.indexOf("relais1-an")>=0){
digitalWrite(RELAIS1_PIN, 0);
Serial.println("1 an");
arrayString = "on";
}
else if(request.indexOf("relais1-aus")>=0){
digitalWrite(RELAIS1_PIN, 1);
Serial.println("1 aus");
arrayString = "off";
}
else if(request.indexOf("relais2-an")>=0){
digitalWrite(RELAIS2_PIN, 0);
Serial.println("2 an");
arrayString = "on";
}
else if(request.indexOf("relais2-aus")>=0){
digitalWrite(RELAIS2_PIN, 1);
Serial.println("2 aus");
arrayString = "off";
}
client.println(arrayString);
client.stop();
Serial.println(request);
Serial.println("HTTP/1.1 200 OK");
Serial.println("Content-type: text/html");
Serial.print("Content-Length: ");
Serial.println(arrayString.length());
Serial.println();
Serial.println(arrayString);
}
void initWiFi(){
WiFi.begin(SSID, PSK);
while(WiFi.status() != WL_CONNECTED){
delay(500);
}
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}
Dieser Code verbindet den ESP8266 mit deinem WLAN-Netzwerk und startet einen Webserver, der auf HTTP-Anfragen reagiert. Die möglichen Parameter sind dabei "relais1-an", "relais1-aus", "relais2-an" und "relais2-aus" zum Steuern des jeweiligen Kanals. Außerdem werden alle Befehle auf dem seriellen Monitor ausgegeben.
Die Schaltung des ESP8266
Die Schaltung des ESP8266 ist ziemlich simpel gehalten. IN1 und IN2 am Relais-Board wird mit D1 bzw. D2 des ESP8266 verbunden. Zur Stromversorgung wird das Relais bei VCC an einen 3,3 Volt Pin des ESP8266 angeschlossen. GND wird mit GND verbunden. Die Geräte, die du mit dem Relais schalten möchtest, schließt du ganz normal an den NO1 und COM1 bzw. NO2 und COM2 Anschluss an.ESP8266 Sprachsteuerung einrichten
Um die Sprachsteuerung verwenden zu können, muss als letzte nur noch AIVC konfiguriert werden. Dazu öffnest du die App, klickst unten rechts auf das Zahnrad und auf Manager. Dort wählst du nun den Punkt Befehle verwalten. Hier muss ein neues Profil erstellt werden. Ich habe die Profile nach den Räumen benannt, in denen die Befehle ausgeführt werden sollen. In meinem Fall heißt das Profil also "Schlafzimmer". Zuerst wird aber noch eine Variable erstellt, die die Werte "an" und "aus" annehmen kann. So müssen für jeden Befehl nicht zwei Varianten mit "an" bzw. "aus" erstellt werden. Klicke dazu auf den Tab "Variablen" und erstelle eine neue Variable, wie im Screenshot zu sehen. Gib ihr den Namen "ZUSTAND", wähle "Alphanumerischer Wert" und füge die Werte "an" und "aus" hinzu. Speichere die Variable und wechsle wieder zum Tab "Profile"


Dieser Beitrag hat dir gefallen?
Dann abonniere doch unseren Newsletter!