Lysavhengig motstand – LDR-sensor med ESP32 som bruker Arduino IDE

Lysavhengig Motstand Ldr Sensor Med Esp32 Som Bruker Arduino Ide



ESP32 er en kraftig mikrokontroller utstyrt med funksjoner for IoT. ESP32 med LDR kan måle lysintensitet og utløse respons i henhold til den. Ved å bruke ESP32 og en LDR kan vi lage et fjernlyssensorbasert prosjekt og designe en rekke innovative IoT-løsninger for ulike bransjer og applikasjoner.

I denne veiledningen vil det grunnleggende om LDR og dets applikasjoner med ESP32 bli dekket.







1: Introduksjon til LDR-sensor



2: Applikasjoner av LDR med ESP32



3: Grensesnitt LDR med ESP32 ved hjelp av Arduino IDE





Konklusjon

1: Introduksjon til LDR-sensor

EN L rett D avhengig R esistor (LDR) er en type motstand som endrer motstanden basert på lysintensiteten den utsettes for. I mørke er motstanden svært høy, mens motstanden i sterkt lys er svært lav. Denne endringen i motstand gjør den best for lysregistreringsprosjekter.




De analoge ESP32-pinnene konverterer de innkommende spenningene til et heltall mellom 0 og 4095. Denne heltallsverdien er kartlagt mot den analoge inngangsspenningen fra 0V til 3,3V som som standard er ADC-referansespenningen i ESP32. Denne verdien leses ved hjelp av Arduino analogRead() funksjon fra LDR.

For ytterligere detaljert veiledning og ADC pinout av ESP32 les artikkelen ESP32 ADC – Les analoge verdier med Arduino IDE .


ESP32 har en innebygd analog-til-digital omformer (ADC) som kan måle spenningen over LDR og konvertere den til et digitalt signal som kan behandles av mikrokontrolleren. Ved å bruke dette signalet bestemmer ESP32 motstanden til LDR, som er proporsjonal med lysintensiteten.

Her skal vi bruke ESP32 ADC kanal 1 pinnene.


Fotoner eller lyspartikler spiller en avgjørende rolle i driften av LDR-er. Når lys faller på overflaten av en LDR, absorberes fotoner av materialet, som deretter frigjør elektroner i materialet. Antallet frie elektroner er direkte proporsjonalt med lysintensiteten, og jo flere elektroner som frigjøres, jo lavere blir motstanden til LDR.

2: Applikasjoner av LDR med ESP32

Følgende er listen over noen IoT-baserte applikasjoner av LDR med ESP32:

    • Lysaktivert bryter
    • Lysnivåindikator
    • Nattmodus i enheter
    • Lysbaserte sikkerhetssystemer
    • Smarte lyssystemer
    • Lysfølsomme sikkerhetssystemer
    • Anleggsovervåking
    • Energieffektiv belysning
    • Automatiserte persienner

3: Grensesnitt LDR med ESP32 ved hjelp av Arduino IDE

For å bruke en LDR med ESP32 må vi koble LDR med en ESP32 ADC kanalpinne. Etter det trengs Arduino-kode som vil lese analoge verdier fra LDR-utgangspinnen. For å designe denne kretsen trenger vi LDR, en motstand og ESP32-kortet.

LDR og motstand er koblet i serie, med LDR koblet til analog kanal 1 inngangspinne til ESP32. En LED vil bli lagt til kretsen som kan teste at LDR fungerer.

3.1: Skjematisk

Kretsskjemaet for grensesnitt mellom LDR og ESP32 er ganske enkelt. Vi må koble LDR og en motstand i en spenningsdelerkonfigurasjon og koble utgangen fra spenningsdeleren til ADC (Analog to Digital Converter) pinne på ESP32. ADC kanal 1 pin D34 brukes som en analog inngang for ESP32.

Følgende bilde er skjemaet av ESP32 med LDR-sensor.

3.2: Kode

Når kretsen er satt opp, er neste trinn å skrive koden for ESP32. Koden vil lese den analoge inngangen fra LDR og bruke den til å kontrollere en LED eller annen enhet basert på forskjellige lysnivåer.

int LDR_Val = 0 ; /* Variabel for å lagre fotoresistorverdi */
int sensor = 3. 4 ; /* Analog inngang til fotomotstand */
int ledet = 25 ; /* LED-utgang Pin */
ugyldig oppsett ( ) {
Serial.begin ( 9600 ) ; /* Baud rate til seriell kommunikasjon */
    pinMode ( ledet, OUTPUT ) ; /* LED-pinne sett som produksjon */
}
ugyldig sløyfe ( ) {
LDR_Val = analogLes ( sensor ) ; /* Analog lese LDR-verdi */
Serial.print ( 'LDR utgangsverdi: ' ) ;
Serial.println ( LDR_Val ) ; /* Vis LDR Output Val på seriell monitor */
hvis ( LDR_Val > 100 ) { /* Hvis lysintensiteten er HØY */
Serial.println ( ' Høy intensitet ' ) ;
digitalWrite ( ledet, LAVT ) ; /* LED forblir AV */
}
ellers {
/* Ellers hvis Lysintensiteten er LAV LED vil forbli PÅ */
Serial.println ( 'LAV intensitet' ) ;
digitalWrite ( ledet, HØY ) ; /* LED Slå PÅ LDR-verdien er mindre enn 100 */
}
forsinkelse ( 1000 ) ; /* Leser verdi etter hver 1 sek */
}


I koden ovenfor bruker vi en LDR med ESP32 som vil kontrollere LED ved å bruke den analoge inngangen som kommer fra LDR.

De tre første linjene med kode erklærer variabler som skal lagres fotoresistor verdi , den analog pinne for fotomotstanden, og LED utgangspinne.

I oppsett() funksjon, initieres den serielle kommunikasjonen med en overføringshastighet på 9600 og LED-pin D25 settes som utgang.

I Løkke() funksjon, leses fotomotstandsverdien ved å bruke analogRead()-funksjonen, som er lagret i LDR_Val variabel. Fotoresistorverdien vises deretter på den serielle monitoren ved hjelp av Serial.println()-funksjonen.

An hvis-annet statement brukes til å kontrollere lysdioden basert på lysintensiteten detektert av fotomotstanden. Hvis fotoresistorverdien er større enn 100, betyr det at lysintensiteten er HØY, og LED-en forblir AV. Imidlertid, hvis fotoresistorverdien er mindre enn eller lik 100, betyr det at lysintensiteten er LAV, og LED-en slås PÅ.

Til slutt venter programmet i 1 sekund ved å bruke delay()-funksjonen før du leser fotoresistorverdien igjen. Denne syklusen gjentas på ubestemt tid, noe som gjør at LED-en slås PÅ og AV basert på lysintensiteten detektert av fotomotstanden.

3.3: Utgang under svakt lys

Lysintensiteten er mindre enn 100, så LED vil forbli PÅ.

3.4: Utgang under sterkt lys

Etter hvert som lysintensiteten øker, vil LDR-verdien øke og LDR-motstanden reduseres slik at LED vil slå seg AV.

Konklusjon

LDR kan kobles til ESP32 ved å bruke ADC kanal 1 pin. LDR-utgangen kan kontrollere lysføling i ulike applikasjoner. Med sine lave kostnader og kompakte størrelse gjør ESP32 og LDR et attraktivt valg for IoT-prosjekter som krever lyssensorfunksjoner. Bruker Arduino analogRead() funksjon kan vi lese verdier fra LDR.