Pretraži kod

ESP32 Tutorijal 19/55 - Detekcija prepreka pomoću infracrvenog senzora | SunFounder's ESP32 IoT Learning kit

ESP32 Tutorijal 19/55 - Detekcija prepreka pomoću infracrvenog senzora | SunFounder's ESP32 IoT Learning kit

U ovom tutorijalu naučit ćemo kako koristiti infracrveni senzor za izbjegavanje prepreka s ESP32 modulom za detekciju prepreka. Ovaj projekat će demonstrirati kako senzor može aktivirati zujalicu kada se otkrije prepreka. Postavka će također prikazati status detekcije na serijskom monitoru, pružajući jasan i interaktivan način za promatranje funkcionalnosti senzora.

Radit ćemo sa SunFounder ESP32 IoT Learning Kit kompletom, koji uključuje ESP32 mikrokontroler opremljen Wi-Fi i Bluetooth mogućnostima. Infracrveni senzor radi tako što šalje infracrveno svjetlo koje se odbija od obližnjih prepreka. Kada se svjetlo odbije nazad, senzor će aktivirati izlazni signal koji ćemo čitati u našem kodu. Također ćemo uključiti zujalicu koja se aktivira kada se otkrije prepreka, pružajući zvučno upozorenje.

Objašnjenje hardvera

Glavne komponente ovog projekta uključuju ESP32 modul, infracrveni senzor za izbjegavanje prepreka i zujalicu. ESP32 modul služi kao centralna procesna jedinica, obrađujući ulaze sa senzora i kontrolirajući izlaze. Može se napajati pomoću litijumske baterije, što ga čini prenosivim i fleksibilnim za različite primjene.

Infracrveni senzor za izbjegavanje prepreka sastoji se od predajnika i prijemnika. Predajnik emituje infracrveno svjetlo, dok prijemnik detektuje reflektovano svjetlo od obližnjih objekata. Kada je prepreka prisutna, izlazni pin senzora prelazi u nisko stanje, signalizirajući ESP32-u da poduzme akciju, kao što je uključivanje zujalice.

Detalji iz tehničke dokumentacije

ProizvođačSunFounder
Broj dijelaInfracrveni senzor za izbjegavanje prepreka
Radni napon3,3 V - 5 V
Tip izlazaDigitalni (nisko stanje kada se otkrije prepreka)
Opseg detekcijeDo 20 cm
Vrijeme odzivaManje od 10 ms
PakovanjeModul

  • Napajanje: 3,3 V do 5 V za rad.
  • Izlazni signal prelazi u nisko stanje kada se otkrije prepreka.
  • Podesiva osjetljivost putem potenciometra.
  • Tipičan opseg detekcije je do 20 cm.
  • Brzo vrijeme odziva ispod 10 ms.

Upute za povezivanje

ESP32-19-obstacle_voide-wiring

Za povezivanje infracrvenog senzora za izbjegavanje prepreka na ESP32, počnite spajanjem VCC pina senzora na 5V pin na ESP32. Zatim spojite GND pin senzora na jedan od GND pinova na ESP32. Na kraju, spojite OUT pin senzora na GPIO pin 14 na ESP32.

Za zujalicu, spojite negativni terminal na GND i pozitivni terminal na GPIO pin 27. Provjerite da su svi spojevi sigurni i da je senzor pravilno napajan. Povezivanje bi trebalo biti jednostavno, jer senzor i zujalica zahtijevaju samo jednostavne veze za napajanje i signal.

Primjeri koda i objašnjenje

U kodu prvo definiramo pin spojen na senzor za izbjegavanje prepreka. To se radi pomoću identifikatora avoidPin postavljenog na 14. Također deklariramo varijablu avoidState za pohranjivanje izlaznog stanja senzora.

const int avoidPin = 14;  // broj pina modula za izbjegavanje

int avoidState = 0;

U setup funkciji inicijaliziramo serijsku komunikaciju i postavljamo avoidPin kao ulaz. To omogućava ESP32-u da čita izlazno stanje senzora.

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

Unutar loop funkcije kontinuirano čitamo izlaz senzora pomoću digitalRead(avoidPin) i pohranjujemo rezultat u avoidState. Ova vrijednost se zatim ispisuje na serijski monitor, omogućavajući nam da vidimo kada je prepreka otkrivena (izlaz će biti 0) ili nije (izlaz će biti 1).

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

Za puni kod, molimo pogledajte odjeljak za učitavanje ispod članka.

Demonstracija / Šta očekivati

Kada je postavka završena i kod učitan, trebali biste vidjeti serijski monitor koji prikazuje ili 0 ili 1, ovisno o tome da li je prepreka otkrivena. Kada je prepreka unutar opsega detekcije, izlaz će čitati 0 i zujalica će se oglasiti. Ako se prepreka ukloni, izlaz će čitati 1 i zujalica će prestati. Ova funkcionalnost je demonstrirana u videu (u videu na 12:30).

Uobičajeni problemi mogu uključivati pogrešno povezivanje, što može dovesti do toga da senzor ne radi pravilno, ili neusklađene baud rate-ove na serijskom monitoru, što sprječava tačan prikaz podataka. Provjerite ove aspekte ako naiđete na probleme.

Vremenske oznake videa

  • 00:00 Početak
  • 1:57 Uvod u projekat
  • 4:33 Povezivanje senzora za izbjegavanje prepreka
  • 5:55 Arduino kod za izbjegavanje prepreka
  • 7:36 Odabir ESP32 ploče i COM porta u Arduino IDE
  • 9:18 Demonstracija projekta
  • 10:42 Podešavanje osjetljivosti i povećanje opsega
  • 12:39 Poduzimanje akcije kada se otkrije prepreka
  • 14:24 Korištenje zujalice kada se otkrije prepreka

Slike

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
Jezik: 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);
}

Resursi i reference

Datoteke📁

Nema dostupnih datoteka.