Hľadať kód

Výukový program ESP32 19/55 - Detekcia prekážky pomocou infračerveného senzora | SunFounder's ESP32 IoT Learning kit

Výukový program ESP32 19/55 - Detekcia prekážky pomocou infračerveného senzora | SunFounder's ESP32 IoT Learning kit

V tomto návode sa naučíme, ako použiť infračervený senzor na detekciu prekážok s modulom ESP32. Tento projekt ukáže, ako môže senzor spustiť bzučiak, keď sa zistí prekážka. Zapojenie tiež zobrazí stav detekcie na sériovom monitore, čo poskytne jasný a interaktívny spôsob pozorovania funkčnosti senzora.

Budeme pracovať so SunFounder ESP32 IoT Learning Kit, ktorý obsahuje mikrokontrolér ESP32 s podporou Wi-Fi a Bluetooth. Infračervený senzor funguje tak, že vysiela infračervené svetlo, ktoré sa odrazí od blízkych prekážok. Keď sa svetlo odrazí späť, senzor spustí výstupný signál, ktorý prečítame v našom kóde. Zahrnieme aj bzučiak, ktorý sa aktivuje pri zistení prekážky a poskytne zvukový signál.

Vysvetlenie hardvéru

Hlavné komponenty tohto projektu zahŕňajú modul ESP32, infračervený senzor na detekciu prekážok a bzučiak. Modul ESP32 slúži ako centrálna procesorová jednotka, ktorá spracováva vstupy zo senzorov a riadi výstupy. Môže byť napájaný lítiovou batériou, vďaka čomu je prenosný a flexibilný pre rôzne aplikácie.

Infračervený senzor na detekciu prekážok pozostáva z vysielača a prijímača. Vysielač emituje infračervené svetlo, zatiaľ čo prijímač deteguje odrazené svetlo od blízkych objektov. Keď je prítomná prekážka, výstupný pin senzora prejde do nízkej úrovne, čo signalizuje ESP32, aby konal, napríklad zapol bzučiak.

Podrobnosti z datasheetu

VýrobcaSunFounder
Číslo dieluInfračervený senzor na detekciu prekážok
Prevádzkové napätie3,3 V - 5 V
Typ výstupuDigitálny (nízka úroveň pri zistení prekážky)
Rozsah detekcieAž 20 cm
Čas odozvyMenej ako 10 ms
BalenieModul

  • Napájanie: 3,3 V až 5 V pre prevádzku.
  • Výstupný signál prejde do nízkej úrovne, keď sa zistí prekážka.
  • Nastaviteľná citlivosť pomocou potenciometra.
  • Typický rozsah detekcie je až 20 cm.
  • Rýchla odozva pod 10 ms.

Pokyny na zapojenie

ESP32-19-obstacle_voide-wiring

Na zapojenie infračerveného senzora na detekciu prekážok k ESP32 začnite pripojením pinu VCC senzora na pin 5V na ESP32. Potom pripojte pin GND senzora na jeden z pinov GND na ESP32. Nakoniec pripojte pin OUT senzora na GPIO pin 14 na ESP32.

Pre bzučiak pripojte záporný terminál na GND a kladný terminál na GPIO pin 27. Uistite sa, že všetky spojenia sú pevné a že je senzor správne napájaný. Zapojenie by malo byť jednoduché, pretože senzor a bzučiak vyžadujú iba jednoduché napájacie a signálové pripojenia.

Príklady kódu a vysvetlenie

V kóde najprv definujeme pin pripojený k senzoru na detekciu prekážok. Toto sa vykoná pomocou identifikátora avoidPin nastaveného na 14. Tiež deklarujeme premennú avoidState na uchovanie výstupného stavu senzora.

const int avoidPin = 14;  // číslo pinu modulu na detekciu prekážok

int avoidState = 0;

Vo funkcii setup inicializujeme sériovú komunikáciu a nastavíme avoidPin ako vstup. To umožňuje ESP32 čítať výstupný stav senzora.

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

Vo funkcii loop nepretržite čítame výstup senzora pomocou digitalRead(avoidPin) a ukladáme výsledok do avoidState. Táto hodnota sa potom vytlačí na sériový monitor, čo nám umožní vidieť, kedy je zistená prekážka (výstup bude 0) alebo nie (výstup bude 1).

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

Pre úplný kód sa prosím pozrite na časť s načítaním nižšie v článku.

Demonštrácia / Čo očakávať

Keď je zapojenie dokončené a kód je nahraný, mali by ste vidieť na sériovom monitore zobrazenú hodnotu 0 alebo 1 v závislosti od toho, či je zistená prekážka. Keď je prekážka v rozsahu detekcie, výstup bude 0 a bzučiak zaznie. Ak sa prekážka odstráni, výstup bude 1 a bzučiak sa zastaví. Táto funkčnosť je demonštrovaná vo videu (vo videu o 12:30).

Bežné problémy môžu zahŕňať nesprávne zapojenie, ktoré by mohlo viesť k nesprávnemu fungovaniu senzora, alebo nesprávnu prenosovú rýchlosť na sériovom monitore, čo bráni presnému zobrazeniu údajov. Ak narazíte na problémy, skontrolujte tieto aspekty.

Časové značky videa

  • 00:00 Začiatok
  • 1:57 Predstavenie projektu
  • 4:33 Zapojenie senzora na detekciu prekážok
  • 5:55 Arduino kód pre detekciu prekážok
  • 7:36 Výber dosky ESP32 a COM portu v Arduino IDE
  • 9:18 Demonštrácia projektu
  • 10:42 Nastavenie citlivosti a zväčšenie rozsahu
  • 12:39 Vykonanie akcie pri zistení prekážky
  • 14:24 Použitie bzučiaka pri zistení prekážky

Obrázky

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

Zdroje a referencie

Súbory📁

Žiadne súbory nie sú k dispozícii.