Lichtabhängiger Widerstand – LDR-Sensor mit ESP32 unter Verwendung von Arduino IDE

Lichtabhangiger Widerstand Ldr Sensor Mit Esp32 Unter Verwendung Von Arduino Ide



Der ESP32 ist ein leistungsstarker Mikrocontroller, der mit Funktionen für IoT ausgestattet ist. ESP32 mit LDR kann die Lichtintensität messen und dementsprechend eine Reaktion auslösen. Mit ESP32 und einem LDR können wir ein Projekt auf Basis von Lichtfernerkundung erstellen und eine Vielzahl innovativer IoT-Lösungen für verschiedene Branchen und Anwendungen entwickeln.

In diesem Handbuch werden die Grundlagen von LDR und seine Anwendungen mit ESP32 behandelt.







1: Einführung in den LDR-Sensor



2: Anwendungen von LDR mit ESP32



3: LDR mit ESP32 mit Arduino IDE verbinden





Abschluss

1: Einführung in den LDR-Sensor

A L Licht D abhängig R Esistor (LDR) ist eine Art Widerstand, der seinen Widerstand basierend auf der Lichtintensität ändert, der er ausgesetzt ist. Bei Dunkelheit ist sein Widerstand sehr hoch, während er bei hellem Licht sehr gering ist. Diese Widerstandsänderung macht es am besten für Lichtsensorprojekte.




Die analogen ESP32-Pins wandeln die eingehenden Spannungen in eine ganze Zahl zwischen 0 und 4095 um. Dieser ganzzahlige Wert wird der analogen Eingangsspannung von 0 V bis 3,3 V zugeordnet, die standardmäßig die ADC-Referenzspannung in ESP32 ist. Dieser Wert wird mit dem Arduino gelesen analogRead() Funktion von LDR.

Für weitere detaillierte Anleitungen und die ADC-Pinbelegung von ESP32 lesen Sie den Artikel ESP32 ADC – Analogwerte mit Arduino IDE lesen .


Der ESP32 verfügt über einen eingebauten Analog-Digital-Wandler (ADC), der die Spannung über dem LDR messen und in ein digitales Signal umwandeln kann, das vom Mikrocontroller verarbeitet werden kann. Mit diesem Signal bestimmt ESP32 den Widerstand des LDR, der proportional zur Lichtintensität ist.

Hier verwenden wir die ESP32-ADC-Kanal-1-Pins.


Photonen oder Lichtteilchen spielen eine entscheidende Rolle beim Betrieb von LDRs. Wenn Licht auf die Oberfläche eines LDR fällt, werden Photonen vom Material absorbiert, wodurch Elektronen im Material freigesetzt werden. Die Anzahl der freien Elektronen ist direkt proportional zur Lichtintensität, und je mehr Elektronen freigesetzt werden, desto geringer wird der Widerstand des LDR.

2: Anwendungen von LDR mit ESP32

Es folgt die Liste einiger IoT-basierter Anwendungen von LDR mit ESP32:

    • Lichtaktivierter Schalter
    • Lichtstandsanzeige
    • Nachtmodus in Geräten
    • Lichtbasierte Sicherheitssysteme
    • Intelligente Beleuchtungssysteme
    • Lichtempfindliche Sicherheitssysteme
    • Anlagenüberwachung
    • Energieeffiziente Beleuchtung
    • Automatisierte Jalousien

3: LDR mit ESP32 mit Arduino IDE verbinden

Um einen LDR mit dem ESP32 zu verwenden, müssen wir den LDR mit einem ESP32 ADC-Kanal-Pin verbinden. Danach wird Arduino-Code benötigt, der analoge Werte vom LDR-Ausgangspin liest. Um diese Schaltung zu entwerfen, benötigen wir LDR, einen Widerstand und die ESP32-Platine.

Der LDR und der Widerstand sind in Reihe geschaltet, wobei der LDR mit dem verbunden ist Analogkanal 1 Eingangspin von ESP32. Der Schaltung wird eine LED hinzugefügt, die die LDR-Funktion testen kann.

3.1: Schema

Der Schaltplan für die Anbindung von LDR an ESP32 ist recht einfach. Wir müssen den LDR und einen Widerstand in einer Spannungsteilerkonfiguration verbinden und den Ausgang des Spannungsteilers mit dem ADC (Analog to Digital Converter) Pin von ESP32 verbinden. ADC-Kanal 1 Pin D34 wird als analoger Eingang für ESP32 verwendet.

