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.

Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:

¹ 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 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?

Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:

¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.


cooper.bin Avatar

cooper.bin

Unterstütze mich und meine Arbeit, so kann ich weiter meiner Leidenschaft nachgehen. Ich lege viel Wert auf Qualität und stecke daher sehr viel Zeit in meine Beiträge. Wenn sie dir gefallen kannst du dir gerne auch meine anderen Artikel anschauen.

Mit PayPal unterstützen

Ich bin auf dem makesmart Discord-Server aktiv. Dort bin ich auch relativ gut erreichbar.

Teile diesen Beitrag



Diese Artikel könnten dich auch interessieren

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.

cooper.bin am 17.02.2024

ESP8266 Webserver mit echten HTML Dateien

Mit dem ESPAsyncWebserver kann man einen dateibasierten Webserver auf dem ESP8266 realisieren. Dieser kann HTML, CSS, Javascript und jede andere Art von Datei ausliefern.

cooper.bin am 28.04.2024

ESP8266 Webserver - HTTP-Authentifizierung mit Benutzername und Passwort

In diesem Tutorial zeigen wir dir, wie du einen ESP8266 Webserver mit HTTP-Authentifizierung absicherst. Der Zugriff auf den Webserver erfolgt dabei über Benutzername und Passwort.

cooper.bin am 25.08.2024

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.

cooper.bin am 13.02.2024

ESP8266 Websocket Server für Echtzeitkommunikation

Mit einem Websocket-Server auf dem ESP8266 kann man Daten in Echtzeit austauschen. Im Gegensatz zu HTTP kann der Server den Client über neue Events benachrichtigen, ohne vorher angefragt zu werden.

cooper.bin am 02.05.2024