Odległość pomiaru ESPTOP 10 za pomocą Arduino IDE

Odległość pomiaru ESPTOP 10 za pomocą Arduino IDE

ESP32 to powszechnie używana płyta IoT oparta na mikrokontrolerze. Jest to tanie i niską moc mikrokontroler, która może kontrolować wiele urządzeń i może również działać jako niewolnik w projektach IoT. ESP32 poprawia wrażenia użytkowników ze światem IoT, ponieważ zintegrował moduły Wi-Fi i Bluetooth.

Jak mówimy o aplikacjach bezprzewodowych ESP32, możemy również zintegrować z nim czujniki zewnętrzne, aby wykonać różne zadania, takie jak odległość pomiaru obiektów za pomocą czujników ultradźwiękowych. Teraz porozmawiajmy o tym, jak to zrobić szczegółowo.

ESP32 z czujnikiem ultradźwiękowym HC-SR04

ESP32 można łatwo zintegrować z czujnikiem ultradźwiękowym. Potrzebujemy tylko dwóch przewodów, aby zmierzyć dowolną odległość obiektu bez potrzeby linijki lub taśmy pomiarowej. Ma ogromną aplikację, w której trudno jest użyć innych środków do pomiaru odległości. Dostępnych jest wiele czujników, które można zintegrować z ESP32.

HC-SR04 jest szeroko stosowanym czujnikiem ultradźwiękowym z ESP32. Ten czujnik określa, jak daleko jest obiekt. Używa sonaru do określenia odległości obiektu. Zwykle ma dobry zakres wykrywania z dokładnością 3 mm, jednak czasami trudno jest zmierzyć odległość miękkich materiałów, takich jak tkanina. Ma wbudowany nadajnik i odbiornik. Poniższa tabela opisuje specyfikacje techniczne tego czujnika.

Charakterystyka Wartość
Napięcie robocze 5V DC
Prąd operacyjny 15ma
Częstotliwość robocza 40KHz
Zakres min 2 cm/ 1 cal
Maksymalny zakres 400 cm/ 13 stóp
Dokładność 3 mm
Kąt pomiarowy <15 degree

HC-SR04 Pinout

Ultradźwiękowy czujnik HC-SR04 ma cztery piny:

  • VCC: Podłącz ten szpilkę do pin ESP32 VIN
  • GND: Podłącz ten styk z ESP32 GND
  • Wymuskany: Ten pin odbiera sygnał kontrolny z cyfrowego pinu ESP32
  • Echo: Ten szpilka wysyła impuls lub sygnał z powrotem do ESP32. Otrzymany sygnał impulsowy jest mierzony w celu obliczenia odległości.

Jak działa ultradźwiękowe

Po podłączeniu czujnika ultradźwiękowego do ESP32, mikrokontroler wygeneruje impuls sygnału na Wymuskany szpilka. Po odbieraniu czujników na trygu pin, fala ultradźwiękowa jest automatycznie generowana. Ta emitowana fala uderzy w powierzchnię przeszkody lub obiektu, którego odległość musimy zmierzyć. Następnie fala ultradźwiękowa odbije się z powrotem do zacisku odbiornika czujnika.

Czujnik ultradźwiękowy wykryje falę odbijaną i obliczy całkowity czas pobrany przez falę od czujnika do obiektu i ponownie do czujnika. Czujnik ultradźwiękowy wygeneruje impuls sygnału przy pinie echa, który jest podłączony do cyfrowych pinów ESP32 Po otrzymaniu sygnału ESP32 z pinu echo oblicza całkowitą odległość między obiektem a czujnikiem za pomocą Formula odległości.

Tutaj podzieliliśmy odległość z 2, ponieważ prędkość mnożąca z czasem da całkowitą odległość od obiektu do czujnika i z powrotem do czujnika po odbiciu z powierzchni obiektu. Aby uzyskać prawdziwy odległość, dzielimy tę odległość na pół.

Okrążenie

Interfejs ESP32 z czujnikiem ultradźwiękowym za pomocą czterech pinów, jak pokazano na zdjęciu poniżej:

Po podłączeniu ESP32 z czujnikiem ultradźwiękowym będzie przestrzegane po konfiguracji. Piny Trig i Echo będą połączone z GPIO 5 i 18 szpinami ESP32.

Czujnik ultradźwiękowy HC-SR04 Pin ESP32
Wymuskany GPIO 5
Echo GPIO 18
GND GND
VCC Vin

Sprzęt komputerowy

Do interfejsu ESP32 z czujnikiem ultradźwiękowym Wymagane jest następujące urządzenia:

  • ESP32
  • HC-SR04
  • Tablica chleba
  • Przewody zworki

Kod w Arduino IDE

Aby zaprogramować ESP32, będziemy używać Arduino IDE, ponieważ ESP32 i Arduino mają wiele wspólnego w programowaniu, więc najlepiej używać tego samego oprogramowania do ich zaprogramowania. Otwórz Arduino IDE i wpisz następujący kod:

