ESP32 - LDR-Modul

Das LDR-Lichtsensor-Modul kann das Licht in seiner Umgebung wahrnehmen und messen. Es besitzt zwei Ausgänge: einen digitalen Ausgang, der entweder LOW oder HIGH sein kann, und einen analogen Ausgang.

In diesem Tutorial lernen wir, wie man ein ESP32 und ein LDR-Lichtsensor-Modul zusammen verwendet, um die Lichtmenge zu erkennen und zu messen. Folgendes werden wir behandeln:

LDR-Lichtsensor-Modul
image source: diyables.io

Anschließend kannst du den Code ändern, damit eine LED oder eine Glühbirne eingeschaltet wird (mittels eines Relais), wenn es Licht wahrnimmt.

Wenn Sie an einem Lichtsensor in seiner rohen Form interessiert sind, schlage ich vor, das Tutorial für den ESP32-Lichtsensor zu erkunden.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
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×LDR Lichtsensor-Modul
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
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.

Über das LDR-Lichtsensor-Modul

Dieses LDR-Lichtsensor-Modul kann verwendet werden, um festzustellen, ob Licht vorhanden ist oder wie viel Licht in seiner Umgebung vorhanden ist. Es verfügt über einen digitalen Ausgangspin und einen analogen Ausgangspin für verschiedene Optionen.

Pinbelegung

Das LDR-Lichtsensor-Modul hat vier Pins:

  • VCC-Pin: Schließen Sie diesen Pin an die Stromquelle an (zwischen 3,3 V und 5 V).
  • GND-Pin: Schließen Sie diesen Pin an die Masse (0 V) an.
  • DO-Pin: Das ist ein digitaler Ausgangspin. Es liefert ein HIGH-Signal, wenn es dunkel ist, und LOW, wenn es hell ist. Den Schwellenwert zwischen Dunkelheit und Helligkeit können Sie mithilfe eines eingebauten Potentiometers einstellen.
  • AO-Pin: Das ist ein analoger Ausgangspin. Der Wert sinkt, je heller das Licht wird, und steigt, je dunkler das Licht wird.
Pinbelegung des LDR-Lichtsensor-Moduls
image source: diyables.io

Zusätzlich ist das LDR-Lichtsensor-Modul mit zwei LED-Anzeigen ausgestattet:

  • Die PWR-LED-Anzeige zeigt den Stromstatus.
  • Die DO-LED-Anzeige spiegelt den Zustand des Lichts am DO-Pin wider: Sie leuchtet, wenn Licht vorhanden ist, und bleibt aus, wenn es dunkel ist.

Wie es funktioniert

Bezüglich des DO-Pins:

  • Das LDR-Lichtsensor-Modul verfügt über ein Potentiometer, mit dem sich die Empfindlichkeit oder der Schwellenwert zur Erkennung von Licht einstellen lässt.
  • Wenn die Lichtintensität in der Umgebung den festgelegten Schwellenwert (als Licht angesehen) überschreitet, wird der Ausgang des Sensors am DO-Pin LOW, und die DO-LED leuchtet auf.
  • Wenn die Lichtintensität in der Umgebung unter dem festgelegten Schwellenwert (als Dunkelheit angesehen) liegt, wird der Ausgang des Sensors am DO-Pin HIGH, und die DO-LED schaltet aus.

Bezüglich des AO-Pins:

  • Der vom AO-Pin gelesene Wert ist umgekehrt proportional zur Lichtintensität in der Umgebung. Mit anderen Worten: Wenn die Lichtintensität zunimmt (heller wird), nimmt der Wert am AO-Pin ab.
  • Ebenso gilt: Wenn die Lichtintensität abnimmt (dunkler wird), nimmt der Wert am AO-Pin zu.

Es ist wichtig zu beachten, dass das Einstellen des Potentiometers den Wert am AO-Pin nicht beeinflusst.

Verdrahtungsdiagramm

Das Lichtsensor-Modul bietet zwei Ausgänge, DO und AO, die einzeln oder zusammen verwendet werden können.

  • Wie man ESP32 und LDR-Modul mit Breadboard verbindet
