Caută cod

Tutorial ESP32 19/55 - Detectarea obstacolelor folosind senzorul cu infraroșu | Kitul de învățare IoT ESP32 de la SunFounder

Tutorial ESP32 19/55 - Detectarea obstacolelor folosind senzorul cu infraroșu | Kitul de învățare IoT ESP32 de la SunFounder

În acest tutorial, vom învăța cum să folosim un senzor infraroșu de evitare a obstacolelor cu modulul ESP32 pentru a detecta obstacole. Acest proiect va demonstra cum senzorul poate declanșa un buzzer atunci când este detectat un obstacol. Configurația va afișa, de asemenea, starea detecției pe monitorul serial, oferind o modalitate clară și interactivă de a observa funcționalitatea senzorului.

Vom lucra cu SunFounder ESP32 IoT Learning Kit, care include microcontrolerul ESP32 echipat cu capacități Wi-Fi și Bluetooth. Senzorul infraroșu funcționează prin trimiterea de lumină infraroșie, care se va reflecta de obstacolele din apropiere. Când lumina este reflectată înapoi, senzorul va declanșa un semnal de ieșire pe care îl vom citi în codul nostru. Vom include, de asemenea, un buzzer care se activează atunci când este detectat un obstacol, oferind o alertă sonoră.

Hardware Explicat

Componentele principale ale acestui proiect includ modulul ESP32, senzorul infraroșu de evitare a obstacolelor și un buzzer. Modulul ESP32 servește ca unitate centrală de procesare, gestionând intrările senzorului și controlând ieșirile. Poate fi alimentat folosind o baterie cu litiu, făcându-l portabil și flexibil pentru diverse aplicații.

Senzorul infraroșu de evitare a obstacolelor constă dintr-un emițător și un receptor. Emițătorul emite lumină infraroșie, în timp ce receptorul detectează lumina reflectată de obiectele din apropiere. Când este prezent un obstacol, pinul de ieșire al senzorului devine LOW, semnalând ESP32-ului să ia măsuri, cum ar fi activarea buzzer-ului.

Detalii din Fișa Tehnică

ProducătorSunFounder
Număr de piesăSenzor infraroșu de evitare a obstacolelor
Tensiune de operare3,3 V - 5 V
Tip de ieșireDigital (LOW când este detectat un obstacol)
Rază de detecțiePână la 20 cm
Timp de răspunsMai puțin de 10 ms
PachetModul

  • Alimentare: 3,3 V până la 5 V pentru funcționare.
  • Semnul de ieșire devine LOW când este detectat un obstacol.
  • Sensibilitate reglabilă prin potențiometru.
  • Raza tipică de detecție este de până la 20 cm.
  • Timp de răspuns rapid sub 10 ms.

Instrucțiuni de Cablare

ESP32-19-obstacle_voide-wiring

Pentru a cabla senzorul infraroșu de evitare a obstacolelor la ESP32, începeți prin conectarea pinului VCC al senzorului la pinul 5V de pe ESP32. Apoi, conectați pinul GND al senzorului la unul dintre pinii GND de pe ESP32. În final, conectați pinul OUT al senzorului la pinul GPIO 14 de pe ESP32.

Pentru buzzer, conectați terminalul negativ la GND și terminalul pozitiv la pinul GPIO 27. Asigurați-vă că toate conexiunile sunt sigure și că senzorul este alimentat corect. Cablarea ar trebui să fie simplă, deoarece senzorul și buzzer-ul necesită doar conexiuni simple de alimentare și semnal.

Exemple de Cod și Explicații

În cod, definim mai întâi pinul conectat la senzorul de evitare a obstacolelor. Acest lucru se face folosind identificatorul avoidPin setat la 14. De asemenea, declarăm o variabilă avoidState pentru a stoca starea de ieșire a senzorului.

const int avoidPin = 14;  // numărul pinului modulului de evitare

int avoidState = 0;

În funcția setup, inițializăm comunicarea serială și setăm avoidPin ca intrare. Acest lucru permite ESP32-ului să citească starea de ieșire a senzorului.

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

În cadrul funcției loop, citim continuu ieșirea senzorului folosind digitalRead(avoidPin) și stocăm rezultatul în avoidState. Această valoare este apoi afișată pe monitorul serial, permițându-ne să vedem când este detectat un obstacol (ieșirea va fi 0) sau nu (ieșirea va fi 1).

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

Pentru codul complet, vă rugăm să consultați secțiunea de încărcare de mai jos a articolului.

Demonstrație / Ce să Vă Așteptați

Când configurația este completă și codul este încărcat, ar trebui să vedeți monitorul serial afișând fie 0, fie 1, în funcție de faptul dacă este detectat un obstacol. Când un obstacol se află în raza de detecție, ieșirea va citi 0, iar buzzer-ul va suna. Dacă obstacolul este îndepărtat, ieșirea va citi 1, iar buzzer-ul se va opri. Această funcționalitate este demonstrată în videoclip (în videoclip la 12:30).

Problemele comune pot include cablarea incorectă, care ar putea duce la funcționarea necorespunzătoare a senzorului, sau rate de transmisie nepotrivite în monitorul serial, împiedicând afișarea corectă a datelor. Asigurați-vă că verificați aceste aspecte dacă întâmpinați probleme.

Marcaje Temporale din Videoclip

  • 00:00 Start
  • 1:57 Introducerea proiectului
  • 4:33 Cablarea senzorului de evitare a obstacolelor
  • 5:55 Cod Arduino pentru evitarea obstacolelor
  • 7:36 Selectarea plăcii ESP32 și a portului COM în Arduino IDE
  • 9:18 Demonstrația proiectului
  • 10:42 Reglarea sensibilității și creșterea razei
  • 12:39 Acțiune atunci când este detectat un obstacol
  • 14:24 Utilizarea unui buzzer când este detectat un obstacol

Imagini

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

Resurse și referințe

Fișiere📁

Nu sunt disponibile fișiere.