ESP32 - LDR Module

De LDR lichtsensor module kan het licht in de omgeving detecteren en meten. Deze module heeft twee uitgangen: een digitale uitgang die LOW of HIGH kan zijn, en een analoge uitgang.

In deze handleiding leert u hoe u een ESP32 samen met een LDR lichtsensor module gebruikt om licht te detecteren en de hoeveelheid licht te meten. We behandelen:

LDR Light Sensor Module
image source: diyables.io

Daarna kunt u de code aanpassen zodat een LED of een lamp gaat branden (via een relais) zodra er licht wordt gedetecteerd.

Als u geïnteresseerd bent in een lichtsensor in de meest eenvoudige vorm, raad ik u aan de tutorial voor de ESP32 - Light Sensor te bekijken.

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB Type-C kabel
1×LDR Lichtsensor Module
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de LDR Lichtsensor Module

De LDR lichtsensor module kan worden gebruikt om te bepalen of er licht is of hoeveel licht er is in de omgeving rondom de sensor. De module beschikt over een digitale uitgangspen en een analoge uitgangspen voor verschillende toepassingen.

Pinout

De LDR lichtsensor module heeft vier pinnen:

  • VCC pin: Verbind deze pin met de voedingsspanning (tussen 3,3V en 5V).
  • GND pin: Verbind deze pin met de aarde (0V).
  • DO pin: Dit is een digitale uitgangspin. Deze geeft een HIGH-signaal wanneer het donker is en LOW wanneer het licht is. U kunt de drempelwaarde tussen donker en licht afstellen met een ingebouwde potentiometer.
  • AO pin: Dit is een analoge uitgangspin. De waarde neemt af naarmate het lichter wordt en neemt toe naarmate het donkerder wordt.
LDR Light Sensor Module Pinout
image source: diyables.io

Daarnaast is de LDR lichtsensor module uitgerust met twee LED-indicatoren:

  • De PWR-LED indicator geeft aan of de module stroom ontvangt.
  • De DO-LED indicator geeft de status van het licht op de DO pin weer: deze brandt wanneer er licht is en is uit wanneer het donker is.

Hoe Het Werkt

Met betrekking tot de DO pin:

  • De LDR lichtsensor module heeft een potentiometer waarmee u de gevoeligheid of drempelwaarde voor lichtdetectie kunt instellen.
  • Wanneer de lichtintensiteit in de omgeving hoger is dan de ingestelde drempel (beschouwd als licht), wordt het uitgangssignaal op de DO-pin LOW en gaat de DO-LED aan.
  • Wanneer de lichtintensiteit lager is dan de ingestelde drempel (beschouwd als donker), wordt het uitgangssignaal op de DO-pin HIGH en gaat de DO-LED uit.

Met betrekking tot de AO pin:

  • De waarde die wordt gelezen vanaf de AO pin is omgekeerd evenredig met de lichtintensiteit in de omgeving. Met andere woorden, naarmate het lichter wordt, daalt de waarde op de AO pin.
  • Naarmate het donkerder wordt, neemt de waarde op de AO pin toe.

Het is belangrijk op te merken dat het instellen van de potentiometer geen invloed heeft op de waarde op de AO pin.

Aansluitschema

De lichtsensor module biedt twee uitgangen, DO en AO, die afzonderlijk of samen gebruikt kunnen worden.

  • Hoe u ESP32 en LDR module aansluit met behulp van een breadboard
ESP32 LDR Light Sensor Module wiring diagram

This image is created using Fritzing. Click to enlarge image

How to connect ESP32 and ldr module

ESP32 Code - Waarde lezen van DO pin

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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"); }

Snelle Stappen

  • Als u de ESP32 voor het eerst gebruikt, bekijk dan hoe de omgeving in te stellen voor ESP32 in Arduino IDE.
  • Voer de bedrading uit zoals afgebeeld in de afbeelding hierboven.
  • Verbind de ESP32 met uw PC via een micro USB-kabel.
  • Open de Arduino IDE op uw PC.
  • Selecteer de juiste ESP32 board (bijv. ESP32 Dev Module) en COM-poort.
  • Kopieer de bovenstaande code en open deze in Arduino IDE.
  • Klik op de Upload knop in de Arduino IDE om de code naar de ESP32 te uploaden.
  • Bedek en ontbedek de LDR lichtsensor module met uw hand of een ander object.
  • Bekijk het resultaat in de Serial 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  

Als u merkt dat de LED-status constant aan of uit blijft, ongeacht het lichtniveau, dan kunt u de potentiometer aanpassen. Hiermee stemt u de lichtgevoeligheid van de sensor nauwkeurig af.

Daarnaast kunt u de code aanpassen aan uw wensen. Bijvoorbeeld door een LED te laten branden of een lamp te laten aangaan wanneer licht wordt gedetecteerd. Ook kunt u een servomotor laten draaien. Gedetailleerde instructies en tutorials over deze aanpassingen vindt u aan het einde van deze handleiding.

ESP32 Code - Waarde lezen van AO pin

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); }

Snelle Stappen

  • Kopieer de bovenstaande code en open deze in Arduino IDE.
  • Klik op de Upload knop in Arduino IDE om de code naar ESP32 te uploaden.
  • Bedek en ontbedek de LDR lichtsensor module met uw hand of een ander object.
  • Bekijk het resultaat in de Serial 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:

Deze tutorial maakt gebruik van de analoge functie analogRead() om waarden te lezen vanaf een ADC (Analog-to-Digital Converter) die is verbonden met de LDR module. De ESP32 ADC is geschikt voor projecten die GEEN hoge nauwkeurigheid vereisen. Houd er echter rekening mee bij projecten die precieze metingen nodig hebben:

  • De ESP32 ADC is niet perfect accuraat en kan kalibratie vereisen voor correcte resultaten. Elk ESP32 board kan iets verschillen, dus uw ADC moet per board gekalibreerd worden.
  • Kalibratie kan lastig zijn, vooral voor beginners, en geeft niet altijd exact de gewenste resultaten.

Voor projecten die hoge precisie vereisen, overweeg het gebruik van een externe ADC (bijv. ADS1115) samen met de ESP32, of gebruik een Arduino, die een betrouwbaardere ADC heeft. Wilt u toch de ESP32 ADC kalibreren, raadpleeg dan de ESP32 ADC Calibration Driver.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en laat u stap-voor-stap zien hoe u de LDR lichtsensor module met ESP32 verbindt en programmeert.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!