Schaltplan für das ESP32 LDR-Lichtsensor-Modul

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

Wie man ESP32 und ein LDR-Modul anschließt.

ESP32-Code - Wert vom DO-Pin lesen

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32-ldr-module */ #define DO_PIN 13 // ESP32's pin GPIO13 connected to DO pin of the ldr module void setup() { // initialize serial communication Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(DO_PIN, INPUT); } void loop() { int lightState = digitalRead(DO_PIN); if (lightState == HIGH) Serial.println("It is dark"); else Serial.println("It is light"); }

Schnelle Schritte

  • Wenn dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino IDE einrichtet an.
  • Verbinden Sie die Verdrahtung gemäß dem obigen Bild.
  • Schließen Sie das ESP32-Board über ein Micro-USB-Kabel an Ihren PC an.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf das ESP32 hochzuladen.
  • Decken Sie das LDR-Lichtsensor-Modul mit Ihrer Hand oder mit etwas anderem ab und wieder auf.
  • Sehen Sie das Ergebnis im seriellen Monitor.
COM6
Send
It is light It is light It is dark It is dark It is dark It is light It is light It is light
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Wenn Sie feststellen, dass der LED-Status unabhängig von der Lichtverfügbarkeit ständig ein- oder ausgeschaltet bleibt, haben Sie die Möglichkeit, das Potentiometer einzustellen. Diese Einstellung ermöglicht es Ihnen, die Lichtempfindlichkeit des Sensors fein abzustimmen.

Darüber hinaus kann der Code entsprechend Ihren Anforderungen angepasst werden. Zum Beispiel können Sie die LED aktivieren oder das Licht einschalten, wenn Licht erkannt wird. Zusätzlich haben Sie die Flexibilität, einen Servomotor rotieren zu lassen. Detaillierte Anleitungen und Tutorials zu diesen Anpassungsoptionen finden Sie am Ende dieses Leitfadens.

ESP32-Code - Wert vom AO-Pin auslesen

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32-ldr-module */ #define AO_PIN 36 // ESP32's pin GPIO36 connected to AO pin of the ldr module void setup() { // initialize serial communication Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int lightValue = analogRead(AO_PIN); Serial.print("The AO value: "); Serial.println(lightValue); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den ESP32 hochzuladen.
  • Decken Sie das LDR-Lichtsensor-Modul mit Ihrer Hand oder Ähnlichem ab und wieder auf.
  • Sehen Sie das Ergebnis im seriellen Monitor.
COM6
Send
The AO value: 145 The AO value: 146 The AO value: 146 The AO value: 572 The AO value: 1678 The AO value: 1945 The AO value: 2956 The AO value: 3001 The AO value: 3098 The AO value: 4005 The AO value: 4005 The AO value: 1645 The AO value: 1546 The AO value: 346 The AO value: 172
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

In diesem Tutorial wird die Funktion analogRead() verwendet, um Werte von einem AD-Wandler auszulesen, der an ein LDR-Modul angeschlossen ist.

Der ESP32-AD-Wandler ist gut geeignet für Projekte, die keine hohe Genauigkeit benötigen.

Für Projekte, die präzise Messwerte benötigen, beachten Sie bitte:

  • Der ESP32-AD-Wandler ist nicht ganz genau und könnte eine Kalibrierung für korrekte Ergebnisse benötigen. Jedes ESP32-Board kann etwas unterschiedlich sein, daher müssen Sie den AD-Wandler für jedes einzelne Board kalibrieren.
  • Die Kalibrierung kann schwierig sein, insbesondere für Anfänger, und liefert möglicherweise nicht immer die exakten Ergebnisse, die Sie sich wünschen.

Für Projekte, die eine hohe Präzision benötigen, sollten Sie in Erwägung ziehen, einen externen AD-Wandler (z. B. ADS1115) zusammen mit dem ESP32 zu verwenden oder einen Arduino zu verwenden, der über einen zuverlässigeren AD-Wandler verfügt.

Falls Sie den ESP32-AD-Wandler dennoch kalibrieren möchten, lesen Sie die Dokumentation ESP32 ADC Calibration Driver.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ 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!