ESP32 - Lichtsensor

Diese Anleitung zeigt Ihnen, wie Sie einen LDR-Lichtsensor (auch als Fotowiderstand, lichtabhängiger Widerstand oder Fotozelle bezeichnet) mit einem ESP32-Mikrocontroller und MicroPython verwenden. Wir behandeln Folgendes:

ESP32 MicroPython Lichtsensor

Wenn Sie ein Modul mit Lichtsensor suchen, sehen Sie sich das Tutorial ESP32 MicroPython LDR-Lichtsensormodul an.

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×Lichtsensor
1×10 kΩ Resistor
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 (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.

Der LDR-Lichtsensor ist sehr günstig, benötigt für die Verdrahtung jedoch 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

Diese Anleitung erklärt, wie Sie einen Fotowiderstand, auch lichtabhängiger Widerstand (LDR) genannt, verwenden, um die Helligkeit des Umgebungslichts zu messen.

Pinbelegung

Ein Fotowiderstand hat zwei Pins. Da es sich um einen Widerstand handelt, müssen Sie diese Pins nicht unterscheiden. Sie sind identisch.

Lichtsensor Pinbelegung

Funktionsweise

Ein Fotowiderstand ist ein spezieller Widerstand, der seinen Widerstandswert abhängig vom Licht ändert. Sein Widerstand sinkt bei hellem Licht und steigt bei Dunkelheit oder fehlendem Licht. Durch Messen des Widerstands des Fotowiderstands können wir die Helligkeit oder Dunkelheit des Umgebungslichts bestimmen. Das macht ihn nützlich, um Lichtverhältnisse in verschiedenen Umgebungen zu messen.

So funktioniert der Lichtsensor

WARNING

Der Wert des Lichtsensors gibt einen groben Hinweis auf die Lichthelligkeit, ist aber keine präzise Messung. Verwenden Sie ihn, wenn keine exakten Messwerte erforderlich sind.

Verdrahtungsdiagramm

So verbinden Sie ESP32 und Lichtsensor

ESP32 MicroPython Lichtsensor Schaltplan

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

ESP32 MicroPython-Code

Dieser Code prüft die Lichtmenge mithilfe einer Fotozelle und beschreibt, wie hell es ist.

/* * 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-light-sensor */ from machine import ADC, Pin import time # Initialize ADC (Analog to Digital Converter) adc = ADC(Pin(36)) # The ESP32 pin GPIO36 (ADC0) connected to the light sensor # Set the ADC width (resolution) to 12 bits adc.width(ADC.WIDTH_12BIT) # Set the attenuation to 11 dB, allowing input range up to ~3.3V adc.atten(ADC.ATTN_11DB) while True: # Read the input on analog pin ADC0 (value between 0 and 4095) value = adc.read() # Read the 12-bit ADC value directly description = "" # We'll have a few thresholds, qualitatively determined if value < 41: description = "Dark" elif value < 819: description = "Dim" elif value < 2048: description = "Light" elif value < 3277: description = "Bright" else: description = "Very bright" print(f"Analog reading: {value} - {description}") time.sleep(0.5) # delay for 500 milliseconds

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 LDR-Lichtsensor gemäß dem Schaltplan mit dem ESP32.
  • 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.
  • Richten Sie Licht auf den Sensor.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Analog reading: 652 - Dim Analog reading: 608 - Dim Analog reading: 748 - Dim Analog reading: 752 - Dim Analog reading: 3908 - Very bright Analog reading: 3952 - Very bright Analog reading: 3996 - Very bright
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

※ Notiz:

Dieses Tutorial zeigt, wie Sie mit der Funktion adc.read() Werte von einem ADC (Analog-Digital-Wandler) auslesen, der mit einem Lichtsensor 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.

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!