Od svetlobe odvisen upor – senzor LDR z ESP32 z uporabo Arduino IDE

Od Svetlobe Odvisen Upor Senzor Ldr Z Esp32 Z Uporabo Arduino Ide



ESP32 je zmogljiv mikrokrmilnik, opremljen s funkcijami za IoT. ESP32 z LDR lahko meri jakost svetlobe in glede na to sproži odziv. Z uporabo ESP32 in LDR lahko ustvarimo projekt, ki temelji na oddaljenem zaznavanju svetlobe, in oblikujemo vrsto inovativnih rešitev IoT za različne industrije in aplikacije.

V tem priročniku bodo zajete osnove LDR in njegovih aplikacij z ESP32.







1: Uvod v senzor LDR



2: Aplikacije LDR z ESP32



3: Povezovanje LDR z ESP32 z uporabo Arduino IDE





Zaključek

1: Uvod v senzor LDR

A L prav D odvisen R esistor (LDR) je vrsta upora, ki spreminja svoj upor glede na intenzivnost svetlobe, ki ji je izpostavljen. V temi je njegova odpornost zelo visoka, pri močni svetlobi pa zelo nizka. Ta sprememba odpornosti je najboljša za projekte zaznavanja svetlobe.




Analogni zatiči ESP32 pretvorijo vhodne napetosti v celo število med 0 in 4095. Ta celoštevilska vrednost je preslikana proti analogni vhodni napetosti od 0 V do 3,3 V, kar je privzeto referenčna napetost ADC v ESP32. Ta vrednost se prebere z uporabo Arduina analogRead() funkcijo iz LDR.

Za nadaljnji podroben vodnik in ADC pinout ESP32 preberite članek ESP32 ADC – Branje analognih vrednosti z Arduino IDE .


ESP32 ima vgrajen analogno-digitalni pretvornik (ADC), ki lahko meri napetost na LDR in jo pretvori v digitalni signal, ki ga lahko obdela mikrokrmilnik. S pomočjo tega signala ESP32 določi upor LDR, ki je sorazmeren z jakostjo svetlobe.

Tukaj bomo uporabili zatiče ESP32 ADC kanala 1.


Fotoni ali svetlobni delci igrajo ključno vlogo pri delovanju LDR. Ko svetloba pade na površino LDR, material absorbira fotone, ki nato sprostijo elektrone v materialu. Število prostih elektronov je neposredno sorazmerno z intenzivnostjo svetlobe in več elektronov se sprosti, nižji postane upor LDR.

2: Aplikacije LDR z ESP32

Sledi seznam nekaterih aplikacij LDR z ESP32, ki temeljijo na IoT:

    • Stikalo, ki se aktivira s svetlobo
    • Indikator stopnje svetlobe
    • Nočni način v napravah
    • Svetlobni varnostni sistemi
    • Pametni sistemi razsvetljave
    • Svetlobno občutljivi varnostni sistemi
    • Monitoring rastlin
    • Energijsko učinkovita razsvetljava
    • Avtomatske žaluzije

3: Povezovanje LDR z ESP32 z uporabo Arduino IDE

Za uporabo LDR z ESP32 moramo povezati LDR z zatičem kanala ADC ESP32. Po tem je potrebna koda Arduino, ki bo prebrala analogne vrednosti iz izhodnega pina LDR. Za oblikovanje tega vezja potrebujemo LDR, upor in ploščo ESP32.

LDR in upor sta povezana zaporedno, pri čemer je LDR priključen na analogni kanal 1 vhodni pin ESP32. V vezje bo dodana LED, ki bo lahko preizkusila delovanje LDR.

3.1: Shema

Shema vezja za povezovanje LDR z ESP32 je precej preprosta. Priključiti moramo LDR in upor v konfiguracijo napetostnega delilnika in povezati izhod napetostnega delilnika z zatičem ADC (analogno-digitalni pretvornik) ESP32. ADC kanal 1 pin D34 se uporablja kot analogni vhod za ESP32.

