Szukaj kodu

Samouczek ESP32 22/55 - Wykrywanie światła za pomocą diody LED Arduino | Zestaw edukacyjny IoT ESP32 od SunFounder

Samouczek ESP32 22/55 - Wykrywanie światła za pomocą diody LED Arduino | Zestaw edukacyjny IoT ESP32 od SunFounder

W tym samouczku odkryjemy, jak używać fotorezystora (LDR) z mikrokontrolerem ESP32 do pomiaru natężenia światła. Odczytując rezystancję LDR, możemy wyzwalać akcje, takie jak włączanie brzęczyka, gdy poziom światła przekroczy określony próg. Ten projekt zademonstruje interakcję między poziomami światła a możliwościami odczytu analogowego ESP32, pozwalając nam tworzyć responsywne aplikacje oparte na świetle otoczenia. (na filmie o 5:30)

Wyjaśnienie sprzętu

Główne komponenty, których użyjemy w tym projekcie, to mikrokontroler ESP32, fotorezystor (LDR) oraz rezystor 10 kΩ. LDR zmienia swoją rezystancję w zależności od natężenia światła padającego na jego powierzchnię: więcej światła powoduje niższą rezystancję, podczas gdy mniej światła powoduje wyższą rezystancję. Ta właściwość pozwala nam mierzyć zmienne poziomy światła poprzez podłączenie LDR w konfiguracji dzielnika napięcia z rezystorem.

Mikrokontroler ESP32 ma wbudowaną łączność Wi-Fi i Bluetooth, co czyni go idealnym do projektów IoT. Posiada kilka pinów analogowych, które mogą odczytywać zmienne poziomy napięcia, które wykorzystamy do monitorowania napięcia na LDR. To napięcie zostanie przekształcone na wartość analogową, którą ESP32 może przetworzyć i użyć do wyzwalania akcji, takich jak aktywacja brzęczyka.

Szczegóły z karty katalogowej

ProducentEspressif Systems
Numer częściESP32
Napięcie logiki/IO3,3 V
Napięcie zasilania3,0 - 3,6 V
Prąd wyjściowy (na GPIO)maks. 40 mA
Zalecana częstotliwość PWM1 kHz - 40 kHz
Progi logiki wejściowejWysoki: min. 2,0 V, Niski: maks. 0,8 V
Spadek napięcia / RDS(on) / nasyceniemaks. 0,3 V
Limity termiczne-40 °C do 125 °C
ObudowaQFN48
Uwagi / wariantyObsługuje wiele protokołów Wi-Fi i Bluetooth

  • Użyj rezystora 10 kΩ połączonego szeregowo z LDR do dzielenia napięcia.
  • Upewnij się, że ESP32 jest zasilany napięciem 3,3 V, aby uniknąć uszkodzeń.
  • Podłącz LDR i rezystor prawidłowo, aby zmierzyć natężenie światła.
  • W razie potrzeby użyj kondensatora do odsprzęgania, aby ustabilizować zasilanie.
  • Sprawdź wartości odczytu analogowego, aby upewnić się, że mieszczą się w oczekiwanych zakresach.

Instrukcje dotyczące okablowania

ESP32-22_light_sensor-wiring

Aby podłączyć LDR i rezystor do ESP32, zacznij od podłączenia jednego zacisku LDR do pinu zasilania 3,3 V na ESP32. Drugi zacisk LDR należy podłączyć do jednego zacisku rezystora 10 kΩ. Podłącz drugi zacisk rezystora do masy.

Następnie podłącz przewód połączeniowy od punktu połączenia między LDR a rezystorem do pinu 35 na ESP32. Ta konfiguracja tworzy dzielnik napięcia, pozwalając ESP32 odczytywać zmienne napięcie w zależności od natężenia światła padającego na LDR. Upewnij się, że wszystkie połączenia są pewne, a LDR jest umieszczony w miejscu, w którym może dokładnie wykrywać zmiany światła.

Przykłady kodu i omówienie

W kodzie zaczynamy od inicjalizacji komunikacji szeregowej w celu monitorowania odczytów z LDR. Kluczowym identyfikatorem jest tutaj analogValue, który przechowuje odczyt z pinu 35.

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

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

Ten fragment kodu inicjalizuje monitor szeregowy z szybkością transmisji 115200 i w sposób ciągły odczytuje wartość analogową z pinu 35. Wartość jest drukowana na monitorze szeregowym, co pozwala nam obserwować, jak zmienia się wraz ze zmiennymi poziomami światła.

Gdy zmienia się natężenie światła, zmienia się rezystancja LDR, a tym samym napięcie odczytywane przez ESP32 również się zmieni, odzwierciedlając warunki oświetleniowe (na filmie o 12:45).

Demonstracja / Czego się spodziewać

Podczas uruchamiania programu i obserwowania monitora szeregowego powinieneś zobaczyć, jak ADC analog value zmienia się w zależności od warunków oświetlenia otoczenia. Gdy zakryjesz LDR, wartość powinna wzrosnąć, wskazując na wyższą rezystancję, podczas gdy wystawienie go na jasne światło powinno znacznie obniżyć wartość. Takie zachowanie można wykorzystać do wyzwalania brzęczyka lub dowolnej innej akcji na podstawie wcześniej zdefiniowanych progów.

Jeśli odczyty nie zmieniają się zgodnie z oczekiwaniami, sprawdź problemy z okablowaniem, upewnij się, że LDR nie jest w stanie pływającym, i potwierdź, że ESP32 jest prawidłowo zasilany. Pomoże to uniknąć typowych pułapek i zapewni płynne działanie (na filmie o 15:30).

Znaczniki czasu wideo

  • 00:00 Start
  • 1:48 Wprowadzenie do LDR
  • 8:33 Wyjaśnienie okablowania
  • 11:07 Wyjaśnienie kodu Arduino
  • 13:07 Wybór płytki ESP32 i portu COM w Arduino IDE
  • 14:49 Demonstracja odczytu wartości
  • 17:24 Zrozumienie wartości dnia i nocy
  • 18:47 Wartość DAC i odczyt napięcia

Obrazy

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
Język: 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
}

Zasoby i odniesienia

Pliki📁

Brak dostępnych plików.