ESP32 S3 - Lichtsensor

Erfahren Sie, wie Sie einen Lichtsensor (Fotowiderstand/LDR) an Ihren ESP32 S3 anschließen und die Helligkeit in Ihren Arduino-Projekten messen. Diese einsteigerfreundliche Anleitung behandelt alles von der Verdrahtung bis zum Code und hilft Ihnen, Ihr erstes System zur Erkennung der Umgebungshelligkeit mit dem ESP32 S3 zu bauen.

Was Sie bauen werden:

  1. Eine Lichtsensor-Schaltung, die mit dem Analogeingang des ESP32 S3 verbunden ist
  2. Arduino-Code, der die Umgebungshelligkeit ausliest und in Stufen einteilt
  3. Eine Anzeige im Serial Monitor mit Helligkeitswerten in Echtzeit
  4. Eine automatische LED-Steuerung, die auf wechselnde Lichtverhältnisse reagiert
ESP32 S3 - Lichtsensor

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Lichtsensor
1×10 kΩ Resistor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Komponentenoptionen:

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 Light Sensor

Ein Lichtsensor (Fotowiderstand) ist ein analoges Bauteil, das seinen Widerstand abhängig von der Lichtmenge ändert, die auf seine Oberfläche fällt. Er ist einer der einfachsten und günstigsten Sensoren, die Sie mit einem Mikrocontroller wie dem ESP32 S3 verwenden können, und damit ideal für Einsteigerprojekte. Typische Anwendungen reichen von automatischen Nachtlichtern über Pflanzenlicht-Monitore bis hin zu Smart-Home-Systemen.

Wichtige Spezifikationen

Der Fotowiderstand wird auch Fotozelle oder lichtabhängiger Widerstand (LDR) genannt. Sein Widerstand liegt bei hellem Licht typischerweise bei etwa 200 Ω, kann bis auf 200 Ω sinken und steigt bei völliger Dunkelheit auf bis zu 10 MΩ. Die Reaktionszeit beträgt etwa 20–30 ms, sodass er sich gut zur Erfassung allmählicher Änderungen der Umgebungshelligkeit eignet. Er arbeitet mit einer einfachen Spannungsteilerschaltung und liefert ein Analogsignal, das der ESP32 S3 direkt über seine ADC-Pins auslesen kann.

Pinbelegung des Lichtsensors

Der Fotowiderstand hat zwei ungepolte Pins, die in beliebiger Ausrichtung angeschlossen werden können.

  1. Pin 1: Mit einer der beiden Seiten des Spannungsteilers verbinden
  2. Pin 2: Mit einer der beiden Seiten des Spannungsteilers verbinden

Hinweis: Anders als bei LEDs oder Dioden sind die Pins des Lichtsensors austauschbar – Sie müssen nicht auf die Polarität achten.

Pinbelegung des Lichtsensors

So funktioniert der Lichtsensor

Der Widerstand des Fotowiderstands verhält sich umgekehrt zur Lichtintensität – mehr Licht bedeutet weniger Widerstand, was eine höhere Spannung am Analogpin des ESP32 S3 erzeugt. Der ESP32 S3 liest diese Spannung aus und wandelt sie mit seinem eingebauten ADC in einen digitalen Wert zwischen 0 und 4095 um. Höhere Analogwerte stehen für hellere Bedingungen, niedrigere Werte für dunklere Umgebungen.

So funktioniert der Lichtsensor

WARNING

Der vom Fotowiderstand gemessene Wert spiegelt nur die ungefähre Tendenz der Lichtintensität wider und entspricht NICHT genau dem Lichtstrom. Daher sollte der Fotowiderstand nicht in Anwendungen eingesetzt werden, die eine hohe Genauigkeit erfordern. Für manche Anwendungen ist außerdem eine Kalibrierung erforderlich.

ESP32 S3 - Lichtsensor

Der ESP32 S3 liest die Werte des Lichtsensors über seine analogen Eingangspins aus. Der ADC des ESP32 S3 wandelt eine Eingangsspannung von 0 V bis 3,3 V in einen ganzzahligen Wert zwischen 0 und 4095 um, den sogenannten ADC-Wert. Mit der Funktion analogRead() lesen Sie diesen Wert aus – höhere ADC-Werte entsprechen helleren Lichtverhältnissen, niedrigere Werte dunkleren Umgebungen.

