Пребарување код

ESP32 Упатство 19/55 - Детектирање препрека со помош на инфрацрвен сензор | SunFounder's ESP32 IoT Learning kit

ESP32 Упатство 19/55 - Детектирање препрека со помош на инфрацрвен сензор | SunFounder's ESP32 IoT Learning kit

Во ова упатство, ќе научиме како да користиме инфрацрвен сензор за избегнување пречки со 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 да ја чита излезната состојба на сензорот.

void setup() {
  Serial.begin(115200);  
  pinMode(avoidPin, INPUT);
}

Во функцијата за јамка, континуирано ја читаме излезната состојба на сензорот користејќи digitalRead(avoidPin) и ја чуваме вредноста во avoidState. Оваа вредност потоа се печати на серискиот монитор, што ни овозможува да видиме кога е детектирана пречка (излезот ќе биде 0) или не (излезот ќе биде 1).

void loop() {
  avoidState = digitalRead(avoidPin);
  Serial.println(avoidState);
}

За целосниот код, ве молиме погледнете го делот за вчитување подолу во статијата.

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

Кога поставката е завршена и кодот е поставен, треба да видите дека серискиот монитор прикажува или 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 Користење на зумер кога е детектирана пречка

Слики

ESP32-19-obstacle_voide-schematic
ESP32-19-obstacle_voide-schematic
ESP32-19-obstacle_voide-wiring
ESP32-19-obstacle_voide-wiring
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);
}

Ресурси и референци

Датотеки📁

Нема достапни датотеки.