ESP32 - Sensor Ultrassônico
Este tutorial ensina você a usar o ESP32 com o sensor ultrassônico HC-SR04 para medir a distância até um objeto.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre o Sensor Ultrassônico
O sensor ultrassônico HC-SR04 é usado para medir a distância do sensor até um objeto usando ondas ultrassônicas.
Pinagem do Sensor Ultrassônico
O sensor ultrassônico HC-SR04 possui quatro pinos:
- Pino VCC: conecte este pino ao VCC (5V)
- Pino GND: conecte este pino ao GND (0V)
- Pino TRIG: este pino recebe um pulso de controle do ESP32.
- Pino ECHO: este pino gera para o ESP32 um pulso correspondente à distância medida.

image source: diyables.io
Como o Sensor Ultrassônico Funciona
Diagrama de Ligação entre o Sensor Ultrassônico e o ESP32
- Como conectar o ESP32 e o sensor ultrassônico usando protoboard (alimentado pelo cabo USB)

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
- Como conectar o ESP32 e o sensor ultrassônico usando protoboard (alimentado pelo pino Vin)

- Como conectar o ESP32 e o sensor ultrassônico usando a placa breakout com bornes de parafuso (alimentado pelo cabo USB)

- Como conectar o ESP32 e o sensor ultrassônico usando a placa breakout com bornes de parafuso (alimentado pelo pino Vin)

Como Programar o Sensor Ultrassônico
- Gere um pulso de 10 microssegundos em um pino do ESP32 usando as funções digitalWrite() e delayMicroseconds(). Por exemplo, o pino GPIO23:
digitalWrite(23, HIGH);
delayMicroseconds(10);
digitalWrite(23, LOW);
- Meça a duração do pulso (µs) em um pino do ESP32 usando a função pulseIn(). Por exemplo, o pino GPIO22:
duration_us = pulseIn(22, HIGH);
- Calcule a distância (cm):
distance_cm = 0.017 * duration_us;
Código ESP32
/*
* Este código de ESP32 foi desenvolvido por pt.newbiely.com
* Este código de ESP32 é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/esp32/esp32-ultrasonic-sensor
*/
#define TRIG_PIN 23 // ESP32 pin GPIO23 connected to Ultrasonic Sensor's TRIG pin
#define ECHO_PIN 22 // ESP32 pin GPIO22 connected to Ultrasonic Sensor's ECHO pin
float duration_us, distance_cm;
void setup() {
// begin serial port
Serial.begin (9600);
// configure the trigger pin to output mode
pinMode(TRIG_PIN, OUTPUT);
// configure the echo pin to input mode
pinMode(ECHO_PIN, INPUT);
}
void loop() {
// generate 10-microsecond pulse to TRIG pin
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// measure duration of pulse from ECHO pin
duration_us = pulseIn(ECHO_PIN, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
// print the value to Serial Monitor
Serial.print("distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
delay(500);
}
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
- Copie o código acima e cole-o na Arduino IDE.
- Compile e carregue o código na placa ESP32 clicando no botão Upload na Arduino IDE

- Abra o Serial Monitor na Arduino IDE

- Mova sua mão na frente do sensor ultrassônico
- Veja a distância do sensor até sua mão no Serial Monitor
8
Serial.println("Hello World!");
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
distance: 19.4 cm
distance: 17.6 cm
distance: 16.9 cm
distance: 27.4 cm
distance: 26.9 cm
distance: 24.3 cm
distance: 25.6 cm
distance: 23.1 cm
Explicação do Código Linha por Linha
O código ESP32 acima contém explicações linha por linha. Leia os comentários no código!
Como Filtrar o Ruído das Medições de Distância do Sensor Ultrassônico
Veja Como Filtrar o Ruído das Medições de Distância do Sensor Ultrassônico