ESP8266 - Lichtsensor

Dieses Tutorial erklärt dir, wie man den Lichtsensor mit dem ESP8266 verwendet. Im Detail:

Erforderliche Hardware

1×ESP8266 NodeMCU
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 ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

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.

Der LDR-Lichtsensor ist sehr preiswert, aber er erfordert einen Widerstand für die Verkabelung, was die Installation komplexer machen kann. Um die Verkabelung zu vereinfachen, können Sie als Alternative ein LDR-Lichtsensor-Modul verwenden.

Über den Lichtsensor

Der Sensor, der in diesem Tutorial verwendet wird, ist ein Fotowiderstand, auch bekannt als lichtabhängiger Widerstand, LDR oder Fotozelle.

Es wird nicht nur verwendet, um Licht zu erkennen, sondern auch, um die Intensität des Umgebungslichts zu messen.

Pinbelegung des Lichtsensors

Ein Fotowiderstand hat zwei Anschlüsse, die nicht voneinander unterschieden werden müssen, da es sich um einen Widerstand handelt und daher die Anschlüsse symmetrisch sind.

Pinbelegung des Lichtsensors

Wie es funktioniert

Die Menge des Lichts, dem der Fotowiderstand ausgesetzt ist, beeinflusst seinen Widerstand. Durch Messung dieses Widerstands können wir die Helligkeit des umliegenden Lichts bestimmen.

Wie Lichtsensoren funktionieren

WARNING

Der Wert des Lichtsensors gibt nur einen groben Hinweis auf die Lichtintensität und ist kein präzises Maß für den Lichtstrom. Folglich sollte er nicht für Anwendungen verwendet werden, die eine hohe Genauigkeit erfordern.

ESP8266 - Lichtsensor

Die analogenen Pins des ESP8266 können als analoge Eingänge verwendet werden. Diese analogen Eingänge wandeln die Spannung (im Bereich von 0 Volt bis VCC) in ganzzahlige Werte um (im Bereich von 0 bis 1023), die als ADC-Wert oder Analogwert bezeichnet werden.

Verbinde einen Pin des lichtabhängigen Widerstands mit einem analogen Eingangspin. Verwende die Funktion analogRead(), um den analogen Wert von diesem Pin auszulesen. Dadurch können wir die Lichtverhältnisse relativ bestimmen.

Verdrahtungsdiagramm

ESP8266 NodeMCU Lichtsensor Verdrahtungsdiagramm

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

ESP8266-Quellcode

Der untenstehende Code liest den Wert des Fotowiderstands aus und bestimmt qualitativ das Lichtniveau.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The ESP8266 pin ADC0 void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); } void loop() { // reads the input on analog pin (value between 0 and 1023) int analog_value = analogRead(LIGHT_SENSOR_PIN); Serial.print("Analog Value = "); Serial.print(analog_value); // The raw analog reading // We'll have a few threshholds, qualitatively determined if (analog_value < 40) { Serial.println(" => Dark"); } else if (analog_value < 800) { Serial.println(" => Dim"); } else if (analog_value < 2000) { Serial.println(" => Light"); } else if (analog_value < 3200) { Serial.println(" => Bright"); } else { Serial.println(" => Very bright"); } delay(500); }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls du ESP8266 zum ersten Mal verwendest.
  • Verbinde die Bauteile wie im Diagramm gezeigt.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E-Modul), und den entsprechenden COM-Port.
  • Kopiere den Code und öffne ihn mit der Arduino IDE.
  • Klicke den Upload-Button in der Arduino IDE, um den Code zu kompilieren und auf den ESP8266 hochzuladen.
  • Öffne den Serial Monitor.
  • Beleuchte den Sensor.
  • Sieh dir das Ergebnis im Serial Monitor an.
COM6
Send
Analog reading: 163 - Dim Analog reading: 152 - Dim Analog reading: 187 - Dim Analog reading: 188 - Dim Analog reading: 957 - Very bright Analog reading: 972 - Very bright Analog reading: 981 - Very bright
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Lichtsensor und LED

  • Wenn die Umgebung dunkel ist, aktiviert der Code die LED, andernfalls deaktiviert er sie.
/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The ESP8266 pin connected to light sensor #define LED_PIN D8 // The ESP8266 pin connected to LED #define ANALOG_THRESHOLD 500 void setup() { pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode } void loop() { int analog_value = analogRead(LIGHT_SENSOR_PIN); // read the value on analog pin if (analog_value < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }
  • Der Schaltplan für den oben stehenden Code.
ESP8266 NodeMCU Lichtsensor LED-Schaltplan

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

※ Notiz:

Dieses Tutorial verwendet die Funktion analogRead(), um Daten von einem ADC (Analog-Digital-Wandler) zu erhalten, der an einen Sensor oder einen anderen Teil angeschlossen ist. Der ADC des ESP8266 funktioniert gut für Projekte, bei denen man keine sehr genauen Messwerte benötigt. Aber denken Sie daran, dass der ADC des ESP8266 nicht besonders genau für detaillierte Messungen ist. Wenn Ihr Projekt sehr präzise sein muss, möchten Sie möglicherweise einen separaten ADC wie den ADS1115 zusammen mit dem ESP8266 verwenden, oder verwenden Sie einen Arduino wie den Arduino Uno R4 WiFi, der einen zuverlässigeren ADC hat.

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.

Fordere dich selbst heraus

  • Wenn das Licht in Ihrem Zimmer gedimmt ist, schalten Sie es automatisch ein.
  • Siehe ESP8266 - Relais für Anweisungen, wie Sie dies tun.

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