Schaltplan zwischen Lichtsensor und ESP32 S3

Schließen Sie den Lichtsensor über eine Spannungsteilerschaltung mit einem 10-kΩ-Widerstand an Ihren ESP32 S3 an. Ein Bein des Fotowiderstands wird mit 3,3 V verbunden, das andere Bein sowohl mit einem analogen GPIO-Pin als auch mit einem Ende des 10-kΩ-Widerstands; das andere Ende des Widerstands geht an GND.

Sicherheitshinweise

Überprüfen Sie Ihre Verbindungen immer doppelt, bevor Sie das Board einschalten. Stellen Sie sicher, dass der Widerstand 10 kΩ hat, denn ein falscher Widerstandswert verändert das Teilerverhältnis des Spannungsteilers und führt zu ungenauen ADC-Werten.

ESP32 S3 Lichtsensor Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Lichtsensor Pin 1 3.3V
Lichtsensor Pin 2 GPIO6 (Analog-Pin) + 10kΩ-Widerstand
10kΩ-Widerstand (anderes Ende) GND

ESP32 S3 Code

Der folgende Code liest den Analogwert des Lichtsensors an GPIO6 des ESP32 S3 aus und ordnet die Helligkeit einer von vier Stufen zu. Er gibt alle 500 Millisekunden sowohl den rohen ADC-Wert als auch die zugehörige Bezeichnung im Serial Monitor aus, sodass Sie leicht beobachten können, wie der Sensor in Echtzeit auf wechselnde Lichtverhältnisse reagiert.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-light-sensor */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-light-sensor */ #define LIGHT_SENSOR_PIN 6 // ESP32-S3 pin GPIO6 (ADC1_CH5) void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // reads the input on analog pin (value between 0 and 4095) int analogValue = analogRead(LIGHT_SENSOR_PIN); Serial.print("Analog Value = "); Serial.print(analogValue); // the raw analog reading // We'll have a few threshholds, qualitatively determined if (analogValue < 40) { Serial.println(" => Dark"); } else if (analogValue < 800) { Serial.println(" => Dim"); } else if (analogValue < 2000) { Serial.println(" => Light"); } else if (analogValue < 3200) { Serial.println(" => Bright"); } else { Serial.println(" => Very bright"); } delay(500); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Code kopieren: Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  3. Board auswählen: Stellen Sie sicher, dass unter Werkzeuge > Board der ESP32 S3 ausgewählt ist.
  4. ESP32 anschließen: Verbinden Sie Ihren ESP32 S3 über ein USB-Type-C-Kabel mit Ihrem Computer.
  5. Code hochladen: Klicken Sie in der Arduino IDE auf die Schaltfläche Upload.
  6. Serial Monitor öffnen: Klicken Sie auf das Serial-Monitor-Symbol oder drücken Sie Strg+Umschalt+M.
  7. Baudrate einstellen: Stellen Sie den Serial Monitor auf 115200 Baud ein.
  8. Sensor testen: Decken Sie den Lichtsensor mit der Hand ab und setzen Sie ihn dann hellem Licht aus.
  9. Ergebnisse beobachten: Verfolgen Sie, wie sich die Analogwerte und die Helligkeitsbeschreibungen in Echtzeit ändern.
  10. Profi-Tipp: Die Schwellenwerte (1000, 2000, 3000) können an Ihre Umgebungshelligkeit angepasst werden, um genauere Ergebnisse zu erhalten.
So öffnen Sie den Serial Monitor in der Arduino IDE

Erwartete Ausgabe im Serial Monitor:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-01-15 08:32:11] Analog Value = 3845 => Very bright [2026-01-15 08:32:11] Analog Value = 3921 => Very bright [2026-01-15 08:32:12] Analog Value = 3887 => Very bright [2026-01-15 08:32:12] Analog Value = 2456 => Medium [2026-01-15 08:32:13] Analog Value = 2398 => Medium [2026-01-15 08:32:13] Analog Value = 892 => Dim [2026-01-15 08:32:14] Analog Value = 845 => Dim [2026-01-15 08:32:14] Analog Value = 312 => Dark [2026-01-15 08:32:15] Analog Value = 289 => Dark
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Lichtsensor und LED

