Medindo Distância com o ESP8266 e o Sensor Ultrassônico HC-SR04

Medindo Distância com o ESP8266 e o Sensor Ultrassônico HC-SR04

No artigo anterior vimos como controlar LEDs via Wi-Fi com o ESP8266. Agora vamos dar um passo além no mundo da automação e do IoT: transformar o ESP8266 em um “sensor de presença/distância” usando um módulo ultrassônico HC-SR04, o mesmo princípio usado em sensores de estacionamento e em robôs que desviam de obstáculos.

É um projeto simples, barato e muito didático — ótimo tanto para quem está começando com eletrônica quanto para quem quer integrar leitura de distância a projetos maiores de automação residencial.

image-1024x762 Medindo Distância com o ESP8266 e o Sensor Ultrassônico HC-SR04

O que você vai precisar

  • 1x placa ESP8266 (NodeMCU ou Wemos D1 Mini)
  • 1x sensor ultrassônico HC-SR04
  • Protoboard
  • Jumpers macho-macho e macho-fêmea
  • 2x resistores (para o divisor de tensão do pino Echo — veja o aviso abaixo)
  • Cabo USB e Arduino IDE configurada para o ESP8266

Como funciona o HC-SR04

O sensor tem dois pinos principais: Trig (disparo) e Echo (eco). O microcontrolador envia um pulso elétrico de 10 microsegundos no Trig, o sensor emite um som ultrassônico (inaudível para nós) e aguarda o eco voltar após bater em um obstáculo. O tempo entre o disparo e o retorno do eco é lido no pino Echo com a função pulseIn().

Como o som viaja a aproximadamente 343 m/s (0,0343 cm por microsegundo), e o pulso faz o caminho de ida e volta, a distância é calculada assim:

distância (cm) = (duração do pulso × 0,0343) / 2

Esquema de ligação

HC-SR04ESP8266 (NodeMCU)
VCC5V (pino Vin)
GNDGND
TrigGPIO12 (D6)
EchoGPIO14 (D5) — via divisor de tensão

⚠️ Atenção com o pino Echo O HC-SR04 opera em 5V e o pino Echo devolve um sinal de 5V. As entradas do ESP8266 toleram no máximo cerca de 3,3V. Ligar o Echo direto pode danificar a placa a médio prazo. Use um divisor de tensão simples (por exemplo, um resistor de 1kΩ em série e outro de 2kΩ para o GND) entre o Echo e o GPIO14, reduzindo o sinal para a faixa segura antes de conectar ao ESP8266.

🖼️ Prompt para gerar diagrama de ligação (IA) Ilustração vetorial estilo diagrama técnico (flat design) mostrando uma placa ESP8266 NodeMCU conectada a um sensor ultrassônico HC-SR04, com fios coloridos identificando VCC, GND, Trig e Echo, incluindo destaque visual para um pequeno divisor de tensão com dois resistores no fio do Echo, fundo branco, estilo clean, paleta de azul e verde-água.

Código completo

Este é o sketch para a Arduino IDE. Basta copiar, colar e enviar para o seu ESP8266:

const int trigPin = 12; // define o pino 12 (D6)para disparar o som
const int echoPin = 14; //define o pino 14 (D5) para ouvir o som
#define VELOCIDADE_DO_SOM 0.0343 //define a velocidade do som em cm por microsegundos
long duracao; 
//variável para armazenar a duração do eco
float distanciaCm;
// variável para armazenar a distância calculada
void setup() {
  Serial.begin(115200); //inicia a comunicação serial para exibir os resultados
  pinMode(trigPin, OUTPUT); //configura o pino 'trig' como saída
  pinMode(echoPin, INPUT); //configura o pino 'echo' como entrada
}
void loop() {
  digitalWrite(trigPin, LOW); //inicia o trigger como desligado
  delayMicroseconds(2);//atrasa em 2 microsegundos a execução
  digitalWrite(trigPin, HIGH); //dispara o pulso de ultrasom
  delayMicroseconds(10); //define em 10 microsegundos a duração do pulso de ultrasom
  digitalWrite(trigPin,LOW);//para o pulso de ultrasom
  duracao = pulseIn(echoPin,HIGH); //lê o pino echo que retorna o tempo de viagem do pulso de ultrasom
  distanciaCm = duracao * VELOCIDADE_DO_SOM /2; //calcula a distância em centímetros
  Serial.print("Distância em cm: "); //exibe no monitor serial a mensagem "Distância em cm:"
  Serial.println(distanciaCm);//exibe o valor da distância e muda de linha
  delay(1000); //aguarda 1 segundo para fazer a próxima leitura
}

Entendendo o código passo a passo

  • Configuração dos pinos: o trigPin é saída (envia o pulso) e o echoPin é entrada (recebe a resposta).
  • Disparo do pulso: colocamos o Trig em LOW por 2 microsegundos para “limpar” o pino, depois HIGH por 10 microsegundos — esse é o disparo padrão exigido pelo datasheet do HC-SR04.
  • Leitura do eco: pulseIn(echoPin, HIGH) mede, em microsegundos, quanto tempo o pino Echo ficou em nível alto — ou seja, o tempo de ida e volta do som.
  • Cálculo da distância: multiplicamos pela velocidade do som e dividimos por 2, já que o som percorre o caminho até o obstáculo e volta.
  • Saída no Monitor Serial: o valor é impresso a cada 1 segundo, na velocidade de 115200 bps.

Testando no Monitor Serial

Depois de enviar o código, abra o Monitor Serial da Arduino IDE (velocidade 115200) e aproxime ou afaste a mão do sensor. Você verá os valores de distância em centímetros mudando em tempo real. Se os números ficarem instáveis, verifique o alinhamento do sensor e possíveis interferências de objetos próximos às laterais.

image-1 Medindo Distância com o ESP8266 e o Sensor Ultrassônico HC-SR04

Próximos passos: e se essa leitura fosse por Wi-Fi?

Esse é só o primeiro passo. Assim como fizemos no artigo de controle de LEDs por Wi-Fi, o próximo desafio natural é expor essa leitura de distância em um servidor web hospedado no próprio ESP8266 — ou até enviar os dados para um app ou painel remoto. Assim, dá para acompanhar a distância de qualquer lugar da rede, sem precisar do Monitor Serial aberto.

Conclusão

Com poucos componentes e um código enxuto, já temos um sensor de distância funcional rodando no ESP8266. É a base para projetos como sensores de estacionamento, medidores de nível de reservatório, alarmes de presença e robótica com desvio de obstáculos. Fique de olho nos próximos artigos, onde vamos conectar esse sensor à rede Wi-Fi.

Gostou do projeto? Confira também o artigo sobre controle de LEDs via Wi-Fi com o ESP8266 para continuar explorando o universo do IoT com placas ESP8266.

Compartilhe:

Profissional engajado com as últimas tendências tecnológicas e de gestão, buscando continuamente aprimorar suas competências e compartilhar seu conhecimento.

Publicar comentário