Otpornik ovisan o svjetlu – LDR senzor s ESP32 pomoću Arduino IDE

Otpornik Ovisan O Svjetlu Ldr Senzor S Esp32 Pomocu Arduino Ide



ESP32 je snažan mikrokontroler opremljen značajkama za IoT. ESP32 s LDR-om može mjeriti intenzitet svjetla i pokrenuti odgovor u skladu s njim. Korištenjem ESP32 i LDR-a možemo stvoriti projekt temeljen na daljinskom senzoru svjetlosti i dizajnirati niz inovativnih IoT rješenja za razne industrije i primjene.

U ovom će se vodiču pokriti osnove LDR-a i njegove primjene s ESP32.







1: Uvod u LDR senzor



2: Primjene LDR-a s ESP32



3: Povezivanje LDR-a s ESP32 pomoću Arduino IDE





Zaključak

1: Uvod u LDR senzor

A L dobro D ovisan R esistor (LDR) je vrsta otpornika koji mijenja svoj otpor ovisno o intenzitetu svjetlosti kojoj je izložen. U mraku je njegova otpornost vrlo visoka, dok je pri jakom svjetlu vrlo niska. Ova promjena otpora čini ga najboljim za projekte senzora svjetlosti.




Analogni pinovi ESP32 pretvaraju dolazne napone u cijeli broj između 0 i 4095. Ova vrijednost cijelog broja preslikava se na analogni ulazni napon od 0 V do 3,3 V, što je prema zadanim postavkama ADC referentni napon u ESP32. Ova se vrijednost očitava pomoću Arduina analogRead() funkcija iz LDR-a.

Za daljnji detaljan vodič i ADC pinout ESP32 pročitajte članak ESP32 ADC – čitanje analognih vrijednosti s Arduino IDE .


ESP32 ima ugrađeni analogno-digitalni pretvarač (ADC) koji može mjeriti napon preko LDR-a i pretvoriti ga u digitalni signal koji može obraditi mikrokontroler. Pomoću ovog signala ESP32 određuje otpor LDR-a, koji je proporcionalan intenzitetu svjetla.

Ovdje ćemo koristiti pinove ESP32 ADC kanala 1.


Fotoni ili svjetlosne čestice igraju ključnu ulogu u radu LDR-a. Kada svjetlost padne na površinu LDR-a, materijal apsorbira fotone, koji zatim oslobađaju elektrone u materijalu. Broj slobodnih elektrona izravno je proporcionalan intenzitetu svjetlosti, a što se više elektrona oslobodi, to je otpor LDR-a manji.

2: Primjene LDR-a s ESP32

Slijedi popis nekih aplikacija baziranih na IoT-u LDR-a s ESP32:

    • Prekidač koji se aktivira svjetlom
    • Indikator razine svjetla
    • Noćni način rada u uređajima
    • Sigurnosni sustavi temeljeni na svjetlu
    • Pametni sustavi rasvjete
    • Sigurnosni sustavi osjetljivi na svjetlo
    • Monitoring postrojenja
    • Energetski učinkovita rasvjeta
    • Automatske rolete za prozore

3: Povezivanje LDR-a s ESP32 pomoću Arduino IDE

Za korištenje LDR-a s ESP32 moramo spojiti LDR s pinom ESP32 ADC kanala. Nakon toga potreban je Arduino kod koji će čitati analogne vrijednosti s LDR izlaznog pina. Da bismo dizajnirali ovaj krug, trebamo LDR, otpornik i ESP32 ploču.

LDR i otpornik spojeni su u seriju, pri čemu je LDR spojen na analogni kanal 1 ulazni pin ESP32. U krug će biti dodan LED koji može testirati rad LDR-a.

3.1: Shema

Dijagram strujnog kruga za povezivanje LDR-a s ESP32 prilično je jednostavan. Moramo spojiti LDR i otpornik u konfiguraciju razdjelnika napona i spojiti izlaz razdjelnika napona na ADC (Analogno-digitalni pretvarač) pin ESP32. ADC kanal 1 pin D34 koristi se kao analogni ulaz za ESP32.