Naslednja slika je shema ESP32 s senzorjem LDR.

3.2: Koda

Ko je vezje nastavljeno, je naslednji korak pisanje kode za ESP32. Koda bo prebrala analogni vhod iz LDR in ga uporabila za krmiljenje LED ali druge naprave na podlagi različnih ravni svetlobe.

int LDR_Val = 0 ; /* Spremenljivka za shranjevanje vrednosti fotoupora */
int senzor = 3. 4 ; /* Analogni vhod za fotoupor */
int LED = 25 ; /* LED izhod Pin */
nastavitev praznine ( ) {
Serial.begin ( 9600 ) ; /* Hitrost prenosa za serijsko komunikacijo */
    pinMode ( led, IZH ) ; /* LED Pin set kot izhod */
}
prazna zanka ( ) {
LDR_Val = analogno branje ( senzor ) ; /* Analogni prebrati vrednost LDR */
Serijski.natis ( 'Izhodna vrednost LDR: ' ) ;
Serial.println ( LDR_Val ) ; /* Prikažite izhodno vrednost LDR na serijskem monitorju */
če ( LDR_Val > 100 ) { /* Če je intenzivnost svetlobe VISOKA */
Serial.println ( 'Visoka intenzivnost' ) ;
digitalWrite ( led,NIZKA ) ; /* LED ostane IZKLOPLJENA */
}
drugače {
/* drugače če Intenzivnost svetlobe je NIZKA. LED bo ostal VKLOPLJEN */
Serial.println ( 'NIZKA intenzivnost' ) ;
digitalWrite ( LED, VISOKA ) ; /* Vrednost LED VKLOP LDR je manj kot 100 */
}
zamuda ( 1000 ) ; /* Prebere vrednost po vsakem 1 sek */
}


V zgornji kodi uporabljamo LDR z ESP32, ki bo nadzoroval LED z uporabo analognega vhoda, ki prihaja iz LDR.

Prve tri vrstice kode deklarirajo spremenljivke za shranjevanje vrednost fotoupora , the analogni zatič za fotoupor in LED izhodni zatič.

V nastaviti() funkcija, se serijska komunikacija sproži s hitrostjo prenosa 9600 baud in LED pin D25 je nastavljen kot izhod.

V zanka() se vrednost fotoupora prebere s funkcijo analogRead(), ki je shranjena v LDR_Val spremenljivka. Vrednost fotoupora se nato prikaže na serijskem monitorju s funkcijo Serial.println().

An če potem Izjava se uporablja za krmiljenje LED na podlagi jakosti svetlobe, ki jo zazna fotoupor. Če je vrednost fotoupora večja od 100, to pomeni, da je jakost svetlobe VISOKA, LED pa ostane IZKLOPLJENA. Če pa je vrednost fotoupora manjša ali enaka 100, to pomeni, da je jakost svetlobe NIZKA in lučka LED zasveti.

Na koncu program počaka 1 sekundo z uporabo funkcije delay(), preden ponovno prebere vrednost fotoupora. Ta cikel se ponavlja v nedogled, tako da se LED dioda VKLOPI in IZKLOPI glede na jakost svetlobe, ki jo zazna fotoupor.

3.3: Izhod pri zatemnjeni svetlobi

Intenzivnost svetlobe je manjša od 100, zato bo LED svetila.

3.4: Izhod pri močni svetlobi

Ko se intenzivnost svetlobe poveča, se bo vrednost LDR povečala, upor LDR pa zmanjšal, zato se bo LED IZKLOPIL.

Zaključek

LDR je mogoče povezati z ESP32 z uporabo zatiča ADC kanala 1. Izhod LDR lahko nadzoruje zaznavanje svetlobe v različnih aplikacijah. S svojo nizko ceno in kompaktno velikostjo sta ESP32 in LDR privlačna izbira za IoT projekte, ki zahtevajo zmožnosti zaznavanja svetlobe. Uporaba Arduina analogRead() lahko beremo vrednosti iz LDR.