ESP8266 D1 Mini WLAN-Relais mit HTTP API

von cooper.bin
veröffentlicht am 20.02.2024 aktualisiert am 20.02.2024

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.

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 D8 Verdrahtung ><

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?

Die Themen server und arduino-ide gibt es auch auf dem makesmart Discord-Server! Trete bei, um dich auszutauschen.

mehr erfahren

Teile diesen Beitrag



Diese Artikel könnten dich auch interessieren

ESP8266 - Ein einfacher Webserver mit mDNS

Während Webserver wie Apache2 oder NGNIX auf Rechnern laufen, kann man auch auf einem ESP8266 einen Webserver verwenden. In diesem Tutorial werden wir ein Grundgerüst implementieren.

Titelbild ersetzen Bearbeiten

cooper.bin am 13.02.2024

ESP8266 Webserver: GET-Variablen auslesen

GET-Parameter sind Variablen, die über die URL übergeben werden. Diese Variablen können auf einem ESP8266 ausgelesen werden, um bestimmte Aktionen in der Software auszulösen.

Bearbeiten

cooper.bin am 17.02.2024

ESP8266 GET-Request für HTTP und HTTPS

In diesem Tutorial erfährst du, wie du mit einem ESP8266 HTTP- und HTTPS-GET-Anfragen an Webserver senden kannst, um Daten abzurufen.

Titelbild ersetzen Bearbeiten

cooper.bin am 12.04.2024

ESP32-Cam programmieren - Die Einrichtung als Livestream-Server

Mit einer ESP32-Cam lässt sich in wenigen Schritten eine Livestream-Kamera realisieren. Die perfekte Low-Budget Überwachungskamera für dein Smarthome?

Titelbild ersetzen Bearbeiten

cooper.bin am 27.02.2024

Der DS18B20 Temperatursensor am ESP8266 D1 Mini - Einfache Temperaturmessung

Lerne, wie du mit der Arduino IDE, dem ESP8266 und einem DS18B20 Temperatursensor einfache und schnelle Temperaturmessungen durchführen kannst.

Titelbild ersetzen Bearbeiten

cooper.bin am 05.03.2024