Регионални центар за таленте "Михајло Пупин"

 

Вежба: Мерење растојања помоћу HC-SR04 сензора и ESP32 платформе

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

Вежба повезује рад са сензорима, ESP32 програмирање, серијску комуникацију и визуелизацију података.

ESP32 i HC-SR04

ESP32 + HC-SR04

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

Processing

Processing визуелизација

Приказ измереног растојања у реалном времену.

📑 Садржај

Шта је HC-SR04?

HC-SR04 је ултразвучни сензор који служи за бесконтактно мерење растојања. Сензор емитује кратак ултразвучни импулс и мери време које је потребно да се одбијени сигнал врати до пријемника.

Пошто је брзина звука позната, микроконтролер може израчунати растојање до препреке. Овај тип сензора често се користи у роботици, паметним системима паркирања и STEM пројектима.

🧰 Потребна опрема

  • ESP32 развојна плоча
  • HC-SR04 ултразвучни сензор
  • Breadboard плоча
  • Повезне жице
  • USB кабл
  • Arduino IDE
  • Processing окружење

Повезивање компоненти

У овој вежби користи се следеће повезивање:

  • VCC → 3V3
  • GND → GND
  • TRIG → GPIO18
  • ECHO → GPIO19
ESP32 priključci

ESP32 страна

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

HC-SR04 priključci

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?


 

Вежба: Мерење растојања помоћу HC-SR04 сензора и ESP32 платформе

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

Вежба повезује рад са сензорима, ESP32 програмирање, серијску комуникацију и визуелизацију података.

ESP32 i HC-SR04

ESP32 + HC-SR04

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

Processing

Processing визуелизација

Приказ измереног растојања у реалном времену.

📑 Садржај

Шта је HC-SR04?

HC-SR04 је ултразвучни сензор који служи за бесконтактно мерење растојања. Сензор емитује кратак ултразвучни импулс и мери време које је потребно да се одбијени сигнал врати до пријемника.

Пошто је брзина звука позната, микроконтролер може израчунати растојање до препреке. Овај тип сензора често се користи у роботици, паметним системима паркирања и STEM пројектима.

🧰 Потребна опрема

  • ESP32 развојна плоча
  • HC-SR04 ултразвучни сензор
  • Breadboard плоча
  • Повезне жице
  • USB кабл
  • Arduino IDE
  • Processing окружење

Повезивање компоненти

У овој вежби користи се следеће повезивање:

  • VCC → 3V3
  • GND → GND
  • TRIG → GPIO18
  • ECHO → GPIO19
ESP32 priključci

ESP32 страна

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

HC-SR04 priključci

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?


Vrati se na vrh