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:
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:
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;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;Lydhastighet er definert som 0.034 cm/oss ved 20 ºC. Vi tar verdier i CM/oss for mer presisjon.
#Define Sound_Speed 0.034Så initialiserer vi to variabler varighet og Dist_cm følgende
lang varighet;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);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*/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):");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.