Das folgende Bild ist das Schema von ESP32 mit LDR-Sensor.

3.2: Code

Ist die Schaltung aufgebaut, geht es im nächsten Schritt darum, den Code für den ESP32 zu schreiben. Der Code liest den analogen Eingang vom LDR und verwendet ihn, um eine LED oder ein anderes Gerät basierend auf unterschiedlichen Lichtstärken zu steuern.

int LDR_Val = 0 ; /* Variable zum Speichern des Fotowiderstandswerts */
int-Sensor = 3. 4 ; /* Analoger Eingang für Fotowiderstand */
int LED = 25 ; /* LED-Ausgang Pin */
ungültige Einrichtung ( ) {
Serial.begin ( 9600 ) ; /* Baudrate für Serielle Kommunikation */
    pinMode ( geführt, AUSGANG ) ; /* LED-Stift Satz als Ausgang */
}
Leere Schleife ( ) {
LDR_Val = analogRead ( Sensor ) ; /* Analog lesen LDR-Wert */
Serial.print ( 'LDR-Ausgangswert: ' ) ;
Serial.println ( LDR_Val ) ; /* Zeigen Sie den LDR-Ausgangswert auf dem seriellen Monitor an */
Wenn ( LDR_Val > 100 ) { /* Wenn die Lichtintensität HOCH ist */
Serial.println ( ' Hohe Intensität ' ) ;
digitalWrite ( geführt, NIEDRIG ) ; /* LED bleibt AUS */
}
anders {
/* Anders Wenn Die Lichtintensität ist NIEDRIG. Die LED bleibt AN */
Serial.println ( 'Niedrige Intensität ' ) ;
digitalWrite ( geführt, HOCH ) ; /* LED Turn ON LDR-Wert ist weniger als 100 */
}
Verzögerung ( 1000 ) ; /* Liest Wert nach jedem 1 Sek */
}


Im obigen Code verwenden wir einen LDR mit ESP32, der die LED über den analogen Eingang von LDR steuert.

Die ersten drei Codezeilen deklarieren Variablen zum Speichern der Fotowiderstandswert , Die analoger Stift für den Fotowiderstand und die LED Ausgangsstift.

Im aufstellen() Funktion wird die serielle Kommunikation mit einer Baudrate von 9600 initiiert und LED Pin D25 als Ausgang gesetzt.

Im Schleife() Funktion wird der Fotowiderstandswert mit der Funktion analogRead() gelesen, die in der gespeichert ist LDR_Val Variable. Der Fotowiderstandswert wird dann mit der Funktion Serial.println() auf dem seriellen Monitor angezeigt.

Ein ansonsten -Anweisung wird verwendet, um die LED basierend auf der vom Fotowiderstand erfassten Lichtintensität zu steuern. Wenn der Fotowiderstandswert größer als 100 ist, bedeutet dies, dass die Lichtintensität HOCH ist und die LED AUS bleibt. Wenn der Fotowiderstandswert jedoch kleiner oder gleich 100 ist, bedeutet dies, dass die Lichtintensität NIEDRIG ist und die LED eingeschaltet wird.

Schließlich wartet das Programm 1 Sekunde lang mit der Funktion delay(), bevor es den Fotowiderstandswert erneut liest. Dieser Zyklus wiederholt sich unbegrenzt, wodurch die LED basierend auf der vom Fotowiderstand erfassten Lichtintensität ein- und ausgeschaltet wird.

3.3: Ausgabe bei schwachem Licht

Die Lichtintensität beträgt weniger als 100, sodass die LED eingeschaltet bleibt.

3.4: Ausgabe unter hellem Licht

Wenn die Lichtintensität zunimmt, steigt der LDR-Wert und der LDR-Widerstand nimmt ab, sodass die LED ausgeschaltet wird.

Abschluss

Der LDR kann über den ADC-Kanal-1-Pin mit ESP32 verbunden werden. Der LDR-Ausgang kann die Lichterfassung in verschiedenen Anwendungen steuern. Mit ihren niedrigen Kosten und ihrer kompakten Größe sind ESP32 und LDR eine attraktive Wahl für IoT-Projekte, die Lichtsensorfähigkeiten erfordern. Mit dem Arduino analogRead() Funktion können wir Werte aus LDR lesen.