Misurare la distanza con ESPTOP 10 usando Arduino IDE

Misurare la distanza con ESPTOP 10 usando Arduino IDE

ESP32 è una scheda IoT basata su microcontrollori comunemente usata. È una scheda microcontrollore a basso costo e a bassa potenza che può controllare più dispositivi e può anche fungere da schiavo in un progetto IoT. ESP32 migliora l'esperienza degli utenti con il mondo IoT in quanto ha integrato i moduli Wi-Fi e Bluetooth.

Mentre stiamo parlando di applicazioni wireless di ESP32, possiamo anche integrare sensori esterni con esso per eseguire compiti diversi come la misurazione della distanza degli oggetti usando sensori ad ultrasuoni. Ora parliamo di come farlo in dettaglio.

ESP32 con sensore ultrasonico HC-SR04

ESP32 può essere facilmente integrato con un sensore ad ultrasuoni. Abbiamo solo bisogno di due fili per misurare qualsiasi distanza di oggetti senza alcuna necessità di un righello o di misurazione del nastro. Ha una vasta applicazione in cui è difficile utilizzare qualsiasi altro mezzo per misurare la distanza. Sono disponibili più sensori che possono essere integrati con ESP32.

HC-SR04 è un sensore ad ultrasuoni ampiamente usato con ESP32. Questo sensore determina quanto è lontano un oggetto. Usa il sonar per determinare la distanza degli oggetti. Normalmente ha una buona gamma di rilevamento con precisione di 3 mm, tuttavia a volte è difficile misurare la distanza dei materiali morbidi come il panno. Ha un trasmettitore e ricevitore integrati. La tabella seguente descrive le specifiche tecniche di questo sensore.

Caratteristiche Valore
Tensione operativa 5v dc
Corrente operativa 15 mA
Frequenza operativa 40kHz
Intervallo min 2 cm/ 1 pollice
Gamma massima 400 cm/ 13 piedi
Precisione 3 mm
Angolo di misurazione <15 degree

Pinout HC-SR04

Il sensore ad ultrasuoni HC-SR04 ha quattro pin:

  • VCC: Collegare questo pin a ESP32 VIN PIN
  • GND: Collega questo pin con ESP32 GND
  • Trig: Questo pin riceve il segnale di controllo dal pin digitale ESP32
  • Eco: Questo pin invia un impulso o un segnale di ritorno a ESP32. Il segnale dell'impulso posteriore ricevuto viene misurato per calcolare la distanza.

Come funziona l'ultrasonico

Una volta collegato il sensore ad ultrasuoni a ESP32, il microcontrollore genererà un impulso di segnale sul Trig spillo. Dopo che i sensori hanno ricevuto un input sul pin trig, viene generata automaticamente un'onda ad ultrasuoni. Questa onda emessa colpirà la superficie di un ostacolo o un oggetto la cui distanza dobbiamo misurare. Successivamente, l'onda ad ultrasuoni tornerà al terminale del ricevitore del sensore.

Il sensore ad ultrasuoni rileverà l'onda riflessa e calcolerà il tempo totale impiegato dall'onda da un sensore a oggetto e di nuovo al sensore. Il sensore ad ultrasuoni genererà un impulso di segnale sul pin di eco che è collegato a pin digitali ESP32 una volta che ESP32 riceve il segnale dal pin Echo Calcola la distanza totale tra oggetto e sensore usando Formula a distanza.

Qui abbiamo diviso la distanza con 2 perché la velocità di moltiplicazione con il tempo darà la distanza totale da oggetto al sensore e ritorno al sensore dopo aver riflettuto dalla superficie dell'oggetto. Per ottenere una distanza reale dividiamo questa distanza a metà.

Circuito

Interfaccia ESP32 con sensore ad ultrasuoni usando i quattro pin come mostrato nell'immagine seguente:

Verrà seguita la configurazione seguente per la connessione ESP32 con il sensore ad ultrasuoni. I pin di trig ed eco saranno collegati a GPIO 5 e 18 pin di ESP32.

Sensore ultrasonico HC-SR04 ESP32 PIN
Trig GPIO 5
Eco GPIO 18
GND GND
VCC Vin

Hardware

Per l'interfaccia ESP32 con sensore ad ultrasuoni seguenti apparecchiature:

  • ESP32
  • HC-SR04
  • Breadboard
  • Fili jumper

Codice in Arduino IDE

Per programmare ESP32 useremo Arduino IDE, poiché ESP32 e Arduino hanno molto in comune nella programmazione, quindi è meglio utilizzare lo stesso software per programmarli. Apri Arduino IDE e digita il seguente codice:

const int trig_pin = 5;
const int echo_pin = 18;
#define Sound_Speed ​​0.034/*Definire la velocità del suono in CM/US*/
lunga durata;
float dist_cm;
void setup ()
Seriale.Inizia (115200); /* Comunicazione seriale inizia*/
pinMode (trig_pin, output); /* Il pin di trigger 5 è impostato come output*/
pinMode (echo_pin, input); /* Echopin 18 è impostato come input*/

void loop ()
DigitalWrite (trig_pin, basso); /* Il pin di trigger viene cancellato*/
DelayMicroseconds (2);
DigitalWrite (trig_pin, alto); /*Il pin trigger è impostato in alto per 10 microsecondi*/
DelayMicroseconds (10);
DigitalWrite (trig_pin, basso);
durata = pulsein (echo_pin, alto);/*legge l'echopina e restituisce il tempo di viaggio in microsecondi*/
dist_cm = durata * Sound_speed/2; /*Formula di calcolo della distanza*/
Seriale.print ("Distanza degli oggetti in (cm):"); /*Stampa la distanza nel monitor seriale*/
Seriale.println (dist_cm);
ritardo (1000);

Il codice sopra spiega il funzionamento del sensore ad ultrasuoni con il modulo ESP32. Qui abbiamo iniziato il nostro codice definendo i pin trigger ed eco. Il pin 5 e il pin 18 di ESP32 sono impostati rispettivamente come trigger ed eco PIN.

const int trig_pin = 5;
const int echo_pin = 18;

La velocità del suono è definita come 0.034 cm/US a 20 ° C. Stiamo prendendo valori in cm/noi per una maggiore precisione.

#define Sound_Speed ​​0.034

Quindi inizializziamo due variabili durata E Dist_cm come segue

lunga durata;
float dist_cm;

La variabile di durata salverà il tempo di viaggio ad ultrasuoni. Dist_cm salverà la distanza misurata.

Nel impostare() Parte prima comunicazione inizializzata definendo il tasso di baud. Due pin definiti in precedenza saranno ora dichiarati come input e output. Pin trigger 5 è impostato come output mentre l'eco pin 18 è impostato come input.

Seriale.Inizia (115200);
pinMode (trig_pin, output);
pinMode (echo_pin, input);

Nel ciclo continuo() Parte del codice prima cancelleremo il pin trigger impostandolo basso e dare 2 microsecondi ritardi, quindi imposteremo questo pin come alto per 10 microsecondi. Il motivo per cui lo stiamo facendo è garantire una lettura corretta durante la misurazione della distanza ci darà un impulso alto pulito.

DigitalWrite (trig_pin, basso); /* Il pin di trigger viene cancellato*/
DelayMicroseconds (2);
DigitalWrite (trig_pin, alto); /*Il pin trigger è impostato in alto per 10 microsecondi*/
DelayMicroseconds (10);
DigitalWrite (trig_pin, basso);

Poi usando Pulsein funzione leggeremo il tempo di viaggio dell'onda sonora. Pulsein La funzione legge un input come alto o basso. Restituisce la lunghezza dell'impulso in microsecondi usando questa lunghezza dell'impulso possiamo calcolare il tempo totale impiegato per onda dal sensore al corpo dell'oggetto e ritorno alla fine del sensore.

durata = pulsein (echo_pin, alto);

Quindi usando la formula di velocità, abbiamo calcolato la distanza totale dell'oggetto:

dist_cm = durata * Sound_speed/2;

L'oggetto la distanza misurata viene stampata sul monitor seriale:

Seriale.print ("Distanza degli oggetti in (cm):");
Seriale.println (dist_cm);

Quando l'oggetto è vicino

Ora posiziona un oggetto vicino al sensore ad ultrasuoni e controlla la distanza misurata sulla finestra del monitor seriale di Arduino IDE.

Produzione

La distanza degli oggetti è mostrata nel terminale di uscita. Ora l'oggetto è posizionato a 5 cm dal sensore ad ultrasuoni.

Quando l'oggetto è lontano

Ora per verificare il nostro risultato posizioneremo oggetti lontani dal sensore e controlleremo il funzionamento del sensore ad ultrasuoni. Posiziona oggetti come mostrato nell'immagine qui sotto:

Produzione

La finestra di uscita ci darà una nuova distanza e come possiamo vedere che l'oggetto è lontano dal sensore, quindi la distanza misurata è di 15 cm dal sensore ad ultrasuoni.

Conclusione

La distanza di misurazione ha un'ottima applicazione quando si tratta di robotica e altri progetti, esistono diversi modi per misurare la distanza uno dei metodi ampiamente utilizzati per misurare la distanza con ESP32 utilizza un sensore ad ultrasuoni. Qui questo commento coprirà tutti i passaggi necessari per integrare e iniziare a misurare i sensori con ESP32.