Fényfüggő ellenállás – LDR érzékelő ESP32-vel Arduino IDE használatával

Fenyfuggo Ellenallas Ldr Erzekelo Esp32 Vel Arduino Ide Hasznalataval



Az ESP32 egy nagy teljesítményű mikrokontroller, amely az IoT funkcióival van felszerelve. Az ESP32 LDR-rel képes mérni a fényintenzitást és ennek megfelelően kiváltani. Az ESP32 és egy LDR segítségével távfényérzékelésen alapuló projektet hozhatunk létre, és számos innovatív IoT-megoldást tervezhetünk különféle iparágak és alkalmazások számára.

Ebben az útmutatóban az LDR és alkalmazásai az ESP32-vel kapcsolatos alapjairól lesz szó.







1: Az LDR érzékelő bemutatása



2: LDR alkalmazásai ESP32-vel



3: LDR interfész az ESP32-vel Arduino IDE használatával





Következtetés

1: Az LDR érzékelő bemutatása

A L ight D függő R Az esistor (LDR) egy olyan típusú ellenállás, amely az általa kitett fény intenzitása alapján változtatja ellenállását. Sötétben az ellenállása nagyon nagy, míg erős fényben nagyon alacsony. Ez az ellenállásváltozás teszi a legjobban a fényérzékelő projektekhez.




Az ESP32 analóg érintkezői a bejövő feszültségeket 0 és 4095 közötti egész számokká alakítják. Ez az egész érték a 0 V és 3,3 V közötti analóg bemeneti feszültséghez van leképezve, amely alapértelmezés szerint az ESP32 ADC referenciafeszültsége. Ezt az értéket az Arduino segítségével olvassuk ki analógRead() funkció az LDR-ből.

További részletes útmutatóért és az ESP32 ADC kivezetéséért olvassa el a cikket ESP32 ADC – Analóg értékek olvasása Arduino IDE-vel .


Az ESP32 beépített analóg-digitális konverterrel (ADC) rendelkezik, amely képes mérni a feszültséget az LDR-en, és digitális jellé alakítani, amelyet a mikrokontroller képes feldolgozni. Ezzel a jellel az ESP32 meghatározza az LDR ellenállását, amely arányos a fény intenzitásával.

Itt az ESP32 ADC 1. csatorna érintkezőit fogjuk használni.


A fotonok vagy fényrészecskék döntő szerepet játszanak az LDR-ek működésében. Amikor a fény az LDR felületére esik, az anyag fotonokat nyel el, ami azután elektronokat szabadít fel az anyagban. A szabad elektronok száma egyenesen arányos a fény intenzitásával, és minél több elektron szabadul fel, annál kisebb lesz az LDR ellenállása.

2: LDR alkalmazásai ESP32-vel

Az alábbiakban felsoroljuk az LDR néhány IoT-alapú alkalmazását az ESP32-vel:

    • Fénnyel aktivált kapcsoló
    • Fényszint jelző
    • Éjszakai mód az eszközökben
    • Fényalapú biztonsági rendszerek
    • Intelligens világítási rendszerek
    • Fényérzékeny biztonsági rendszerek
    • Növényfelügyelet
    • Energiatakarékos világítás
    • Automatizált redőnyök

3: LDR interfész az ESP32-vel Arduino IDE használatával

Ahhoz, hogy LDR-t használjunk az ESP32-vel, csatlakoztatnunk kell az LDR-t egy ESP32 ADC csatorna érintkezőhöz. Ezt követően Arduino kódra van szükség, amely kiolvassa az analóg értékeket az LDR kimeneti lábáról. Ennek az áramkörnek a megtervezéséhez LDR-re, ellenállásra és ESP32 kártyára van szükségünk.

Az LDR és az ellenállás sorba van kötve, az LDR pedig a analóg csatorna 1 ESP32 bemeneti érintkezője. Egy LED-et adnak az áramkörhöz, amely tesztelheti az LDR működését.

3.1: Sematikus

