Во ова упатство, ќе научиме како да користиме инфрацрвен сензор за избегнување пречки со ESP32 модулот за да детектираме пречки. Овој проект ќе демонстрира како сензорот може да активира зумер кога ќе се детектира пречка. Поставката исто така ќе го прикажува статусот на детекција на серискиот монитор, обезбедувајќи јасен и интерактивен начин за набљудување на функционалноста на сензорот.
Ќе работиме со SunFounder ESP32 IoT Learning Kit, кој вклучува ESP32 микроконтролер опремен со Wi-Fi и Bluetooth можности. Инфрацрвениот сензор работи така што испраќа инфрацрвена светлина, која ќе се одбие од блиските пречки. Кога светлината ќе се врати, сензорот ќе активира излезен сигнал кој ќе го читаме во нашиот код. Исто така, ќе вклучиме зумер кој се активира кога ќе се детектира пречка, обезбедувајќи звучно предупредување.
Објаснување на хардверот
Главните компоненти на овој проект вклучуваат ESP32 модул, инфрацрвен сензор за избегнување пречки и зумер. ESP32 модулот служи како централна процесорска единица, обработувајќи ги влезовите од сензорот и контролирајќи ги излезите. Може да се напојува со литиумска батерија, што го прави пренослив и флексибилен за различни апликации.
Инфрацрвениот сензор за избегнување пречки се состои од предавател и приемник. Предавателот емитува инфрацрвена светлина, додека приемникот детектира рефлектирана светлина од блиските објекти. Кога е присутна пречка, излезниот пин на сензорот оди на ниско ниво, сигнализирајќи му на ESP32 да преземе акција, како што е вклучување на зумерот.
Детали од техничката спецификација
Производител
SunFounder
Број на дел
Инфрацрвен сензор за избегнување пречки
Работен напон
3.3 V - 5 V
Тип на излез
Дигитален (Ниско ниво кога е детектирана пречка)
Опсег на детекција
До 20 cm
Време на одговор
Помалку од 10 ms
Пакет
Модул
Напојување: 3.3 V до 5 V за работа.
Излезниот сигнал оди на ниско ниво кога е детектирана пречка.
Прилагодлива чувствителност преку потенциометар.
Типичен опсег на детекција е до 20 cm.
Брзо време на одговор под 10 ms.
Инструкции за поврзување
ESP32-19-obstacle_voide-wiring
За да го поврзете инфрацрвениот сензор за избегнување пречки со ESP32, започнете со поврзување на VCC пинот на сензорот со 5V пинот на ESP32. Потоа, поврзете го GND пинот на сензорот со еден од GND пиновите на ESP32. Конечно, поврзете го OUT пинот на сензорот со GPIO пин 14 на ESP32.
За зумерот, поврзете го негативниот терминал со GND, а позитивниот терминал со GPIO пин 27. Осигурете се дека сите врски се безбедни и дека сензорот е правилно напојуван. Поврзувањето треба да биде едноставно, бидејќи сензорот и зумерот бараат само едноставни врски за напојување и сигнал.
Примери на код и објаснување
Во кодот, прво го дефинираме пинот поврзан со сензорот за избегнување пречки. Ова се прави со користење на идентификаторот avoidPin поставен на 14. Исто така, декларираме променлива avoidState за да ја чуваме излезната состојба на сензорот.
const int avoidPin = 14; // бројот на пинот на модулот за избегнување
int avoidState = 0;
Во функцијата за поставување, ја иницијализираме сериската комуникација и го поставуваме avoidPin како влез. Ова му овозможува на ESP32 да ја чита излезната состојба на сензорот.
Во функцијата за јамка, континуирано ја читаме излезната состојба на сензорот користејќи digitalRead(avoidPin) и ја чуваме вредноста во avoidState. Оваа вредност потоа се печати на серискиот монитор, што ни овозможува да видиме кога е детектирана пречка (излезот ќе биде 0) или не (излезот ќе биде 1).
За целосниот код, ве молиме погледнете го делот за вчитување подолу во статијата.
Демонстрација / Што да очекувате
Кога поставката е завршена и кодот е поставен, треба да видите дека серискиот монитор прикажува или 0 или 1 во зависност од тоа дали е детектирана пречка. Кога пречка е во опсегот на детекција, излезот ќе чита 0, и зумерот ќе звучи. Ако пречката се отстрани, излезот ќе чита 1, и зумерот ќе престане. Оваа функционалност е демонстрирана во видеото (во видеото на 12:30).
Вообичаени проблеми може да вклучуваат неточно поврзување, што може да доведе до неправилно функционирање на сензорот, или неусогласени брзини на пренос на серискиот монитор, што спречува точно прикажување на податоците. Проверете ги овие аспекти ако наидете на проблеми.
Временски ознаки на видеото
00:00 Почеток
1:57 Вовед во проектот
4:33 Поврзување за избегнување пречки
5:55 Arduino код за избегнување пречки
7:36 Избор на ESP32 плоча и COM порт во Arduino IDE
9:18 Демонстрација на проектот
10:42 Прилагодување на чувствителноста и зголемување на опсегот
12:39 Преземање акција кога е детектирана пречка
14:24 Користење на зумер кога е детектирана пречка
818-ESP32 Tutorial 19/55- Arduino code for obstacle avoidance module
Јазик: C++
// set pin
const int avoidPin = 14; // the number of the avoid avoid module pin
// variable for storing the avoid status
int avoidState = 0;
void setup() {
Serial.begin(115200);
// initialize the avoid pin as an input
pinMode(avoidPin, INPUT);
}
void loop() {
// read the state of the avoid value
avoidState = digitalRead(avoidPin);
Serial.println(avoidState);
}