Бұл оқулықта біз ESP32 микроконтроллерімен жарыққа тәуелді резисторды (LDR) қолданып, жарық қарқындылығын қалай өлшеуге болатынын қарастырамыз. LDR кедергісін оқу арқылы біз әрекеттерді іске қоса аламыз, мысалы, жарық деңгейі белгілі бір шектен асқанда дыбыстық сигналды қосу. Бұл жоба жарық деңгейлері мен ESP32 аналогтық оқу мүмкіндіктері арасындағы өзара әрекеттесуді көрсетеді, бұл бізге қоршаған орта жарығына негізделген жауап беретін қосымшаларды жасауға мүмкіндік береді. (бейнеде 5:30)
Аппараттық құралдар түсіндірмесі
Бұл жобада қолданатын негізгі компоненттерге ESP32 микроконтроллері, LDR және 10 кΩ резистор кіреді. LDR өз бетіне түсетін жарық қарқындылығына байланысты кедергісін өзгертеді: көбірек жарық төмен кедергіге әкеледі, ал аз жарық жоғары кедергіге әкеледі. Бұл қасиет бізге LDR-ді резистормен кернеу бөлгіш конфигурациясында қосу арқылы әртүрлі жарық деңгейлерін өлшеуге мүмкіндік береді.
ESP32 микроконтроллері кірістірілген Wi-Fi және Bluetooth мүмкіндіктеріне ие, бұл оны IoT жобалары үшін өте қолайлы етеді. Оның әртүрлі кернеу деңгейлерін оқи алатын бірнеше аналогтық түйреуіштері бар, біз оларды LDR бойындағы кернеуді бақылау үшін қолданамыз. Бұл кернеу ESP32 өңдей алатын және дыбыстық сигналды іске қосу сияқты әрекеттерді орындау үшін қолданатын аналогтық мәнге түрлендіріледі.
Деректер парағының мәліметтері
Өндіруші
Espressif Systems
Бөлшек нөмірі
ESP32
Логика/IO кернеуі
3.3 В
Қоректендіру кернеуі
3.0 - 3.6 В
Шығыс тогы (әр GPIO үшін)
40 мА макс
PWM жиілігі бойынша нұсқау
1 кГц - 40 кГц
Кіріс логикалық шектері
Жоғары: 2.0 В мин, Төмен: 0.8 В макс
Кернеу төмендеуі / RDS(on) / қанығу
0.3 В макс
Жылулық шектер
-40 °C - 125 °C
Қаптама
QFN48
Ескертулер / нұсқалар
Бірнеше Wi-Fi және Bluetooth протоколдарын қолдайды
Кернеу бөлу үшін LDR-мен тізбектей 10 кΩ резисторды қолданыңыз.
Зақымдануды болдырмау үшін ESP32-ні 3.3 В кернеуімен қоректендіріңіз.
Жарық қарқындылығын өлшеу үшін LDR мен резисторды дұрыс қосыңыз.
Қоректендіруді тұрақтандыру үшін қажет болса, конденсаторды қолданыңыз.
Аналогтық оқу мәндерінің күтілетін диапазондарға сәйкес келетінін тексеріңіз.
Сымды қосу нұсқаулары
ESP32-22_light_sensor-wiring
LDR мен резисторды ESP32-ге қосу үшін, алдымен LDR-дің бір терминалын ESP32-дегі 3.3 В қоректендіру түйреуішіне қосыңыз. LDR-дің екінші терминалы 10 кΩ резистордың бір терминалына қосылуы керек. Резистордың екінші терминалын жерге қосыңыз.
Әрі қарай, LDR мен резистор арасындағы түйісу нүктесінен ESP32-дегі 35 түйреуішіне секіргіш сымды қосыңыз. Бұл қондырғы кернеу бөлгішін жасайды, бұл 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 Arduino IDE-де ESP32 платасын және COM портын таңдау
821-ESP32 Tutorial 22/55- Arduino code for Light dependant resistor
Тіл: 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
}
Ашықтық: Amazon серіктесі ретінде біз біліктілікке сай сатып алулардан табыс табамыз. Бұл сіз сілтемені басып, сатып алсаңыз, сізге қосымша шығынсыз кішкентай комиссия алатын болуымызды білдіреді.