Hľadať kód

Návod na ESP32 22/55 – Snímanie svetla pomocou LED Arduina | SunFounderova ESP32 IoT výučbová súprava

Návod na ESP32 22/55 – Snímanie svetla pomocou LED Arduina | SunFounderova ESP32 IoT výučbová súprava

V tomto návode si ukážeme, ako použiť svetelne závislý rezistor (LDR) s mikrokontrolérom ESP32 na meranie intenzity svetla. Čítaním odporu LDR môžeme spúšťať akcie, napríklad zapnúť bzučiak, keď úroveň svetla prekročí určitú hranicu. Tento projekt demonštruje interakciu medzi úrovňami svetla a schopnosťami ESP32 čítať analógové hodnoty, čo nám umožňuje vytvárať aplikácie reagujúce na okolité svetlo. (vo videu o 5:30)

Vysvetlenie hardvéru

Hlavné komponenty, ktoré použijeme v tomto projekte, zahŕňajú mikrokontrolér ESP32, LDR a 10 kΩ rezistor. LDR mení svoj odpor na základe intenzity svetla dopadajúceho na jeho povrch: viac svetla znamená nižší odpor, zatiaľ čo menej svetla znamená vyšší odpor. Táto vlastnosť nám umožňuje merať rôzne úrovne svetla zapojením LDR do deliča napätia s rezistorom.

Mikrokontrolér ESP32 má vstavané Wi-Fi a Bluetooth, vďaka čomu je ideálny pre IoT projekty. Má niekoľko analógových pinov, ktoré dokážu čítať rôzne úrovne napätia, čo využijeme na monitorovanie napätia na LDR. Toto napätie sa prevedie na analógovú hodnotu, ktorú ESP32 spracuje a použije na spúšťanie akcií, ako je aktivácia bzučiaka.

Podrobnosti z datasheetu

VýrobcaEspressif Systems
Označenie súčiastkyESP32
Logické/IO napätie3,3 V
Napájacie napätie3,0 - 3,6 V
Výstupný prúd (na GPIO)max. 40 mA
Odporúčaná frekvencia PWM1 kHz - 40 kHz
Logické vstupné prahyVysoká: min. 2,0 V, Nízka: max. 0,8 V
Úbytok napätia / RDS(on) / saturáciamax. 0,3 V
Tepelné limity-40 °C až 125 °C
PuzdroQFN48
Poznámky / variantyPodporuje viacero Wi-Fi a Bluetooth protokolov

  • Použite 10 kΩ rezistor v sérii s LDR na delenie napätia.
  • Uistite sa, že ESP32 je napájaný 3,3 V, aby nedošlo k poškodeniu.
  • Pripojte LDR a rezistor správne na meranie intenzity svetla.
  • V prípade potreby použite kondenzátor na oddelenie napájania na stabilizáciu zdroja.
  • Skontrolujte hodnoty analógového čítania, aby ste sa uistili, že spadajú do očakávaných rozsahov.

Pokyny na zapojenie

ESP32-22_light_sensor-wiring

Na zapojenie LDR a rezistora k ESP32 začnite pripojením jedného vývodu LDR na 3,3 V napájací pin na ESP32. Druhý vývod LDR by mal byť pripojený k jednému vývodu 10 kΩ rezistora. Druhý vývod rezistora pripojte na zem.

Ďalej pripojte prepojovací vodič z bodu spojenia medzi LDR a rezistorom na pin 35 na ESP32. Toto zapojenie vytvára delič napätia, ktorý umožňuje ESP32 čítať meniace sa napätie na základe intenzity svetla dopadajúceho na LDR. Uistite sa, že všetky spojenia sú pevné a že LDR je umiestnený tak, aby mohol presne snímať zmeny svetla.

Príklady kódu a vysvetlenie

V kóde začneme inicializáciou sériovej komunikácie na monitorovanie hodnôt z LDR. Kľúčovým identifikátorom je tu analogValue, ktorý ukladá hodnotu z pinu 35.

void setup() {
  Serial.begin(115200);
}

void loop() {
  int analogValue = analogRead(35);
  Serial.printf("ADC analog value = %d\n",analogValue);
  delay(100);
}

Tento úryvok kódu inicializuje sériový monitor pri prenosovej rýchlosti 115200 a nepretržite číta analógovú hodnotu z pinu 35. Hodnota sa vypíše na sériový monitor, čo nám umožňuje pozorovať, ako sa mení s rôznymi úrovňami svetla.

Keď sa zmení intenzita svetla, odpor LDR sa mení, a teda sa mení aj napätie čítané ESP32, čo odráža svetelné podmienky (vo videu o 12:45).

Demonštrácia / Čo očakávať

Keď spustíte program a pozorujete sériový monitor, mali by ste vidieť, ako sa ADC analog value mení na základe podmienok okolitého svetla. Keď zakryjete LDR, hodnota by sa mala zvýšiť, čo indikuje vyšší odpor, zatiaľ čo vystavenie jasnému svetlu by malo hodnotu výrazne znížiť. Toto správanie možno použiť na spustenie bzučiaka alebo akejkoľvek inej akcie na základe vopred definovaných prahov.

Ak sa hodnoty nemenia podľa očakávania, skontrolujte zapojenie, uistite sa, že LDR nie je voľný, a potvrďte, že ESP32 je správne napájaný. To pomôže predísť bežným chybám a zabezpečí plynulú prevádzku (vo videu o 15:30).

Časové značky videa

  • 00:00 Začiatok
  • 1:48 Úvod k LDR
  • 8:33 Vysvetlenie zapojenia
  • 11:07 Vysvetlenie kódu v Arduine
  • 13:07 Výber dosky ESP32 a COM portu v Arduino IDE
  • 14:49 Demonštrácia čítania hodnoty
  • 17:24 Pochopenie hodnôt deň a noc
  • 18:47 DAC hodnota a čítanie napätia

Obrázky

ESP32-22_light_sensor
ESP32-22_light_sensor
ESP32-22_light_sensor-wiring
ESP32-22_light_sensor-wiring
821-ESP32 Tutorial 22/55- Arduino code for Light dependant resistor
Jazyk: C++

void setup() {
  // initialize serial communication at 115200 bits per second:
  Serial.begin(115200);

}

void loop() {
  // read the analog value
  int analogValue = analogRead(35);
  
  // print out the values you read:
  Serial.printf("ADC analog value = %d\n",analogValue);
  
  delay(100);  // delay in between reads for clear read from serial
}

Zdroje a referencie

Súbory📁

Žiadne súbory nie sú k dispozícii.