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ó.
3: LDR interfész az ESP32-vel Arduino IDE használatával
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.