Rezistor dependent de lumină – Senzor LDR cu ESP32 folosind Arduino IDE

Rezistor Dependent De Lumina Senzor Ldr Cu Esp32 Folosind Arduino Ide



ESP32 este un microcontroler puternic echipat cu funcții pentru IoT. ESP32 cu LDR poate măsura intensitatea luminii și poate declanșa răspunsul în funcție de acesta. Folosind ESP32 și un LDR, putem crea un proiect bazat pe teledetecție a luminii și putem proiecta o varietate de soluții IoT inovatoare pentru diverse industrii și aplicații.

În acest ghid, vor fi acoperite elementele de bază ale LDR și aplicațiile sale cu ESP32.







1: Introducere în senzorul LDR



2: Aplicații LDR cu ESP32



3: Interfața LDR cu ESP32 folosind Arduino IDE





Concluzie

1: Introducere în senzorul LDR

A L ight D dependentă R esistorul (LDR) este un tip de rezistor care își modifică rezistența în funcție de intensitatea luminii la care este expus. În întuneric, rezistența sa este foarte mare, în timp ce la lumină puternică rezistența sa este foarte scăzută. Această schimbare a rezistenței îl face cel mai bun pentru proiectele de detectare a luminii.




Pinii analogici ESP32 convertesc tensiunile de intrare la un număr întreg între 0 și 4095. Această valoare întregă este mapată cu tensiunea de intrare analogică de la 0V la 3,3V, care este implicit tensiunea de referință ADC în ESP32. Această valoare este citită folosind Arduino analogRead() funcția de la LDR.

Pentru un ghid mai detaliat și pinout ADC al ESP32, citiți articolul ESP32 ADC – Citiți valori analogice cu Arduino IDE .


ESP32 are un convertor analog-digital (ADC) încorporat care poate măsura tensiunea pe LDR și o poate transforma într-un semnal digital care poate fi procesat de microcontroler. Folosind acest semnal ESP32 determină rezistența LDR, care este proporțională cu intensitatea luminii.

Aici vom folosi pinii canalului 1 ESP32 ADC.


Fotonii sau particulele de lumină joacă un rol crucial în funcționarea LDR-urilor. Când lumina cade pe suprafața unui LDR, fotonii sunt absorbiți de material, care apoi eliberează electroni în material. Numărul de electroni liberi este direct proporțional cu intensitatea luminii și cu cât sunt mai mulți electroni eliberați, cu atât rezistența LDR-ului devine mai mică.

2: Aplicații LDR cu ESP32

Mai jos este lista unor aplicații bazate pe IoT ale LDR cu ESP32:

    • Comutator activat de lumină
    • Indicator de nivel de lumină
    • Modul de noapte în dispozitive
    • Sisteme de securitate bazate pe lumină
    • Sisteme inteligente de iluminat
    • Sisteme de securitate sensibile la lumină
    • Monitorizarea plantelor
    • Iluminat eficient din punct de vedere energetic
    • Jaluzele automate

3: Interfața LDR cu ESP32 folosind Arduino IDE

Pentru a utiliza un LDR cu ESP32, trebuie să conectăm LDR-ul cu un pin de canal ADC ESP32. După aceea, este necesar un cod Arduino care va citi valori analogice din pinul de ieșire LDR. Pentru a proiecta acest circuit, avem nevoie de LDR, un rezistor și placa ESP32.

LDR-ul și rezistența sunt conectate în serie, cu LDR-ul conectat la canalul analogic 1 pinul de intrare al ESP32. La circuit va fi adăugat un LED care poate testa funcționarea LDR.

3.1: Schemă

Schema circuitului pentru interfațarea LDR cu ESP32 este destul de simplă. Trebuie să conectăm LDR și un rezistor într-o configurație de divizor de tensiune și să conectăm ieșirea divizorului de tensiune la pinul ADC (convertor analog-digital) al ESP32. Canalul ADC 1 pin D34 este utilizat ca intrare analogică pentru ESP32.

