ESP32 S3 - Lichtsensor schaltet Relais
Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 S3 zusammen mit einem Lichtsensor verwenden, um ein Relais automatisch abhängig von der Umgebungshelligkeit zu steuern. Durch die Kombination von analoger Lichtmessung und Relaisschaltung lernen Sie praktisch, wie Sie mit dem ESP32 S3 Verbraucher mit hoher Leistung als Reaktion auf reale Sensordaten schalten.
Was Sie bauen werden:
- Eine Schaltung, die einen Lichtsensor (Fotowiderstand/LDR) und ein Relaismodul mit dem ESP32 S3 verbindet
- Einen Sketch, der kontinuierlich den Analogwert des Lichtsensors ausliest
- Ein System, das das Relais automatisch einschaltet, wenn die Umgebungshelligkeit unter einen festgelegten Schwellenwert fällt, und es wieder ausschaltet, wenn das Licht zurückkehrt
- Eine Grundlage für lichtgesteuerte Automatisierungssysteme wie automatische Nachtlichter, Straßenlaternensteuerungen und intelligente Gewächshaussysteme
Der LDR-Lichtsensor ist sehr günstig, benötigt für die Verdrahtung aber einen Widerstand, was den Aufbau komplizierter machen kann. Um die Verdrahtung zu vereinfachen, können Sie alternativ ein LDR-Lichtsensormodul verwenden.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über Relay and Light Sensor
Ein Lichtsensor (Fotowiderstand) ist ein analoges Bauteil, dessen Widerstand mit zunehmender Umgebungshelligkeit sinkt. Dadurch entsteht eine veränderliche Spannung, die der ESP32 S3 über seinen ADC ausliest, um die Helligkeit zu bestimmen. In Kombination mit einem Relais kann der ESP32 S3 diesen Helligkeitswert nutzen, um Verbraucher mit hoher Spannung oder hohem Strom – etwa Glühbirnen, Lüfter oder Sirenen – sicher zu schalten, die seine GPIO-Pins nicht direkt ansteuern können.
Wichtige Spezifikationen
Wir haben eigene Tutorials, die jede Komponente ausführlich behandeln. Jedes Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zu Pinbelegung, Funktionsprinzip, Verdrahtung mit dem ESP32 S3 und Arduino-Code. Mehr dazu finden Sie unter den folgenden Links:
Verdrahtungsdiagramm
Schließen Sie den Lichtsensor und das Relais gemäß dem folgenden Schaltplan an Ihren ESP32 S3 an. Überprüfen Sie alle Verbindungen, bevor Sie die Stromversorgung einschalten, insbesondere die Hochspannungsverdrahtung an den Ausgangsklemmen des Relais.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wenn Sie diese Schaltung behalten möchten, denken Sie an Schraubklemmen. Probieren Sie ein Schraubklemmen-Board für ESP32 S3: Der ESP32 S3 sitzt darauf, und jeder Pin bekommt seine eigene Schraubklemme. Jedes Kabel geht an die Schraubklemme desselben Pins, wie im Bild unten.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Ein GPIO-Breakout-Board für ESP32 S3 geht ebenfalls. Neben den S-, 3,3V- und GND-Pins für jeden GPIO hat es zusätzliche 3,3V- und 5V-Pins:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Sicherheitshinweise
Vergewissern Sie sich immer, dass die COM- und NO- (oder NC-) Klemmen des Relais fest angezogen sind und keine blanken Drähte freiliegen, bevor Sie die Schaltung mit Strom versorgen. Halten Sie die Niederspannungs-Steuerleitungen zum ESP32 S3 räumlich getrennt von der Hochspannungs-Lastverdrahtung, um das Risiko einer versehentlichen Berührung zu verringern.
| Komponente | Pin | ESP32 S3 Pin |
|---|---|---|
| Lichtsensor | Pin 1 | 3.3V |
| Lichtsensor | Pin 2 | GPIO4 (Analog-Pin) + 10kΩ-Widerstand |
| 10kΩ-Widerstand (anderes Ende) | GND | |
| Relais | DC- | GND |
| Relais | DC+ | 5V |
| Relais | IN | GPIO10 |
ESP32 S3 Code
Der folgende Code liest den Analogwert des Lichtsensors am ESP32 S3 aus, vergleicht ihn mit einem einstellbaren Schwellenwert und schaltet das Relais ein, wenn die Helligkeit unter diesen Schwellenwert fällt. Der Schwellenwert kann direkt im Code angepasst werden, um ihn an unterschiedliche Lichtverhältnisse und Empfindlichkeitsanforderungen anzupassen.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Verdrahten Sie die Komponenten gemäß dem obigen Schaltplan.
- Verbinden Sie das ESP32 S3 Board über ein USB-Type-C-Kabel mit Ihrem PC.
- Öffnen Sie die Arduino IDE auf Ihrem PC.
- Wählen Sie im Menü Werkzeuge das richtige ESP32 S3 Board und den COM-Port aus.
- Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
- Klicken Sie auf die Schaltfläche Upload, um den Code zu kompilieren und auf den ESP32 S3 hochzuladen.

