Вежба: Мерење растојања помоћу HC-SR04 сензора и ESP32 платформе
У овој вежби ученици ће научити како да користе HC‑SR04 ултразвучни сензор за мерење растојања до објекта помоћу ESP32 микроконтролера. Добијене вредности биће послате на рачунар преко серијске комуникације и приказане у реалном времену у Processing окружењу.
Вежба повезује рад са сензорима, ESP32 програмирање, серијску комуникацију и визуелизацију података.

ESP32 + HC-SR04
Мерење растојања до препреке помоћу ултразвучног сензора.

Processing визуелизација
Приказ измереног растојања у реалном времену.
📑 Садржај
- Шта је HC-SR04?
- Потребна опрема
- Повезивање компоненти
- ESP32 програм
- Processing програм
- Како систем функционише?
- Могућа проширења
- На шта треба обратити пажњу
Шта је HC-SR04?
HC-SR04 је ултразвучни сензор који служи за бесконтактно мерење растојања. Сензор емитује кратак ултразвучни импулс и мери време које је потребно да се одбијени сигнал врати до пријемника.
Пошто је брзина звука позната, микроконтролер може израчунати растојање до препреке. Овај тип сензора често се користи у роботици, паметним системима паркирања и STEM пројектима.
🧰 Потребна опрема
- ESP32 развојна плоча
- HC-SR04 ултразвучни сензор
- Breadboard плоча
- Повезне жице
- USB кабл
- Arduino IDE
- Processing окружење
Повезивање компоненти
У овој вежби користи се следеће повезивање:
- VCC → 3V3
- GND → GND
- TRIG → GPIO18
- ECHO → GPIO19

ESP32 страна
Приказ прикључака који се користе на ESP32 плочи.

HC-SR04 страна
Приказ прикључака на ултразвучном сензору.
Напомена о напону
ESP32 користи логичке нивое од 3,3 V. Класичан HC-SR04 се најчешће напаја са 5 V, при чему ECHO пин може враћати сигнал близу 5 V.
Да бисмо избегли додатне компоненте за обарање напона, у овој вежби сензор напајамо директно са 3V3 пина ESP32 плоче. Тако ECHO сигнал остаје у безбедном опсегу за ESP32.
ESP32 програм
int trigPin = 18;
int echoPin = 19;
long duration;
float distance;
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(15);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.println(distance, 2);
delay(200);
}
Објашњење ESP32 програма
- ESP32 шаље кратак импулс на TRIG пин.
- Сензор емитује ултразвучни талас.
- ECHO пин враћа информацију о времену повратка сигнала.
- Функција pulseIn() мери трајање импулса.
- Растојање се израчунава у центиметрима.
- Резултат се шаље преко серијске комуникације.
distance = duration * 0.034 / 2
Број 0.034 представља брзину звука изражену у cm/μs. Дељење са 2 је неопходно јер талас путује до препреке и назад.
Processing програм
import processing.serial.*;
Serial myPort;
float distance;
void setup() {
size(600, 200);
printArray(Serial.list());
myPort = new Serial(this, Serial.list()[0], 115200);
myPort.bufferUntil('\\n');
}
void draw() {
background(255);
fill(0);
textSize(24);
text("Distance: " + nf(distance, 0, 2) + " cm", 50, 50);
fill(100, 200, 255);
rect(
50,
100,
map(distance, 0, 200, 0, width - 100),
30
);
}
void serialEvent(Serial myPort) {
String data = myPort.readStringUntil('\\n');
if (data != null) {
data = trim(data);
distance = float(data);
}
}
Објашњење Processing програма
Processing прима вредности које ESP32 шаље преко USB кабла. Свака вредност се претвара у број и користи за цртање хоризонталне траке.
- чита серијске податке,
- претвара текст у број,
- приказује растојање у центиметрима,
- исцртава графички приказ мерења.
Како систем функционише?
📌 ESP32 активира TRIG пин.
📌 HC-SR04 емитује ултразвучни талас.
📌 Талас путује до препреке.
📌 Одбијени талас се враћа ка сензору.
📌 ESP32 мери време повратка.
📌 Израчунава се растојање.
📌 Processing приказује резултат у реалном времену.
Могућа проширења пројекта
- LED сигнализација близине препреке
- Звучно упозорење помоћу buzzer-а
- Приказ графика мерења
- Чување података у CSV датотеку
- Слање података преко Wi‑Fi мреже
- ESP32 веб сервер
- Робот који избегава препреке
⚠️ На шта треба обратити пажњу
- Проверити исправност свих жица.
- Проверити да су GPIO18 и GPIO19 правилно повезани.
- Проверити серијски порт у Processing програму.
- Избегавати лабаве контакте на breadboard плочи.
- Пре покретања проверити целокупно коло.
📚 Додатно учење
🔎 Продуби знање
Истражи различите типове сензора који се користе са ESP32 платформом.
🧪 Идеје за експеримент
- Мери растојање до различитих објеката.
- Упореди мерења за различите материјале.
- Направи паркинг сензор.
Следећи корак
Покушај да направиш Wi‑Fi систем за праћење растојања преко веб прегледача.
Мини квиз
1. Шта мери HC-SR04 сензор?
2. Који пин покреће ултразвучни импулс?
3. Која је брзина серијске комуникације?
4. Зашто се сензор у овој вежби напаја са 3.3V?