ESP32 - LDR-Modul

Dieses Tutorial zeigt Ihnen, wie Sie einen ESP32 und ein LDR-Lichtsensormodul verwenden, um Lichtverhältnisse zu überwachen und zu messen. Im Einzelnen lernen wir:

ESP32 MicroPython LDR-Lichtsensormodul

Erforderliche Hardware

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow
1×(Alternativ) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) ESP32 Uno-form board
1×(Alternativ) ESP32 S3 Uno-form 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×LDR Lichtsensor-Modul
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 (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.

Überblick über LDR Light Sensor Module

Das LDR-Lichtsensormodul hilft dabei, Licht zu erkennen oder die Lichtmenge in der Umgebung zu messen. Es bietet zwei Optionen: einen digitalen und einen analogen Ausgang.

Pinbelegung

Das LDR-Lichtsensormodul verfügt über vier Pins:

  • VCC-Pin: Verbinden Sie diesen Pin mit VCC (3,3V bis 5V).
  • GND-Pin: Verbinden Sie diesen Pin mit GND (0V).
  • DO-Pin: Dies ist ein digitaler Ausgangspin. Er ist bei Dunkelheit HIGH und bei Licht LOW. Stellen Sie das Potentiometer ein, um die Empfindlichkeit für Hell und Dunkel zu ändern.
  • AO-Pin: Dies ist ein analoger Ausgangspin. Der Ausgabewert sinkt bei hellen Bedingungen und steigt bei dunklen Bedingungen.
LDR-Lichtsensormodul Pinbelegung
image source: diyables.io

Es verfügt außerdem über zwei LEDs:

  • Eine PWR-LED leuchtet, um anzuzeigen, dass die Stromversorgung eingeschaltet ist.
  • Eine DO-LED zeigt den Lichtstatus am DO-Pin an: Sie leuchtet, wenn Licht vorhanden ist, und erlischt bei Dunkelheit.

Funktionsweise

DO-Pin:

  • Das Potentiometer stellt den Lichtschwellenwert ein.
  • Der DO-Pin ist LOW (DO-LED aus), wenn das Licht heller als der Schwellenwert ist.
  • Der DO-Pin ist HIGH (DO-LED an), wenn das Licht schwächer als der Schwellenwert ist.

AO-Pin:

  • Der Messwert am AO-Pin ändert sich mit der Lichtintensität.
  • Ein niedrigerer Messwert bedeutet mehr Licht.
  • Ein höherer Messwert bedeutet dunklere Bedingungen.
  • Das Potentiometer beeinflusst den Wert am AO-Pin nicht.

Mit dieser Methode können Sie die Empfindlichkeit des DO-Pins mit dem Potentiometer einstellen und gleichzeitig genaue Lichtmessungen vom AO-Pin erhalten.

Verdrahtungsdiagramm

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

  • So verbinden Sie ESP32 und LDR-Modul über ein Breadboard
ESP32 MicroPython LDR-Lichtsensormodul Schaltplan

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

So verbinden Sie ESP32 und LDR-Modul

ESP32 MicroPython-Code - Wert vom DO-Pin lesen

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython 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-micropython/esp32-micropython-ldr-module */ from machine import Pin import utime # For timing functions DO_PIN = Pin(13, Pin.IN) # The ESP32 pin GPIO13 connected to the DO pin of the LDR module while True: light_state = DO_PIN.value() # Read the digital value from the pin if light_state == 1: print("The light is NOT present") else: print("The light is present") utime.sleep(0.5) # Add a small delay to avoid spamming the output

Schnelle Schritte

So richten Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE ein und führen ihn aus:

  • Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
  • Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board installiert ist.
  • Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte mit Schritt-für-Schritt-Anweisungen.
  • Verbinden Sie den ESP32 gemäß dem Schaltplan mit dem LDR-Modul.
  • Verbinden Sie das ESP32-Board über ein USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Thonny IDE auf Ihrem Computer.
  • Gehen Sie in der Thonny IDE zu Tools Options.
  • Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32) aus.
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, eventuell müssen Sie ihn aber manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
  • Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32:
    • Klicken Sie auf die Schaltfläche Save oder drücken Sie Ctrl+S.
    • Wählen Sie im Speicherdialog MicroPython device.
    • Nennen Sie die Datei main.py.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
  • Verdecken Sie das Licht am LDR-Sensormodul mit der Hand oder einem Gegenstand und geben Sie es wieder frei.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot The light is present The light is present The light is NOT present The light is NOT present The light is NOT present The light is present The light is present The light is present
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

Wenn die LED immer an oder immer aus ist, stellen Sie die Lichtempfindlichkeit mit dem Potentiometer ein. Sie können den Code nun so anpassen, dass abhängig von der Lichterkennung eine LED, ein Lichtschalter oder ein Servomotor gesteuert wird. Ausführliche Anleitungen finden Sie in den Tutorials am Ende dieses Dokuments.

※ Notiz:

Dieses Tutorial zeigt, wie Sie mit der Funktion adc.read() Werte von einem ADC (Analog-Digital-Wandler) auslesen, der mit einem LDR-Modul verbunden ist. Der ADC des ESP32 eignet sich für Projekte, die keine hohe Präzision erfordern. Wenn Ihr Projekt jedoch genaue Messungen benötigt, beachten Sie Folgendes:

  • Der ESP32-ADC ist nicht perfekt genau und muss für präzise Ergebnisse eventuell kalibriert werden. Jedes ESP32-Board kann leicht abweichen, daher ist eine Kalibrierung für jedes einzelne Board erforderlich.
  • Die Kalibrierung kann besonders für Anfänger schwierig sein und liefert nicht immer genau die gewünschten Ergebnisse.

Für Projekte mit hohen Präzisionsanforderungen sollten Sie einen externen ADC (z. B. ADS1115) mit dem ESP32 verwenden oder einen Arduino wählen, der einen zuverlässigeren ADC besitzt. Wenn Sie den ESP32-ADC dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.

ESP32 MicroPython-Code - Wert vom AO-Pin lesen

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython 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-micropython/esp32-micropython-ldr-module */ from machine import ADC, Pin import utime # For timing functions AO_PIN = ADC(Pin(36)) # The ESP32 pin GPIO36 (ADC0) connected to the AO pin of the LDR module # Set the ADC width (resolution) to 12 bits AO_PIN.width(ADC.WIDTH_12BIT) # Set the attenuation to 11 dB, allowing input range up to ~3.3V AO_PIN.atten(ADC.ATTN_11DB) while True: light_value = AO_PIN.read() # Read the analog value (0-4095) print(light_value) # Print the analog value utime.sleep(1) # Add a small delay to avoid spamming the output

Schnelle Schritte

Bitte befolgen Sie diese Anweisungen nacheinander:

  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Thonny IDE.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen. Das Skript wird ausgeführt.
  • Verdecken Sie das Licht am LDR-Sensormodul mit der Hand oder einem Gegenstand und geben Sie es wieder frei.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot 580 584 584 2289 2713 3782 3826 4006 4010 4050 4054 2581 2185 1385 688
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

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.

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!