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 D1 Mini programmieren - Der Start mit der Arduino IDE

Erfahre, wie du den ESP8266 D1 Mini mit der Arduino IDE programmierst. Dank den kostenlosen Entwicklungswerkzeugen und der microUSB-Buchse ist das für jeden ein Kinderspiel.

cooper.bin am 10.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.

cooper.bin am 05.03.2024

HC-SR04 und JSN-SR04T - Entfernungen messen mit Ultraschallsensoren am ESP8266

Lerne in diesem Tutorial, wie die Ultraschallsensoren HC-SR04 und JSN-SR04T mit ESP8266 D1 Mini für Distanzmessungen eingesetzt werden, die Grundlagen, Anwendungen und mehr.

cooper.bin am 09.03.2024

Der DHT22 am ESP8266 - Wie man die Temperatur und Luftfeuchtigkeit misst

In diesem Tutorial lernst du, wie du mit einem DHT22 und einem ESP8266 D1 Mini die Luftfeuchtigkeit und die Temperatur einfach messen kannst.

cooper.bin am 12.03.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