- Öffnen Sie den Serial Monitor mit 115200 Baud.
- Decken Sie den Lichtsensor mit der Hand ab, um die Helligkeit zu verringern, und beobachten Sie, wie das Relais einschaltet (Sie hören ein Klicken).
- Setzen Sie den Sensor hellem Licht aus und beobachten Sie, wie das Relais ausschaltet.
- Prüfen Sie den Serial Monitor, um die aktuellen Analogwerte und den Relaiszustand in Echtzeit zu sehen.
- Profi-Tipp: Passen Sie den Schwellenwert im Code an, um den Auslösepunkt fein abzustimmen – bei einem niedrigeren Schwellenwert muss es fast dunkel sein, damit das Relais schaltet, während ein höherer Wert es schon bei gedämpftem Licht aktiviert. Das ist für verschiedene Lichtautomatisierungs-Szenarien nützlich.
Ausgabe im Serial Monitor
Die folgende Ausgabe im Serial Monitor zeigt, wie der ESP32 S3 die Analogwerte des Lichtsensors ausliest und das Relais in Echtzeit schaltet. Jede Zeile zeigt den aktuellen ADC-Wert und den entsprechenden, durch den Lichtschwellenwert ausgelösten Relaiszustand.
※ Notiz:
Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der mit einem Lichtsensor verbunden ist. Der ADC des ESP32 S3 eignet sich für Projekte, die keine hohe Genauigkeit erfordern. Bei Projekten, die präzise Messungen benötigen, beachten Sie jedoch Folgendes:
- Der ADC des ESP32 S3 ist nicht perfekt genau und muss für korrekte Ergebnisse eventuell kalibriert werden. Jedes ESP32 S3 Board kann leicht abweichen, daher ist eine Kalibrierung für jedes einzelne Board notwendig.
- Die Kalibrierung kann besonders für Anfänger schwierig sein und liefert nicht immer genau die gewünschten Ergebnisse.
Für Projekte mit hohen Genauigkeitsanforderungen sollten Sie einen externen ADC (z. B. ADS1115) mit dem ESP32 S3 verwenden. Wenn Sie den ADC des ESP32 S3 dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.
Anwendungs- und Projektideen
Sobald Sie ein Relais über einen Lichtsensor-Messwert am ESP32 S3 schalten können, lässt sich dieses Muster auf viele lichtempfindliche Automatisierungs- und Steuerungsprojekte übertragen.
- Automatisches Nachtlicht: Schalten Sie eine relaisgesteuerte Glühbirne oder einen LED-Streifen automatisch ein, wenn die Umgebungshelligkeit in der Dämmerung unter einen festgelegten Wert fällt.
- Intelligente Straßenlaternensteuerung: Schalten Sie Straßenlaternen mit dem Lichtsensor bei Sonnenuntergang ein und bei Sonnenaufgang aus – ganz ohne manuelle Zeitschaltuhr.
- Pflanzenlicht-Steuerung im Gewächshaus: Schalten Sie zusätzliche Pflanzenlampen per Relais ein, wenn das natürliche Licht im Gewächshaus unter den für das Pflanzenwachstum nötigen Schwellenwert fällt.
- Sicherheits-Außenlicht: Lösen Sie per Relais eine 12V-Warnleuchte oder Sirene aus, wenn ein Bereich unerwartet dunkel wird – ein möglicher Hinweis auf ein Hindernis oder einen Eindringling.
- Energiesparende Lüftungssteuerung: Kombinieren Sie die Lichterkennung mit einem relaisgesteuerten Lüfter, um die Belüftung anhand der Sonneneinstrahlung als Näherung für die Raumtemperatur anzupassen.
- Dunkelkammer-Steuerung: Schalten Sie relaisgesteuerte Geräte automatisch ein, wenn das Licht in der Dunkelkammer unter einen sicheren Schwellenwert fällt, um lichtempfindliche Materialien zu schützen.
Relais vs. MOSFET-Modul
Ein Relais ist nicht die einzige Möglichkeit, ein Gerät zu schalten. Wenn Ihr Gerät mit Gleichstrom (DC) läuft, zum Beispiel ein 12V-LED-Streifen, ein 12V-Magnetschloss oder ein 12V-Lüfter, kann ein MOSFET-Modul die gleiche Aufgabe übernehmen.
| Relais | MOSFET-Modul | |
|---|---|---|
| Was es kann | Gerät ein- oder ausschalten | Gerät ein- oder ausschalten und die Leistung einstellen (PWM) |
| Geräusch beim Schalten | jedes Mal ein Klicken | kein Geräusch |
| Schaltgeschwindigkeit | langsam, einige Millisekunden | sehr schnell |
| Lebensdauer | die Kontakte verschleißen nach vielen Schaltvorgängen | nichts bewegt sich, daher hält es lange |
| Stromart | AC oder DC | nur DC |
| Stromversorgung des Geräts | jede Spannung, für die das Relais ausgelegt ist | etwa 6V oder mehr |
| Trennung vom ESP32 S3 | ja, zwischen Spule und Kontakten | ja, durch den PC817-Optokoppler |
| Geeignet für | AC-Geräte oder einfaches EIN/AUS | DC-Geräte oder Dimmen und Drehzahlregelung |
Sowohl das Relais als auch das MOSFET-Modul schalten ein, wenn der Pin des ESP32 S3 HIGH ist. Der 3,3V-Pegel des ESP32 S3 reicht völlig aus, weil die LED im PC817-Optokoppler nur wenige Milliampere braucht. Für ein einfaches EIN/AUS bleibt der obige Code also gleich. Nur die Verdrahtung ändert sich. Für Geräte am Wechselstromnetz verwenden Sie immer das Relais.
Pinbelegung, Verdrahtung, PWM-Code und Sicherheitstipps zum MOSFET-Modul finden Sie im Tutorial ESP32 S3 - MOSFET-Modul.
Video-Tutorial
Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3 Projekt an.
Fordern Sie sich heraus
Da Sie nun ein Relais mit einem Lichtsensor am ESP32 S3 steuern können, probieren Sie diese zunehmend anspruchsvollen Erweiterungen aus, um Ihr Verständnis zu vertiefen und leistungsfähigere lichtgesteuerte Automatisierungssysteme zu bauen.
- Anfänger: Ändern Sie den Schwellenwert im Code und beobachten Sie, wie sich die Helligkeit ändert, bei der das Relais schaltet; geben Sie anschließend eine Bestätigungsmeldung im Serial Monitor aus, die den aktiven Schwellenwert anzeigt.
- Anfänger: Fügen Sie eine Anzeige-LED an einem separaten GPIO-Pin hinzu, die leuchtet, sobald das Relais angezogen ist, sodass Sie zusätzlich zum hörbaren Relaisklicken eine optische Bestätigung mit Niederspannung haben.
- Fortgeschritten: Implementieren Sie eine Hysterese in der Schwellenwertlogik, sodass das Relais bei einer Helligkeit einschaltet (z. B. ADC-Wert unter 1000), aber erst ausschaltet, wenn die Helligkeit über einen höheren Wert steigt (z. B. ADC-Wert über 1500). So verhindern Sie schnelles Relaisflattern nahe der Grenze.
- Fortgeschritten: Fügen Sie ein I2C-OLED-Display hinzu, um den aktuellen ADC-Wert und den Relaiszustand formatiert anzuzeigen, ohne zur Überwachung auf den Serial Monitor angewiesen zu sein.
- Experte: Speichern Sie einen konfigurierbaren Schwellenwert im nichtflüchtigen Speicher des ESP32 S3 (Preferences-Bibliothek), damit die Einstellung auch nach einem Neustart ohne erneutes Hochladen erhalten bleibt.
- Experte: Erweitern Sie das Projekt um WiFi, sodass das Relais überwacht und der Lichtschwellenwert aus der Ferne über eine vom ESP32 S3 bereitgestellte Webseite angepasst werden kann.