const int trig_pin = 5;
const int echo_pin = 18;
#Define Sound_Speed ​​0.034/*Zdefiniuj prędkość dźwięku w CM/US*/
długi czas trwania;
float dist_cm;
void setup ()
Seryjny.rozpocząć (115200); /* Komunikacja szeregowa rozpoczyna się*/
pinmode (trig_pin, wyjście); /* PIN TRIGGER 5 jest ustawiony jako wyjście*/
pinmode (echo_pin, input); /* Echopina 18 jest ustawiona jako wejście*/

void Loop ()
DigitalWrite (trig_pin, niski); /* PIN TRIGGER jest wyczyszczony*/
opóźniające się (2);
DigitalWrite (trig_pin, high); /*PIN TRIGGER jest ustawiony wysoko na 10 mikrosekund*/
opóźniające się (10);
DigitalWrite (trig_pin, niski);
Czas trwania = pulsein (echo_pin, high);/*odczytuje echopinę i zwraca czas podróży w mikrosekundach*/
dist_cm = czas trwania * Sound_speed/2; /*Formuła obliczania odległości*/
Seryjny.print („Odległość obiektu w (cm):”); /*Drukuje odległość w monitorze szeregowym*/
Seryjny.println (dist_cm);
opóźnienie (1000);

Powyższy kod wyjaśnia działanie czujnika ultradźwiękowego z modułem ESP32. Tutaj zaczęliśmy nasz kod, definiując szpilki spustowe i echo. Pin 5 i pin 18 ESP32 są ustawione odpowiednio jako spust i pin echo.

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

Prędkość dźwięku jest zdefiniowana jako 0.034 cm/US w 20ºC. Przyjmujemy wartości w CM/Us, aby uzyskać większą precyzję.

#Define Sound_Speed ​​0.034

Następnie zainicjujemy dwie zmienne czas trwania I Dist_cm następująco

długi czas trwania;
float dist_cm;

Zmienna czasu trwania pozwoli zaoszczędzić czas podróży fali ultradźwiękowej. Dist_cm uratuje zmierzoną odległość.

w organizować coś() Część pierwsza zainicjowana komunikacja, definiując wskaźnik transmisji. Dwa zdefiniowane wcześniej piny będą teraz zadeklarowane jako wejście i wyjście. PIN TRIGGER 5 jest ustawiony jako wyjście, a pin echo 18 jest ustawiony jako wejście.

Seryjny.rozpocząć (115200);
pinmode (trig_pin, wyjście);
pinmode (echo_pin, input);

w pętla() Część kodu Najpierw wyczyścimy pin spustowy, ustawiając go nisko i podajemy 2 opóźnienie mikrosekund, a następnie ustawym ten pin jako wysoki przez 10 mikrosekund. Powodem, dla którego to robimy, jest zapewnienie prawidłowego odczytu podczas pomiaru odległości, da nam czysty wysoki impuls.

DigitalWrite (trig_pin, niski); /* PIN TRIGGER jest wyczyszczony*/
opóźniające się (2);
DigitalWrite (trig_pin, high); /*PIN TRIGGER jest ustawiony wysoko na 10 mikrosekund*/
opóźniające się (10);
DigitalWrite (trig_pin, niski);

Następnie za pomocą Pulsein Funkcja będziemy czytać czas podróży fali dźwiękowej. Pulsein Funkcja odczytuje wejście jako wysokie lub niskie. Zwraca długość impulsu w mikrosekundach przy użyciu tej długości impulsu możemy obliczyć całkowity czas pobierany przez falę od czujnika do ciała obiektowego i z powrotem do końca czujnika odbierającego.

Czas trwania = pulsina (echo_pin, wysoko);

Następnie za pomocą wzoru prędkości obliczyliśmy całkowitą odległość obiektu:

dist_cm = czas trwania * Sound_speed/2;

Odległość zmierzona obiektu jest drukowana na monitorze szeregowym:

Seryjny.print („Odległość obiektu w (cm):”);
Seryjny.println (dist_cm);

Kiedy obiekt jest blisko

Teraz umieść obiekt w pobliżu czujnika ultradźwiękowego i sprawdź zmierzoną odległość w oknie monitora szeregowego Arduino IDE.

Wyjście

Odległość obiektu jest pokazana na terminalu wyjściowym. Teraz obiekt jest umieszczony na 5 cm od czujnika ultradźwiękowego.

Kiedy obiekt jest daleko

Teraz, aby zweryfikować nasz wynik, umieścimy obiekty daleko od czujnika i sprawdzić działanie czujnika ultradźwiękowego. Umieść obiekty takie jak pokazane na zdjęciu poniżej:

Wyjście

Okno wyjściowe da nam nową odległość i jak widzimy, że obiekt jest daleko od czujnika, więc zmierzona odległość wynosi 15 cm od czujnika ultradźwiękowego.

Wniosek

Odległość pomiarowa ma doskonałą zastosowanie, jeśli chodzi o robotykę i inne projekty, istnieją różne sposoby pomiaru odległości Jedną z powszechnie stosowanych metod pomiaru odległości za pomocą ESP32 jest użycie czujnika ultradźwiękowego. Tutaj ten zapis obejmie wszystkie kroki, które należy zintegrować i rozpocząć mierzenie czujników z ESP32.