Az LDR ESP32-vel való összekapcsolásának kapcsolási rajza meglehetősen egyszerű. Csatlakoztatnunk kell az LDR-t és egy ellenállást feszültségosztó konfigurációban, és a feszültségosztó kimenetét az ESP32 ADC (analóg-digitális átalakító) érintkezőjéhez kell csatlakoztatnunk. Az 1. ADC csatorna D34 tűje az ESP32 analóg bemenete.

A következő képen az ESP32 vázlata látható LDR érzékelővel.

3.2: Kód

Az áramkör beállítása után a következő lépés az ESP32 kódjának megírása. A kód beolvassa az LDR analóg bemenetét, és arra használja, hogy LED-et vagy más eszközt vezéreljen a különböző fényszintek alapján.

int LDR_Val = 0 ; /* Változó a fotoellenállás értékének tárolására */
int érzékelő = 3. 4 ; /* Analóg bemenet számára fotoellenállás */
int vezette = 25 ; /* LED kimenet Pin */
üres beállítás ( ) {
Serial.begin ( 9600 ) ; /* Átviteli sebesség számára soros kommunikáció */
    pinMode ( led, OUTPUT ) ; /* LED Pin készlet mint Kimenet */
}
üres hurok ( ) {
LDR_Val = analogRead ( érzékelő ) ; /* Analóg olvas LDR érték */
Serial.print ( 'LDR kimeneti érték: ' ) ;
Serial.println ( LDR_Val ) ; /* Az LDR kimeneti érték megjelenítése a soros monitoron */
ha ( LDR_Val > 100 ) { /* Ha a fény intenzitása MAGAS */
Serial.println ( ' Magas intenzitás ' ) ;
digitalWrite ( led, LOW ) ; /* A LED KIkapcsolva marad */
}
más {
/* Más ha A fény intenzitása ALACSONY A LED BEkapcsolva marad */
Serial.println ( 'Alacsony intenzitás ' ) ;
digitalWrite ( led, HIGH ) ; /* LED Kapcsolja be az LDR értéke Kevésbé mint 100 */
}
késleltetés ( 1000 ) ; /* Minden után kiolvassa az értéket 1 mp */
}


A fenti kódban egy LDR-t használunk ESP32-vel, amely az LDR-ből érkező analóg bemeneten keresztül vezérli a LED-et.

A kód első három sora változókat deklarál a tárolására fotoellenállás értéke , a analóg tű a fotoellenálláshoz, és a VEZETTE kimeneti tű.

Ban,-ben beállít() funkció esetén a soros kommunikáció 9600-as adatátviteli sebességgel indul, és a D25-ös LED-tű kimenetként van beállítva.

Ban,-ben hurok() függvény, a fotoellenállás értékét az analógRead() függvény segítségével olvassuk ki, amely a LDR_Val változó. A fotoellenállás értéke ezután megjelenik a soros monitoron a Serial.println() függvény segítségével.

An ha más utasítás a LED vezérlésére szolgál a fotoellenállás által észlelt fényintenzitás alapján. Ha a fotoellenállás értéke nagyobb, mint 100, az azt jelenti, hogy a fény intenzitása MAGAS, és a LED nem világít. Ha azonban a fotoellenállás értéke kisebb vagy egyenlő, mint 100, az azt jelenti, hogy a fény intenzitása ALACSONY, és a LED világít.

Végül a program a delay() függvény használatával vár 1 másodpercet, mielőtt újra kiolvassa a fotoellenállás értékét. Ez a ciklus korlátlan ideig ismétlődik, így a LED be- és kikapcsol a fotoellenállás által észlelt fényintenzitás alapján.

3.3: Kimenet gyenge fény mellett

A fény intenzitása kevesebb, mint 100, így a LED világít.

3.4: Kimenet Bright Light alatt

A fényintenzitás növekedésével az LDR érték nő, az LDR ellenállás pedig csökken, így a LED kialszik.

Következtetés

Az LDR csatlakoztatható az ESP32-höz az ADC 1. csatorna tűjével. Az LDR kimenet különféle alkalmazásokban képes szabályozni a fényérzékelést. Alacsony költségével és kompakt méretével az ESP32 és az LDR vonzó választást jelent a fényérzékelő képességet igénylő IoT-projektekhez. Az Arduino használata analógRead() függvény értékét olvashatjuk ki az LDR-ből.