Următoarea imagine este schema ESP32 cu senzor LDR.

3.2: Cod

Odată ce circuitul a fost configurat, următorul pas este să scrieți codul pentru ESP32. Codul va citi intrarea analogică de la LDR și o va folosi pentru a controla un LED sau alt dispozitiv pe baza diferitelor niveluri de lumină.

int LDR_Val = 0 ; /* Variabilă pentru a stoca valoarea fotorezistorului */
int senzor = 3. 4 ; /* Intrare analogică pentru fotorezistor */
int LED = 25 ; /* Pin de ieșire LED */
anulează configurarea ( ) {
Serial.begin ( 9600 ) ; /* Rata baud pentru comunicare în serie */
    pinMode ( led, IEȘIRE ) ; /* Pin LED a stabilit la fel de ieșire */
}
buclă goală ( ) {
LDR_Val = analogRead ( senzor ) ; /* Analogic citit Valoarea LDR */
Serial.print ( 'Valoare de ieșire LDR: ' ) ;
Serial.println ( LDR_Val ) ; /* Afișați valoarea de ieșire LDR pe monitorul serial */
dacă ( LDR_Val > 100 ) { /* Dacă intensitatea luminii este MARE */
Serial.println ( ' Intensitate mare ' ) ;
digitalWrite ( led, JOS ) ; /* LED-ul rămâne stins */
}
altfel {
/* Altfel dacă Intensitatea luminii este LOW LED-ul va rămâne aprins */
Serial.println ( 'Intensitate scăzută ' ) ;
digitalWrite ( led, ÎNALT ) ; /* LED Pornire Valoarea LDR este Mai puțin decât 100 */
}
întârziere ( 1000 ) ; /* Citește valoarea după fiecare 1 sec */
}


În codul de mai sus folosim un LDR cu ESP32 care va controla LED-ul folosind intrarea analogică venită de la LDR.

Primele trei linii de cod declară variabile pentru a stoca valoarea fotorezistorului , cel pin analogic pentru fotorezistor și LED pin de ieșire.

În înființat() Funcție, comunicarea serială este inițiată cu o viteză de transmisie de 9600 și pinul LED D25 este setat ca ieșire.

În buclă() funcția, valoarea fotorezistorului este citită folosind funcția analogRead(), care este stocată în LDR_Val variabil. Valoarea fotorezistorului este apoi afișată pe monitorul serial utilizând funcția Serial.println().

Un dacă-altfel declarația este utilizată pentru a controla LED-ul pe baza intensității luminii detectate de fotorezistor. Dacă valoarea fotorezistorului este mai mare de 100, înseamnă că intensitatea luminii este MARE, iar LED-ul rămâne stins. Cu toate acestea, dacă valoarea fotorezistorului este mai mică sau egală cu 100, înseamnă că intensitatea luminii este Scăzută și LED-ul se aprinde.

În cele din urmă, programul așteaptă 1 secundă folosind funcția delay() înainte de a citi din nou valoarea fotorezistorului. Acest ciclu se repetă la infinit, făcând LED-ul să se aprindă și să se stingă în funcție de intensitatea luminii detectată de fotorezistor.

3.3: Ieșire sub lumină slabă

Intensitatea luminii este mai mică de 100, așa că LED-ul va rămâne aprins.

3.4: Ieșire în lumină puternică

Pe măsură ce intensitatea luminii crește, valoarea LDR va crește și rezistența LDR va scădea, astfel încât LED-ul se va stinge.

Concluzie

LDR-ul poate fi interfațat cu ESP32 folosind pinul canalului ADC 1. Ieșirea LDR poate controla detectarea luminii în diverse aplicații. Cu costul redus și dimensiunea compactă, ESP32 și LDR reprezintă o alegere atractivă pentru proiectele IoT care necesită capacități de detectare a luminii. Folosind Arduino analogRead() funcție putem citi valori din LDR.