Der ESP8266 D1 Mini erfreut sich vielerlei Anwendungsmöglichkeiten. Viele davon basieren dank des integrierten WLAN auf dem HTTP-Protokoll. In diesem Artikel bekommt ihr eine kurze Anleitung für ein einfaches WLAN Relais mithilfe eines ESP8266 D1 Mini, einem Relais-Modul und dem HTTP-Protokoll. Durch die implementierte HTTP-API lässt sich das Relais am ESP8266 D1 Mini nicht nur manuell über den Browser steuern, sondern auch in beliebig vielen anderen Projekten ganz leicht einbinden.
Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:
- Preis aufsteigend
- Preis absteigend
- Reduzierte zuerst
¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.
Zum Kapitel springen Allgemeines
Dieses Tutorial basiert auf dem Tutorial ESP8266 - Ein einfacher Webserver mit mDNS. Es ist nicht notwendig dieses Tutorial zu kennen, jedoch bietet es weitere Informationen über den Webserver auf dem ESP8266. Hier geht es primär um die Implementierung des Relais und der damit verbundenen HTTP API.
API-Link | Beschreibung |
---|---|
http://makesmart-esp.local/relay_on | Schlatet das Relais an. |
http://makesmart-esp.local/relay_off | Schlatet das Relais aus. |
http://makesmart-esp.local/state | Gibt den Status als "0" oder "1" zurück. |
Die HTTP-API kann verwendet werden, um das Relais mithilfe anderer Anwendungen und Plattformen anzusteuern. Das kann zum einen ein anderer ESP8266 sein, der als Fernbedienung fungiert. Die Plattform Homebridge um das Relais in das Smarthome einzubinden. Oder auch jeder andere Dienst oder Programmiersprache, die einen HTTP Clients unterstützt dere die Anfrage ausführen kann.
Solltest du nicht wissen, wie man einen ESP8266 programmiert, kannst du dir gerne diese Schritt-für-Schritt Anleitung anschauen. Darin wird der Start mit dem ESP8266, speziell dem D1 Mini erklärt und beinhaltet alle notwendigen Informationen die zu zum Programmieren eines ESP8266 Boards brauchst.
Zum Kapitel springen Hardware
Um dieses Tutorial nachzubauen werden je nach Anforderung mindestens ein ESP8266 D1 Mini und ein Relaismodul benötigt. Natürlich eignen sich neben dem D1 Mini auch andere ESP8266 basierte Boards. Dazu werden dann noch Jumper-Kabel zur einfachen Verdrahtung benötigt und optional ein Breadboard um den ganzen Umwang zu erleichtern.
Zum Kapitel springen Verdrahtung
Die Verdrahtung ist ziemlich simple und kann dem folgenden Schaltplan entnommen werden.
ESP8266 D1 Mini | Relais-Modul |
---|---|
D8 | Signal |
G | GND |
5V | VCC |
Zum Kapitel springen Programmcode
Der Code ist so vorbereitet, dass er Plug & Play funktioniert. Die einzige Anpassung die vorgenommen werden muss, sind die Daten zum eigenen WLAN-Netzwerk:
const char* ssid = "makesmartWLAN";
const char* password = "makesmart_passwort";
Je nach verwendetem ESP8266 Board muss ggf. noch der Pin der Signalleitung des Relais angepasst werden. In diesem Fall wird Pin D8 verwendet.
// Signal-Pin des Relais: D8
int relay_pin = 15;
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
ESP8266WebServer server(80);
const char* ssid = "makesmartWLAN";
const char* password = "makesmart_passwort";
// http://makesmart-esp.local/
const char* dns_name = "makesmart-esp";
// Signal-Pin des Relais: D8
int relay_pin = 15;
void setup()
{
pinMode( relay_pin, OUTPUT );
Serial.begin(115200);
Serial.println("ESP Gestartet");
WiFi.begin(ssid, password);
Serial.print("Verbindung wird hergestellt ...");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Verbunden! IP-Adresse: ");
Serial.println(WiFi.localIP());
// Bei Android-Geräten wird der mDNS oft nicht unterstützt, dann muss auf die IP-Adresse zurückgegriffen werden
if (MDNS.begin(dns_name)) {
Serial.println("DNS gestartet, erreichbar unter: ");
Serial.println("http://" + String(dns_name) + ".local/");
}
server.onNotFound([](){
server.send(404, "text/plain", "Link wurde nicht gefunden!");
});
server.on("/", []() {
server.send(200, "text/plain", "Startseite");
});
server.on("/relay_on", []() {
server.send(200, "text/plain", "Relais wurde angeschaltet.");
relay_on();
});
server.on("/relay_off", []() {
server.send(200, "text/plain", "Relais wurde ausgeschalten.");
relay_off();
});
server.on("/state", []() {
server.send(200, "text/plain", String(digitalRead(relay_pin)));
});
server.begin();
Serial.println("Webserver gestartet.");
}
void loop() {
server.handleClient();
MDNS.update();
}
void relay_on(){
digitalWrite(relay_pin, HIGH);
}
void relay_off(){
digitalWrite(relay_pin, LOW);
}
Nach dem Kompilieren und Hochladen des Programms werden ein paar Meldungen über den seriellen Monitor ausgegeben. Diese Meldungen bestätigen, dass die Verbindung zum WLAN erfolgreich hergestellt wurde, der mDNS-Dienst aktiv ist und der Webserver gestartet wurde.
ESP Gestartet
Verbindung wird hergestellt ..........
Verbunden! IP-Adresse: 192.168.178.89
DNS gestartet, erreichbar unter:
http://makesmart-esp.local/
Webserver gestartet.
Nun kannst du das Relais über die HTTP API steuern. Wie wärs, wenn du es direkt ausprobierst?
Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:
- Preis aufsteigend
- Preis absteigend
- Reduzierte zuerst
¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.