Sljedeća slika je shema ESP32 s LDR senzorom.

3.2: Kod

Nakon što je sklop postavljen, sljedeći korak je pisanje koda za ESP32. Kod će očitati analogni ulaz iz LDR-a i koristiti ga za kontrolu LED ili drugog uređaja na temelju različitih razina svjetla.

int LDR_Val = 0 ; /* Varijabla za pohranu vrijednosti fotootpornika */
int senzor = 3. 4 ; /* Analogni ulaz za fotootpornik */
int vodio = 25 ; /* LED izlaz Pin */
void setup ( ) {
Serijski.početi ( 9600 ) ; /* Brzina prijenosa podataka za serijska komunikacija */
    pinMode ( led, IZLAZ ) ; /* LED Pin postaviti kao izlaz */
}
void petlja ( ) {
LDR_Val = analogRead ( senzor ) ; /* Analog čitati LDR vrijednost */
Serijski.ispis ( 'LDR izlazna vrijednost: ' ) ;
Serijski.println ( LDR_Val ) ; /* Prikaz LDR izlazne vrijednosti na serijskom monitoru */
ako ( LDR_Val > 100 ) { /* Ako je intenzitet svjetla VISOK */
Serijski.println ( ' Visok intenzitet ' ) ;
digitalWrite ( LED, NISKO ) ; /* LED ostaje isključen */
}
drugo {
/* Drugo ako Intenzitet svjetla je NIZAK LED će ostati UKLJUČEN */
Serijski.println ( 'NISKI intenzitet' ) ;
digitalWrite ( LED, VISOKO ) ; /* LED Turn ON LDR vrijednost je manje od 100 */
}
odgoditi ( 1000 ) ; /* Čita vrijednost nakon svakog 1 sek */
}


U gornjem kodu koristimo LDR s ESP32 koji će kontrolirati LED pomoću analognog ulaza koji dolazi iz LDR-a.

Prva tri retka koda deklariraju varijable za pohranu vrijednost fotootpora , the analogni pin za fotootpornik i LED izlazni pin.

u postaviti() funkciju, serijska komunikacija se pokreće s brzinom prijenosa od 9600 bauda i LED pin D25 postavljen je kao izlaz.

u petlja() vrijednost fotootpornika očitava se pomoću funkcije analogRead(), koja je pohranjena u LDR_Val varijabla. Vrijednost fotootpornika zatim se prikazuje na serijskom monitoru pomoću funkcije Serial.println().

An ako-drugače Izjava se koristi za upravljanje LED-om na temelju intenziteta svjetlosti koju detektira fotootpornik. Ako je vrijednost fotootpornika veća od 100, to znači da je intenzitet svjetla VISOK, a LED dioda ostaje UGAŠENA. Međutim, ako je vrijednost fotootpornika manja ili jednaka 100, to znači da je intenzitet svjetla NIZAK i LED se uključuje.

Na kraju, program čeka 1 sekundu koristeći funkciju delay() prije ponovnog očitavanja vrijednosti fotootpornika. Ovaj se ciklus ponavlja beskonačno, čineći LED paljenjem i gašenjem na temelju intenziteta svjetla koje detektira fotootpornik.

3.3: Izlaz pod prigušenim svjetlom

Intenzitet svjetla je manji od 100 pa će LED ostati UKLJUČEN.

3.4: Izlaz pod jakim svjetlom

Kako se intenzitet svjetla povećava, vrijednost LDR-a će se povećati, a otpor LDR-a će se smanjiti pa će se LED isključiti.

Zaključak

LDR se može povezati s ESP32 pomoću pina ADC kanala 1. LDR izlaz može kontrolirati senzor svjetlosti u raznim aplikacijama. Sa svojom niskom cijenom i kompaktnom veličinom, ESP32 i LDR čine atraktivan izbor za IoT projekte koji zahtijevaju mogućnosti senzora svjetlosti. Korištenje Arduina analogRead() možemo čitati vrijednosti iz LDR-a.