ESP8266 - Sensor Ultrassônico
Este tutorial ensina você a usar o ESP8266 e um sensor ultrassônico para medir a distância até obstáculos ou objetos. Em detalhes, vamos aprender:
- Como o sensor ultrassônico funciona
- Como conectar o sensor ultrassônico ao ESP8266
- Como programar o ESP8266 para medir a distância usando o sensor ultrassônico
- Como filtrar o ruído das medições de distância do sensor ultrassônico no código do ESP8266
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Sensor Ultrassônico
O sensor ultrassônico HC-SR04 é usado para determinar a distância até um objeto por meio de ondas ultrassônicas.
Pinagem do Sensor Ultrassônico
O sensor ultrassônico HC-SR04 tem quatro pinos:
- Pino VCC: deve ser conectado ao VCC (5V)
- Pino GND: deve ser conectado ao GND (0V)
- Pino TRIG: este pino recebe o sinal de controle (pulso) do ESP8266.
- Pino ECHO: este pino envia um sinal (pulso) para o ESP8266. O ESP8266 mede a duração do pulso para calcular a distância.

Como Funciona
- O microcontrolador produz um pulso de 10 microssegundos no pino TRIG, o que faz o sensor ultrassônico emitir ondas ultrassônicas.
- A onda ultrassônica é refletida ao atingir um obstáculo.
- Em seguida, o sensor ultrassônico detecta a onda ultrassônica refletida e mede o seu tempo de percurso.
- O sensor ultrassônico gera um pulso no pino ECHO, com a duração do pulso igual ao tempo de percurso da onda ultrassônica.
- O microcontrolador mede a duração do pulso no pino ECHO e calcula a distância entre o sensor e o obstáculo.
Como Obter a Distância do Sensor Ultrassônico
- Para calcular a distância a partir do sensor ultrassônico, dois passos devem ser seguidos (1 e 6 na seção Como Funciona):
- Gere um pulso de 10 microssegundos no pino TRIG.
- Meça a duração do pulso no pino ECHO.
- Calcule a distância entre o sensor e o obstáculo.
Cálculo da Distância
Temos:
- O tempo de percurso da onda ultrassônica (µs): travel_time = pulse_duration
- A velocidade da onda ultrassônica: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs
Então:
- A distância percorrida pela onda ultrassônica (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
- A distância entre o sensor e o obstáculo (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration
ESP8266 - Sensor Ultrassônico
Podemos usar dois pinos de um ESP8266 para medir a distância com um sensor ultrassônico: um pino é conectado ao pino TRIG para gerar um pulso de 10µs, e o outro pino é conectado ao pino ECHO para medir o pulso do sensor.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
Como Programar o Sensor Ultrassônico
- Gere um pulso de 10 microssegundos no pino D5 do ESP8266 usando as funções digitalWrite() e delayMicroseconds(). Por exemplo:
- Coloque o pino em HIGH com digitalWrite(), espere 10 microssegundos com delayMicroseconds() e depois coloque o pino em LOW com digitalWrite().
- Meça a duração do pulso (µs) no pino D6 do Arduino usando a função pulseIn(). Por exemplo:
- Calcule a distância (cm):
Código ESP8266
Passos Rápidos
Para começar com o ESP8266 no Arduino IDE, siga estes passos:
- Veja o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Ligue os componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Copie o código e abra-o no Arduino IDE.
- Clique no botão Upload do Arduino IDE para compilar e fazer o upload do código para o ESP8266.

- Abra o Serial Monitor
- Mova a mão perto do sensor ultrassônico
- Veja no Serial Monitor a distância entre o sensor e a sua mão
Explicação do Código
Veja a explicação linha por linha contida nos comentários do código-fonte!
Como Filtrar o Ruído das Medições de Distância do Sensor Ultrassônico
O resultado da medição de um sensor ultrassônico pode incluir ruído, o que pode causar operações indesejadas em certas aplicações. Para remover o ruído, o algoritmo a seguir pode ser usado:
- Faça várias medições e armazene-as em um array
- Ordene o array em ordem crescente
- Filtre o ruído
- Algumas das menores amostras são consideradas ruído → ignore-as
- Algumas das maiores amostras são consideradas ruído → ignore-as
- Calcule a média das amostras do meio
- As cinco menores amostras devem ser descartadas.
- As cinco maiores amostras devem ser descartadas.
- Deve-se tirar a média das 10 amostras do meio (da 5ª à 14ª).
O código de exemplo abaixo faz 20 medições:
Vídeo
Desafie-se
Use um sensor ultrassônico em qualquer um dos projetos a seguir:
- Construa um sistema de prevenção de colisão para um carrinho de controle remoto.
- Estime o nível de enchimento de uma lixeira.
- Monitore o nível de uma lixeira.
- Automatize a abertura e o fechamento de uma lixeira. Dica: Veja ESP8266 - Servo Motor.
Aplicações do Sensor Ultrassônico
- Prevenção de Colisões
- Estimativa de Capacidade
- Estimativa de Altura
- Identificação de Objetos Próximos