Målingsavstand med Epptop 10 ved bruk av Arduino IDE

Målingsavstand med Epptop 10 ved bruk av Arduino IDE

ESP32 er et ofte brukt mikrokontrollerbasert IoT -brett. Det er en lav pris og mikrokontrollerbrett med lav effekt som kan kontrollere flere enheter og kan også fungere som en slave i et IoT -prosjekter. ESP32 forbedrer brukernes erfaring med IoT-verdenen, da den har integrert Wi-Fi og Bluetooth-moduler.

Mens vi snakker om trådløse applikasjoner av ESP32, kan vi også integrere eksterne sensorer med det for å utføre forskjellige oppgaver som måleavstand for objekter ved hjelp av ultralydsensorer. La oss nå snakke om hvordan vi gjør dette i detalj.

ESP32 med HC-SR04 Ultrasonic sensor

ESP32 kan enkelt integreres med en ultralydsensor. Vi trenger bare to ledninger for å måle noen objektavstand uten behov for en linjal eller målebånd. Det har en enorm applikasjon der det er vanskelig å bruke andre måter for å måle avstand. Flere sensorer er tilgjengelige som kan integreres med ESP32.

HC-SR04 er en mye brukt ultralydsensor med ESP32. Denne sensoren bestemmer hvor langt et objekt er. Den bruker ekkolodd for å bestemme objektavstand. Normalt har det et godt spekter av deteksjon med nøyaktighet på 3mm, men noen ganger er det vanskelig å måle avstand av myke materialer som klut. Den har en innebygd sender og mottaker. Følgende tabell beskriver de tekniske spesifikasjonene til denne sensoren.

Kjennetegn Verdi
Driftsspenning 5V DC
Driftsstrøm 15MA
Driftsfrekvens 40kHz
Min rekkevidde 2 cm/ 1 tomme
Maks rekkevidde 400cm/ 13 fot
Nøyaktighet 3mm
Målingsvinkel <15 degree

HC-SR04 Pinout

Ultrasonic sensor HC-SR04 har fire pinner:

  • VCC: Koble denne pinnen til ESP32 Vin Pin
  • GND: Koble denne pinnen med ESP32 GND
  • Trig: Denne pinnen mottar kontrollerende signal fra ESP32 Digital Pin
  • Ekko: Denne pinnen sender en puls eller signal tilbake til ESP32. Mottatt pulssignal måles for å beregne avstand.

Hvordan ultralyd fungerer

Når den ultrasoniske sensoren er koblet til ESP32, vil mikrokontrolleren generere en signalpuls på Trig Pin. Etter at sensorer har fått en inngang ved triginen, genereres en ultralydbølge automatisk. Denne utsendte bølgen vil treffe overflaten til en hindring eller gjenstand hvis avstand vi må måle. Etter det vil ultralydbølgen sprette tilbake til mottakerterminalen til sensoren.

Ultralydsensor vil oppdage den reflekterte bølgen og beregne den totale tiden som er tatt av bølge fra sensor til objekt og tilbake til sensor igjen. Ultralydsensor vil generere en signalpuls ved ekko -pinne som er koblet til ESP32 digitale pinner når ESP32 mottar signal fra Echo PIN, den beregner den totale avstanden mellom objekt og sensor ved bruk av Avstandsforme.

Her delte vi avstand med 2 fordi multipliseringshastighet med tiden vil gi den totale avstanden fra objekt til sensor og tilbake til sensor etter å ha reflektert fra objektoverflaten. For å få virkelig avstand deler vi denne avstanden i halvparten.

Krets

Grensesnitt ESP32 med ultralydsensor ved bruk av de fire pinnene som vist i bildet nedenfor:

Følgende konfigurasjon vil bli fulgt for tilkobling av ESP32 med ultralydsensor. Trig og ekkokoster vil være koblet til GPIO 5 og 18 pinner av ESP32.

HC-SR04 Ultrasonic sensor ESP32 PIN
Trig GPIO 5
Ekko GPIO 18
GND GND
VCC Vin

Maskinvare

For grensesnitt ESP32 med ultralydsensor er det nødvendig å følge utstyr:

  • ESP32
  • HC-SR04
  • Brødbrett
  • Jumper ledninger

Kode i Arduino Ide

For å programmere ESP32 vil vi bruke Arduino IDE, ettersom ESP32 og Arduino har mye til felles i programmering, så det er best å bruke den samme programvaren til å programmere dem. Åpne Arduino IDE og skriv inn følgende kode:

