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 dijela
Infracrveni senzor za izbjegavanje prepreka
Radni napon
3,3 V - 5 V
Tip izlaza
Digitalni (nisko stanje kada se otkrije prepreka)
Opseg detekcije
Do 20 cm
Vrijeme odziva
Manje od 10 ms
Pakovanje
Modul
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.
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).
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
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);
}