Search Code

ESP32 Упатство 22/55 - Чувствување на светлината користејќи LED Arduino | SunFounder's ESP32 IoT комплет за учење

ESP32 Упатство 22/55 - Чувствување на светлината користејќи LED Arduino | SunFounder's ESP32 IoT комплет за учење

Во ова упатство, ќе истражиме како да користиме светлосно зависен отпорник (LDR) со ESP32 микроконтролерот за мерење на интензитетот на светлината. Со читање на отпорноста на LDR-от, можеме да активираме дејства, како што е вклучување на зумер кога нивото на светлина ќе надмине одреден праг. Овој проект ќе ја демонстрира интеракцијата помеѓу нивоата на светлина и аналогните можности за читање на ESP32, овозможувајќи ни да креираме одговорни апликации базирани на амбиентална светлина. (во видео на 5:30)

Објаснување на хардверот

Главните компоненти што ќе ги користиме во овој проект вклучуваат ESP32 микроконтролер, LDR и отпорник од 10 kΩ. LDR-от ја менува својата отпорност врз основа на интензитетот на светлината што удира на неговата површина: повеќе светлина резултира со помала отпорност, додека помалку светлина резултира со поголема отпорност. Ова својство ни овозможува да мериме различни нивоа на светлина со поврзување на LDR-от во конфигурација на делител на напон со отпорникот.

ESP32 микроконтролерот има вградени Wi-Fi и Bluetooth, што го прави идеален за IoT проекти. Има неколку аналогни пинови што можат да читаат различни нивоа на напон, кои ќе ги искористиме за следење на напонот низ LDR-от. Овој напон ќе биде претворен во аналогна вредност што ESP32 може да ја обработи и да ја користи за активирање на дејства како вклучување на зумер.

Детали од техничката документација

ПроизводителEspressif Systems
Број на делESP32
Логички/IO напон3.3 V
Напон на напојување3.0 - 3.6 V
Излезна струја (по GPIO)40 mA макс.
Насоки за PWM фреквенција1 kHz - 40 kHz
Праг на влезна логикаВисоко: 2.0 V мин., Ниско: 0.8 V макс.
Пад на напон / RDS(on) / заситување0.3 V макс.
Термички граници-40 °C до 125 °C
ПакетQFN48
Белешки / варијантиПоддржува повеќе Wi-Fi и Bluetooth протоколи

  • Користете отпорник од 10 kΩ во серија со LDR-от за поделба на напон.
  • Осигурете се дека ESP32 е напојуван со 3.3 V за да избегнете оштетување.
  • Поврзете го LDR-от и отпорникот правилно за мерење на интензитетот на светлината.
  • Користете кондензатор за раздвојување ако е потребно за стабилизирање на напојувањето.
  • Проверете ги аналогните вредности за читање за да се осигурате дека спаѓаат во очекуваните опсези.

Инструкции за поврзување

ESP32-22_light_sensor-wiring

За да го поврзете LDR-от и отпорникот со ESP32, започнете со поврзување на еден терминал од LDR-от на 3.3 V пинот за напојување на ESP32. Другиот терминал од LDR-от треба да биде поврзан со еден терминал од отпорникот од 10 kΩ. Поврзете го другиот терминал од отпорникот со земјата.

Потоа, поврзете жица за скок од точката на спој помеѓу LDR-от и отпорникот до пинот 35 на ESP32. Оваа поставка создава делител на напон, овозможувајќи му на ESP32 да го чита променливиот напон врз основа на интензитетот на светлината што удира на LDR-от. Осигурете се дека сите врски се безбедни и дека LDR-от е поставен таму каде што може точно да ги почувствува промените на светлината.

Примери на код и објаснување

Во кодот, започнуваме со иницијализирање на сериска комуникација за следење на читањата од LDR-от. Клучниот идентификатор овде е analogValue, кој ја складира вредноста од пинот 35.

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

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

Овој фрагмент од код го иницијализира серискиот монитор со брзина на пренос од 115200 и континуирано ја чита аналогната вредност од пинот 35. Вредноста се печати на серискиот монитор, што ни овозможува да набљудуваме како се менува со различни нивоа на светлина.

Кога интензитетот на светлината се менува, отпорноста на LDR-от варира, и со тоа напонот што го чита ESP32 исто така ќе се менува, одразувајќи ги условите на светлина (во видео на 12:45).

Демонстрација / Што да очекувате

Додека ја извршувате програмата и го набљудувате серискиот монитор, треба да видите дека ADC analog value флуктуира врз основа на условите на амбиентална светлина. Кога ќе го покриете LDR-от, вредноста треба да се зголеми, што укажува на поголема отпорност, додека изложувањето на силна светлина треба значително да ја намали вредноста. Ова однесување може да се користи за активирање на зумер или било кое друго дејство врз основа на однапред дефинирани прагови.

Ако читањата не се менуваат како што се очекува, проверете ги проблемите со поврзувањето, осигурете се дека LDR-от не е „лебдечки“ и потврдете дека ESP32 е правилно напојуван. Ова ќе помогне да се спречат вообичаени грешки и да се обезбеди непречено работење (во видео на 15:30).

Временски ознаки од видеото

  • 00:00 Почеток
  • 1:48 Вовед во LDR
  • 8:33 Објаснување на поврзувањето
  • 11:07 Објаснување на Arduino кодот
  • 13:07 Избор на ESP32 плоча и COM порт во Arduino IDE
  • 14:49 Демонстрација на читање на вредноста
  • 17:24 Разбирање на вредноста за ден и ноќ
  • 18:47 DAC вредност и читање на напон

Images

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
Language: 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
}

Resources & references

Files📁

No files available.