const int trig_pin = 5;
const int ekko_pin = 18;
#Define Sound_Speed ​​0.034/*Definer lydhastighet i CM/USA*/
lang varighet;
Float Dist_cm;
void setup ()
Serie.Begin (115200); /* Seriell kommunikasjon begynner*/
pinmode (trig_pin, output); /* Trigger Pin 5 er satt som en utgang*/
pinmode (ekko_pin, input); /* Echopin 18 er satt som en inngang*/

void loop ()
digitalwrite (trig_pin, lav); /* trigger -pinne er fjernet*/
forsinkelsesmikroseconds (2);
digitalwrite (trig_pin, høy); /*Utløserpinne er satt høyt for 10 mikrosekunder*/
forsinkelsesmikroseconds (10);
digitalwrite (trig_pin, lav);
Varighet = Pulsein (Echo_Pin, High);/*Leser ekkopinen og returnerer reisetid i mikrosekunder*/
DIST_CM = Varighet * Sound_Speed/2; /*avstandsberegningsformel*/
Serie.print ("objektavstand i (cm):"); /*Skriver ut avstanden i seriemonitoren*/
Serie.println (dist_cm);
forsinkelse (1000);

Over -koden forklarer å jobbe med ultralydsensor med ESP32 -modulen. Her startet vi koden vår ved å definere trigger- og ekkopins. Pin 5 og pinne 18 av ESP32 er satt som henholdsvis trigger og ekko pin.

const int trig_pin = 5;
const int ekko_pin = 18;

Lydhastighet er definert som 0.034 cm/oss ved 20 ºC. Vi tar verdier i CM/oss for mer presisjon.

#Define Sound_Speed ​​0.034

Så initialiserer vi to variabler varighet og Dist_cm følgende

lang varighet;
Float Dist_cm;

Varighetsvariabelen vil spare ultralydbølgetid. DIST_CM vil spare den målte avstanden.

I oppsett () Del først initialisert kommunikasjon ved å definere baudfrekvens. To pinner definert tidligere vil nå bli erklært som inngang og utgang. Trigger Pin 5 settes som utgang mens ekkolinjen 18 er satt som input.

Serie.Begin (115200);
pinmode (trig_pin, output);
pinmode (ekko_pin, input);

I Løkke() En del av koden Først vil vi fjerne triggerpinnen ved å sette den lav. Årsaken til at vi gjør dette er å sikre riktig lesing mens vi måler avstand vil gi oss en ren høy puls.

digitalwrite (trig_pin, lav); /* trigger -pinne er fjernet*/
forsinkelsesmikroseconds (2);
digitalwrite (trig_pin, høy); /*Utløserpinne er satt høyt for 10 mikrosekunder*/
forsinkelsesmikroseconds (10);
digitalwrite (trig_pin, lav);

Neste bruk Pulsein Funksjon Vi vil lese lydbølgetid. Pulsein Funksjonen leser en inngang som høy eller lav. Den returnerer pulslengden i mikrosekunder ved hjelp av denne pulens lengde kan vi beregne total tid tatt av bølge fra sensor til objektkropp og tilbake til å motta ende av sensor.

Varighet = Pulsein (Echo_Pin, High);

Deretter bruker vi hastighetsformelen, beregnet vi objektets totale avstand:

DIST_CM = Varighet * Sound_Speed/2;

Objektmålt avstand er trykt på seriell skjerm:

Serie.print ("objektavstand i (cm):");
Serie.println (dist_cm);

Når objektet er i nærheten

Plasser nå et objekt i nærheten.

Produksjon

Objektavstand vises i utgangsterminalen. Nå er objektet plassert på 5 cm fra ultralydsensoren.

Når objektet er langt

Nå for å bekrefte resultatet vårt, vil vi plassere objekter langt fra sensoren og sjekke arbeidet med den ultrasoniske sensoren. Plasser objekter som vist i bildet nedenfor:

Produksjon

Utgangsvinduet vil gi oss en ny avstand, og som vi kan se at objektet er langt fra sensoren, så er den målte avstanden 15 cm fra ultralydsensoren.

Konklusjon

Målingsavstand har en flott anvendelse når det gjelder robotikk og andre prosjekter, det er forskjellige måter å måle avstand en av de mye brukte metodene for måleavstand med ESP32 bruker en ultralydsensor. Her vil denne skrivingen dekke alle trinnene man trenger for å integrere og begynne å måle sensorer med ESP32.