Erstellen wir nun ein automatisches Beleuchtungssystem, das eine LED einschaltet, wenn es dunkel wird.

Verdrahtungsdiagramm

Fügen Sie Ihrer Schaltung eine LED hinzu, um einen lichtgesteuerten Schalter zu erstellen.

ESP32 S3 Lichtsensor LED Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Zusätzliche Verbindungen:

LED-Anode (langes Bein) GPIO8 (über 220Ω-Widerstand)
LED-Kathode (kurzes Bein) GND

ESP32 S3 Code

Der folgende Code liest den Lichtsensor kontinuierlich aus und vergleicht jeden Messwert mit einem festen Schwellenwert. Fällt die Umgebungshelligkeit unter den Schwellenwert, schaltet der ESP32 S3 die LED automatisch ein; ist wieder genügend Licht vorhanden, schaltet er die LED aus – so entsteht ein einfaches und wirkungsvolles automatisches Nachtlicht.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-light-sensor */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-light-sensor */ // constants won't change #define LIGHT_SENSOR_PIN 6 // ESP32-S3 pin GPIO6 (ADC1_CH5) connected to light sensor #define LED_PIN 4 // ESP32-S3 pin GPIO4 connected to LED #define ANALOG_THRESHOLD 500 void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(LED_PIN, OUTPUT); // set ESP32-S3 pin to output mode } void loop() { int analogValue = analogRead(LIGHT_SENSOR_PIN); // read the value on analog pin if (analogValue < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }

※ Notiz:

Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der mit einem Sensor oder Bauteil 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 oder einen anderen Arduino wie den Arduino Uno R4 WiFi einsetzen, der einen zuverlässigeren ADC hat. Wenn Sie den ADC des ESP32 S3 dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.

Anwendungs- und Projektideen

Da Sie nun wissen, wie Sie einen Lichtsensor mit dem ESP32 S3 verwenden, gibt es viele praktische Möglichkeiten, dieses Wissen in realen Projekten einzusetzen.

  1. Automatisches Nachtlicht: Die LED schaltet sich automatisch ein, wenn es im Raum dunkel wird.
  2. Intelligenter Pflanzenmonitor: Verfolgen Sie im Tagesverlauf, wie viel Sonnenlicht Ihre Zimmerpflanzen bekommen.
  3. Sicherheitssystem: Erkennen Sie, wenn in einem Raum das Licht ein- oder ausgeschaltet wird, und lösen Sie Warnungen aus.
  4. Wetterstation: Überwachen Sie Tageslichtstunden und Bewölkung als Teil einer umfassenderen Sensoranordnung.
  5. Energiesparer: Steuern Sie Jalousien automatisch abhängig von der Sonneneinstrahlung.
  6. Belichtungsmesser für Fotografie: Messen Sie die Umgebungshelligkeit als Hilfe für die Kameraeinstellungen.

Video-Tutorial

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3 Projekt an.

Fordern Sie sich heraus

Sobald der einfache Lichtsensor mit Ihrem ESP32 S3 funktioniert, erweitern Sie Ihre Fähigkeiten mit diesen aufeinander aufbauenden Herausforderungen.

  1. Anfänger: Fügen Sie einen Summer hinzu, der einmal piept, wenn die Helligkeit von hell zu dunkel wechselt.
  2. Anfänger: Zeigen Sie im Serial Monitor "Good morning!" an, wenn Licht erkannt wird, und "Good night!", wenn es dunkel ist.
  3. Fortgeschritten: Erstellen Sie einen Datenlogger, der jede Minute die Helligkeit aufzeichnet und auf einer SD-Karte speichert.
  4. Fortgeschritten: Bauen Sie eine intelligente Vorhangsteuerung, die anhand simulierter Schwellenwerte für Sonnenaufgang und Sonnenuntergang öffnet oder schließt.
  5. Experte: Implementieren Sie einen Solarpanel-Nachführer, der die Lichtintensität mehrerer Sensoren überwacht und einen Servo dreht, um der Lichtquelle zu folgen.
  6. Experte: Erstellen Sie ein Gewächshaus-Automatisierungssystem, das mit lichtbasierter Logik Bewässerungszeiten und Lüfter steuert.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!