Во ова упатство, ќе истражиме како да користиме светлосно зависен отпорник (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
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
}
Disclosure: As an Amazon Associate, we earn from qualifying purchases. This means we may receive a small commission if you click a link and make a purchase at no extra cost to you.