ESP32 S3 - Lichtsensor schaltet LED
Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 S3 zusammen mit einem Lichtsensor (LDR) verwenden, um eine LED automatisch abhängig von der Umgebungshelligkeit zu steuern. Indem Sie die analoge Spannung eines lichtabhängigen Widerstands auslesen und mit einem festgelegten Schwellenwert vergleichen, sehen Sie an einem praktischen Beispiel, wie analoge Sensordaten digitale GPIO-Ausgänge des ESP32 S3 steuern können.
Was Sie bauen werden:
- Eine Schaltung, die einen LDR-Lichtsensor und eine LED mit dem ESP32 S3 verbindet
- Einen Sketch, der kontinuierlich den Analogwert des Lichtsensors über den ADC des ESP32 S3 ausliest
- Ein System, das die LED automatisch einschaltet, wenn die gemessene Helligkeit unter einen Schwellenwert fällt (d. h. wenn es dunkel ist)
- Eine Grundlage für automatische Nachtlichter, tageslichtgesteuerte Relais und Projekte zur Überwachung der Umgebungshelligkeit
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) |
Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.
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.
Überblick über LED and Light Sensor
Der LDR-Lichtsensor und die LED sind eine naheliegende Kombination für lichtgesteuerte Projekte mit dem ESP32 S3. Wenn die Lichtintensität abnimmt, steigt der Widerstand des LDR, wodurch sich die Spannung am analogen Eingangspin ändert; der ESP32 S3 liest diese Spannung über seinen ADC aus und vergleicht sie mit einem Schwellenwert, um zu entscheiden, ob die LED über einen GPIO-Ausgang ein- oder ausgeschaltet wird.
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 die LED gemäß dem folgenden Schaltplan an Ihren ESP32 S3 an. Überprüfen Sie alle Verbindungen, bevor Sie die Stromversorgung einschalten, und achten Sie besonders auf die Polarität der LED, den 220-Ohm-Vorwiderstand und den 10-kΩ-Pull-down-Widerstand, der mit dem LDR einen Spannungsteiler bildet.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Sie können diese Schaltung auch ohne Steckbrett aufbauen. Hier ist dieselbe Verdrahtung:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Sicherheitshinweise
Schalten Sie immer den 220-Ohm-Vorwiderstand in Reihe mit der LED, damit kein zu hoher Strom durch den GPIO-Pin des ESP32 S3 fließt, was den Mikrocontroller dauerhaft beschädigen kann. Der LDR und der 10-kΩ-Widerstand bilden einen Spannungsteiler, der das Analogsignal im sicheren Eingangsbereich von 0–3,3V hält, den der ADC des ESP32 S3 erwartet – schließen Sie den LDR-Ausgang niemals ohne Spannungsteiler direkt an eine 5V-Quelle an.
| Komponente | Pin | ESP32 S3 Pin |
|---|---|---|
| Lichtsensor (LDR) | Ein Bein | 3.3V |
| Lichtsensor (LDR) | Anderes Bein | GPIO6 (und 10kΩ nach GND) |
| LED | Anode (+) | GPIO4 (über 220Ω-Widerstand) |
| LED | Kathode (-) | GND |
ESP32 S3 Code
Der folgende Code liest den Analogwert des Lichtsensors am ESP32 S3 aus, vergleicht ihn mit einem vordefinierten Schwellenwert und schaltet die LED ein, wenn der Messwert unter diesen Schwellenwert fällt – ein Zeichen für wenig Umgebungslicht. Der Schwellenwert kann direkt im Code angepasst werden, um den Auslösepunkt an Ihre Lichtverhältnisse 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.
- Richten Sie ein helles Licht direkt auf den Lichtsensor und beobachten Sie, wie die LED ausgeht.
- Decken Sie den Lichtsensor mit der Hand ab und beobachten Sie, wie die LED angeht.
- Prüfen Sie den Serial Monitor, um die aktuellen Analogwerte in Echtzeit zu sehen.
- Profi-Tipp: Passen Sie den Schwellenwert im Code an, um den Auslösepunkt auf die Lichtverhältnisse Ihres Raums abzustimmen – geben Sie zuerst den rohen ADC-Wert im Serial Monitor aus, um den besten Schwellenwert zu ermitteln, bevor Sie ihn fest im Code eintragen.
Ausgabe im Serial Monitor
Die folgende Ausgabe im Serial Monitor zeigt, wie der ESP32 S3 die Analogdaten des Lichtsensors in Echtzeit ausliest. Jede Zeile zeigt den aktuellen ADC-Wert und den entsprechenden, durch den Lichtschwellenwert ausgelösten LED-Zustand.
Anwendungs- und Projektideen
Sobald Sie eine LED über einen Lichtsensor-Messwert am ESP32 S3 schalten können, lässt sich dieses Muster auf viele lichtempfindliche Automatisierungsprojekte übertragen.
- Automatisches Nachtlicht: Schalten Sie eine Raumbeleuchtung oder einen LED-Streifen automatisch ein, wenn die Umgebungshelligkeit in der Dämmerung oder bei abgedunkeltem Raum unter einen Schwellenwert fällt.
- Tageslichtgesteuertes Relais: Schalten Sie ein Relais (und damit eine netzbetriebene Lampe oder ein Gerät) abhängig vom natürlichen Licht statt über einen manuellen Schalter.
- Gewächshaus-Lichtsteuerung: Halten Sie ein Mindestlichtniveau für Pflanzen aufrecht, indem Sie Pflanzenlampen einschalten, sobald der Sensor zu wenig natürliches Licht erkennt.
- Sicherheitsbeleuchtung: Lösen Sie helle LEDs oder eine Kamera aus, wenn ein Bereich plötzlich dunkel wird, etwa wenn in einer überwachten Zone das Licht ausgeschaltet wird.
- Solarlade-Monitor: Erkennen Sie mit dem Lichtsensor, ob Sonnenlicht verfügbar ist, und leiten Sie das Signal an eine Ladesteuerung weiter.
- Intelligente Vorhangsteuerung: Kombinieren Sie den Lichtsensor mit einem Servo- oder Schrittmotor, um Vorhänge je nach Tageszeit und Helligkeit automatisch zu öffnen oder zu schließen.
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 eine LED 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 Systeme zur Lichterkennung zu bauen.
- Anfänger: Ändern Sie den Schwellenwert im Code und beobachten Sie, wie sich die Helligkeit ändert, bei der die LED einschaltet; geben Sie anschließend eine Meldung im Serial Monitor aus, die den aktiven Schwellenwert bestätigt.
- Anfänger: Fügen Sie eine zweite LED an einem anderen GPIO-Pin hinzu und lassen Sie sie bei einem anderen (höheren ADC-Wert) Schwellenwert leuchten, sodass Sie zwei Lichtzonen mit getrennten Anzeigen haben.
- Fortgeschritten: Ersetzen Sie das einfache Ein/Aus-Verhalten der LED durch eine PWM-Helligkeitssteuerung, sodass die LED bei zunehmender Dunkelheit allmählich heller und bei mehr Licht dunkler wird.
- Fortgeschritten: Fügen Sie ein I2C-OLED-Display hinzu, um den aktuellen ADC-Wert und den LED-Zustand formatiert anzuzeigen, ohne 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: Übertragen Sie die Messwerte des Lichtsensors per WiFi an eine einfache Webseite, die vom ESP32 S3 bereitgestellt wird, und steuern Sie den Erkennungsschwellenwert aus der Ferne über einen Schieberegler im Browser.