ESP8266 Relais schalten: Anleitung mit Schaltplan und Beispielcode
Mit einem ESP8266 lässt sich ein Relais mit wenigen Bauteilen über WLAN schalten. Damit eignet sich der kleine Mikrocontroller hervorragend für eigene Smart-Home-Projekte. Über das Relais können beispielsweise eine LED-Beleuchtung, ein 12-Volt-Verbraucher oder andere elektrische Geräte gesteuert werden.
In dieser Anleitung zeige ich, wie ein Relais-Modul mit einem ESP8266 verbunden wird, welcher GPIO sich dafür eignet und wie die Steuerung mit einem einfachen Beispielprogramm funktioniert.
Hinweis: Dieser Artikel enthält Affiliate-Links. Wenn du über einen mit * gekennzeichneten Link etwas kaufst, erhalte ich eine kleine Provision. Für dich ändert sich der Preis nicht. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.
Was wird für das ESP8266-Relais-Projekt benötigt?
Für einen ersten Test reicht bereits eine kleine Grundausstattung. Besonders einfach funktioniert der Aufbau mit einem NodeMCU oder einem Wemos D1 Mini. Beide Boards basieren auf dem ESP8266 und lassen sich bequem über USB programmieren.
- ESP8266 NodeMCU oder Wemos D1 Mini
- 1-Kanal-Relais-Modul
- Jumper-Kabel
- Breadboard für Versuchsaufbauten
- USB-Kabel und Spannungsversorgung
➜ ESP8266 NodeMCU bei Amazon ansehen*
➜ Wemos D1 Mini bei Amazon ansehen*
➜ 1-Kanal-Relais-Module bei Amazon ansehen*
Wie funktioniert ein Relais am ESP8266?
Ein Relais ist im Grunde ein elektrisch betätigter Schalter. Der ESP8266 liefert über einen GPIO ein Steuersignal. Die Elektronik auf dem Relais-Modul wertet dieses Signal aus und schaltet anschließend den eigentlichen Relaiskontakt.
Dadurch können Steuerkreis und geschalteter Stromkreis getrennt voneinander arbeiten. Für erste Versuche würde ich ausschließlich Kleinspannung verwenden, beispielsweise eine 5-Volt- oder 12-Volt-LED.
ESP8266 und Relais richtig anschließen
Viele günstige Relais-Module besitzen drei Anschlüsse für die Steuerung:
| Relais-Modul | ESP8266 |
|---|---|
| VCC | 5 V beziehungsweise VIN |
| GND | GND |
| IN | GPIO, beispielsweise D1 |
Beim NodeMCU und Wemos D1 Mini entspricht D1 normalerweise GPIO5. Dieser Pin eignet sich für viele einfache Projekte gut.
Wichtig ist allerdings das verwendete Relais-Modul. Der ESP8266 arbeitet an seinen GPIOs mit 3,3 Volt. Nicht jedes für 5 Volt angebotene Relais-Modul erkennt ein 3,3-Volt-Steuersignal zuverlässig.
Beim Kauf sollte deshalb darauf geachtet werden, dass der Steuereingang ausdrücklich mit 3,3-Volt-Logik beziehungsweise ESP8266 oder ESP32 kompatibel ist.
➜ ESP8266-kompatible Relais-Module bei Amazon ansehen*
NO, NC und COM am Relais erklärt
Auf der Ausgangsseite eines typischen Relais befinden sich drei Anschlüsse. Diese sind meistens mit COM, NO und NC beschriftet.
| Anschluss | Bedeutung |
|---|---|
| COM | Gemeinsamer Kontakt |
| NO | Normally Open, im Ruhezustand geöffnet |
| NC | Normally Closed, im Ruhezustand geschlossen |
Für die meisten Smart-Home-Anwendungen wird COM zusammen mit NO verwendet. Der angeschlossene Verbraucher ist dann zunächst ausgeschaltet und wird erst eingeschaltet, wenn das Relais anzieht.
ESP8266 Relais mit Arduino IDE schalten
Für einen ersten Funktionstest genügt ein sehr kleines Programm. In diesem Beispiel hängt das Relais an GPIO5 beziehungsweise D1.
const int relaisPin = 5;
void setup() {
pinMode(relaisPin, OUTPUT);
digitalWrite(relaisPin, HIGH);
}
void loop() {
digitalWrite(relaisPin, LOW);
delay(2000);
digitalWrite(relaisPin, HIGH);
delay(2000);
}
Das Relais wird damit alle zwei Sekunden ein- und ausgeschaltet.
Warum bedeutet LOW manchmal Relais EIN?
Wer das Programm zum ersten Mal ausprobiert, wundert sich möglicherweise über die Logik. Bei vielen Relais-Modulen bedeutet:
digitalWrite(relaisPin, LOW);
dass das Relais eingeschaltet wird.
Mit:
digitalWrite(relaisPin, HIGH);
wird es wieder ausgeschaltet.
Solche Module werden als Low-Level-Trigger oder „active low“ bezeichnet. Das ist bei günstigen Relais-Platinen sehr verbreitet.
Relais beim Start des ESP8266 ausschalten
Ein wichtiger Punkt ist der Zustand beim Einschalten oder Neustart des ESP8266. Ein angeschlossenes Relais sollte nicht unkontrolliert für einen kurzen Moment einschalten.
Deshalb wird im Beispiel bereits im setup()-Bereich ein definierter Zustand gesetzt:
pinMode(relaisPin, OUTPUT);
digitalWrite(relaisPin, HIGH);
Bei einem Active-Low-Relais bedeutet HIGH in diesem Fall AUS.
Welche GPIOs während des Bootvorgangs bestimmte Pegel annehmen, sollte bei fest verbauten Projekten trotzdem berücksichtigt werden. Nicht jeder Pin des ESP8266 eignet sich gleich gut für ein Relais.
Welche GPIOs eignen sich für ein Relais?
Beim ESP8266 würde ich für einfache Relais-Projekte bevorzugt GPIO4 oder GPIO5 verwenden. Beim NodeMCU und Wemos D1 Mini entsprechen diese normalerweise den Pins D2 und D1.
| Board-Beschriftung | GPIO | Für Relais? |
|---|---|---|
| D1 | GPIO5 | gut geeignet |
| D2 | GPIO4 | gut geeignet |
| D5 | GPIO14 | meist gut geeignet |
| D6 | GPIO12 | meist gut geeignet |
| D7 | GPIO13 | meist gut geeignet |
GPIO0, GPIO2 und GPIO15 spielen dagegen beim Bootvorgang des ESP8266 eine Rolle. Für Einsteiger würde ich diese Pins bei einem Relais zunächst vermeiden.
ESP8266 Relais mit ESPHome steuern
Wer den ESP8266 später in Home Assistant verwenden möchte, kann das Relais auch mit ESPHome konfigurieren. Dafür ist nur eine kleine YAML-Konfiguration notwendig.
switch:
- platform: gpio
name: "Relais"
pin:
number: GPIO5
inverted: true
inverted: true ist bei einem Active-Low-Relais notwendig. Anschließend erscheint das Relais als normaler Schalter in Home Assistant.
Damit lässt sich der Ausgang nicht nur über das Dashboard bedienen. Er kann auch Bestandteil von Automationen werden.
ESP8266 Relais mit Tasmota betreiben
Eine weitere Möglichkeit ist Tasmota. Nach dem Flashen lässt sich der GPIO über die Gerätekonfiguration als Relais definieren. Anschließend kann das Relais direkt über die Tasmota-Weboberfläche, MQTT, ioBroker oder Home Assistant geschaltet werden.
Wer zusätzlich einen Taster oder Schalter anschließen möchte, kann über SwitchMode festlegen, wie dieser reagieren soll. Dazu gibt es hier auf smarthome-tricks.de eine separate Anleitung.
Mehrere Relais mit dem ESP8266 schalten
Der ESP8266 kann natürlich auch mehr als ein Relais ansteuern. Dafür gibt es fertige Module mit zwei, vier oder sogar acht Relais.
Bei mehreren Relais sollte allerdings auf die Stromversorgung geachtet werden. Die Spulen der Relais benötigen deutlich mehr Strom als die GPIOs selbst. Eine separate beziehungsweise ausreichend dimensionierte 5-Volt-Versorgung kann deshalb sinnvoll sein.
➜ 4-Kanal-Relais-Module bei Amazon ansehen*
Praktische Anwendungen im Smart Home
Mit einem ESP8266 und Relais lassen sich viele kleine Projekte umsetzen. Einige Beispiele sind:
- 12-Volt-Beleuchtung schalten
- Garagentor-Taster simulieren
- Bewässerungsventil ansteuern
- Türöffner schalten
- Pumpe ein- und ausschalten
- Heizungs- oder potentialfreien Kontakt ansteuern
- Geräte über Home Assistant oder ioBroker automatisieren
Vor allem potentialfreie Kontakte sind interessant. Der ESP8266 muss dabei die zu steuernde Spannung nicht selbst liefern. Das Relais übernimmt lediglich die Funktion eines Schalters.
Breadboard und Jumper-Kabel für den Testaufbau
Bevor ich ein ESP8266-Projekt dauerhaft verbaue, würde ich die Schaltung zunächst auf einem Breadboard testen. Dadurch können GPIOs und Software schnell geändert werden, ohne etwas löten zu müssen.
➜ Breadboard- und Jumper-Kabel-Sets bei Amazon ansehen*
Vorsicht bei 230 Volt
Viele Relais-Module tragen Aufdrucke wie 250 V AC. Das bedeutet nicht, dass ein offener Breadboard-Aufbau für Netzspannung geeignet ist. Leiterabstände, Gehäuse, Berührungsschutz, Sicherungen und die gesamte Installation müssen dafür ausgelegt sein.
Für eigene Experimente sollte deshalb ausschließlich mit Kleinspannung gearbeitet werden. Arbeiten an 230 Volt und an der festen Elektroinstallation gehören in die Hände einer Elektrofachkraft.
Fazit: ESP8266 und Relais sind eine einfache Smart-Home-Kombination
Ein Relais mit dem ESP8266 zu schalten ist ein gutes Einstiegsprojekt in die eigene Smart-Home-Elektronik. Mit wenigen Bauteilen lässt sich ein Ausgang per WLAN steuern und später problemlos in Home Assistant, ioBroker oder MQTT integrieren.
Wichtig sind vor allem ein geeignetes Relais-Modul, die 3,3-Volt-Logik des ESP8266 und die Auswahl eines passenden GPIOs. Für einen ersten Aufbau würde ich GPIO5 beziehungsweise D1 verwenden und das Projekt zunächst vollständig mit Kleinspannung testen.

