ESP32 - Lichtsensor
Deze handleiding legt uit hoe u de ESP32 gebruikt in combinatie met een lichtsensor. We leren in detail:
- Hoe een lichtsensor werkt.
- Hoe u een lichtsensor aansluit op de ESP32.
- Hoe u de ESP32 programmeert om de waarde van een lichtsensor uit te lezen.
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
De LDR-lichsensor is erg betaalbaar, maar vereist een weerstand voor de bedrading, wat de opstelling iets complexer kan maken. Om de bedrading te vereenvoudigen, kunt u als alternatief een LDR light sensor module gebruiken.
Over de Lichtsensor
De meest gebruikte lichtsensor is een fotoweerstand (ook bekend als photocell, of light-dependent resistor, LDR).
Deze kan worden gebruikt om de aanwezigheid van licht te detecteren. Daarnaast kan hij ook worden gebruikt om het verlichtingsniveau (helderheid) van het licht te meten.
Pinout van de Lichtsensor
Een lichtsensor heeft twee pennen/pinnen. Net als bij een normale weerstand hoeft u deze pinnen niet te onderscheiden voor aansluiting.

Hoe Werkt de Lichtsensor
De weerstand van de fotoweerstand is omgekeerd evenredig met de lichtintensiteit. Hoe minder licht er op de fotoweerstand valt, hoe hoger de weerstand van de fotoweerstand. Daarom kunnen we door de weerstand te meten afleiden hoe helder het omgevingslicht is.

WARNING
De waarde die door de fotoweerstand wordt gemeten geeft een benaderend beeld van de lichtintensiteit, maar vertegenwoordigt niet exact de lichtstroom (luminous flux). Daarom is de fotoweerstand niet geschikt voor toepassingen die hoge nauwkeurigheid vereisen. Voor bepaalde toepassingen is ook kalibratie noodzakelijk.
ESP32 - Lichtsensor
De analoge ingangspool van de ESP32 zet de spanning (tussen 0 V en ADC_VREF - standaard 3,3 V) om in gehele getallen (tussen 0 en 4095), ook wel analoge waarde of ADC-waarde genoemd. Door een analoge ingang van de ESP32 te verbinden met de fotoweerstand kunnen we de analoge waarde uitlezen met de functie analogRead().
Bedradingsschema tussen Lichtsensor en ESP32

This image is created using Fritzing. Click to enlarge image
ESP32 Code
De onderstaande ESP32-code leest de waarde van een lichtsensor uit en bepaalt op basis daarvan het lichtniveau.
Stapsgewijze Instructies
- Als u voor het eerst met ESP32 werkt, raadpleeg dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
- Kopieer bovenstaande code en plak deze in de Arduino IDE.
- Compileer en upload de code naar het ESP32-bord door op de Upload-knop in de Arduino IDE te klikken.
- Open de Seriële Monitor in de Arduino IDE.

- Schijn licht op de sensor.
- Bekijk het resultaat in de Seriële Monitor. Het ziet er ongeveer zo uit:
Lichtsensor en LED
Bedradingsschema

This image is created using Fritzing. Click to enlarge image
ESP32 Code
De onderstaande code zet de LED AAN als het donker is, en anders UIT.
※ Notiz:
Deze handleiding gebruikt de functie analogRead() om waarden van een ADC (Analog-to-Digital Converter) aangesloten op een lichtsensor uit te lezen. De ADC van de ESP32 is prima voor projecten die geen hoge nauwkeurigheid nodig hebben. Voor projecten die precieze metingen vereisen geldt:
- De ADC van de ESP32 is niet perfect nauwkeurig en kan kalibratie vereisen voor correcte resultaten. Elk ESP32-bord kan iets anders zijn, dus u moet de ADC per bord calibreren.
- Kalibratie kan lastig zijn, zeker voor beginners, en geeft niet altijd de exacte gewenste resultaten.
Voor projecten die hoge precisie nodig hebben, overweeg het gebruik van een externe ADC (bijv. ADS1115) in combinatie met de ESP32, of gebruik een Arduino, die doorgaans een betrouwbaardere ADC heeft. Wilt u toch de ADC van de ESP32 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 visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap.