ESP8266 - Sensor ultrasónico
Este tutorial te enseña cómo usar el ESP8266 y un sensor ultrasónico para medir la distancia a obstáculos u objetos. En detalle, aprenderemos:
- Cómo funciona un sensor ultrasónico
- Cómo conectar el sensor ultrasónico al ESP8266
- Cómo programar el ESP8266 para medir la distancia utilizando el sensor ultrasónico
- Cómo filtrar el ruido de las mediciones de distancia del sensor ultrasónico en el código de ESP8266
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del sensor ultrasónico
El sensor ultrasónico HC-SR04 se utiliza para determinar la distancia a un objeto mediante ondas ultrasónicas.
Disposición de pines del sensor ultrasónico
El sensor ultrasónico HC-SR04 tiene cuatro pines:
- Pin VCC: debe estar conectado a VCC (5V)
- Pin GND: debe estar conectado a GND (0V)
- Pin TRIG: este pin es donde se recibe la señal de control (pulso) desde el ESP8266.
- Pin ECHO: este pin envía una señal (pulso) al ESP8266. El ESP8266 mide la duración del pulso para calcular la distancia.

Cómo funciona
- El microcontrolador genera un pulso de 10 microsegundos en el pin TRIG, lo que provoca que el sensor ultrasónico emita ondas ultrasónicas.
- La onda ultrasónica se refleja después de chocar con un obstáculo.
- Luego, el sensor ultrasónico detecta la onda ultrasónica reflejada y mide su tiempo de propagación.
- El sensor ultrasónico genera un pulso en el pin ECHO, cuya duración es igual al tiempo de propagación de la onda ultrasónica.
- El microcontrolador mide la duración del pulso en el pin ECHO y calcula la distancia entre el sensor y el obstáculo.
Cómo obtener la distancia desde un sensor ultrasónico
- Para calcular la distancia desde el sensor ultrasónico, deben seguirse dos pasos (1 y 6 en la sección Cómo Funciona):
- Generar un pulso de 10 microsegundos en el pin TRIG.
- Medir la duración del pulso en el pin ECHO.
- Calcular la distancia entre el sensor y el obstáculo.
Cálculo de la distancia
Tenemos:
- El tiempo de viaje de la onda ultrasónica (µs): travel_time = pulse_duration
- La velocidad de la onda ultrasónica: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs
Así que:
- La distancia de propagación de la onda ultrasónica (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
- La distancia entre el sensor y el obstáculo (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration
ESP8266 - Sensor ultrasónico
Podemos usar dos pines de un ESP8266 para medir la distancia de un sensor ultrasónico: un pin está conectado al pin TRIG para generar un pulso de 10 µs, y el otro pin está conectado al pin ECHO para medir el pulso del sensor.
Diagrama de Cableado

This image is created using Fritzing. Click to enlarge image
Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.
Cómo programar para un sensor ultrasónico
- Genera un pulso de 10 microsegundos en el pin D5 del ESP8266 utilizando las funciones [digitalWrite()] y [delayMicroseconds()]. Por ejemplo:
- Configura el pin en ALTO con digitalWrite(), luego espera 10 microsegundos con delayMicroseconds(), y luego configura el pin en BAJO con digitalWrite().
- Medir la duración del pulso (µs) en el pin D6 de Arduino utilizando la función pulseIn(). Por ejemplo:
- Calcular la distancia (cm):
Código ESP8266
Pasos R\u00e1pidos
Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:
- Consulta el tutorial cómo configurar el entorno para ESP8266 en el IDE de Arduino si es la primera vez que usas ESP8266.
- Conecta los componentes tal como se muestran en el diagrama.
- Conecta la placa ESP8266 a tu computadora utilizando un cable USB.
- Abre el IDE de Arduino en tu computadora.
- Elige la placa ESP8266 correcta, por ejemplo (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM correspondiente.
- Copia el código y ábrelo en Arduino IDE.
- Haz clic en el botón Subir en el IDE de Arduino para compilar y subir el código al ESP8266.

- Abre el Monitor Serial
- Mueve tu mano cerca del sensor ultrasónico
- Comprueba la distancia entre el sensor y tu mano que se muestra en el Monitor Serial
Explicación del código
¡Consulta la explicación línea por línea contenida en los comentarios del código fuente!
Cómo filtrar el ruido de las mediciones de distancia del sensor ultrasónico
El resultado de la medición de un sensor ultrasónico puede contener ruido, lo que puede dar lugar a operaciones no deseadas en ciertas aplicaciones. Para eliminar el ruido, se puede utilizar el siguiente algoritmo:
- Toma varias mediciones y guárdalas en un arreglo
- Ordena el arreglo en orden ascendente
- Filtra el ruido
- Algunas de las muestras más pequeñas se consideran ruido → ignóralas
- Algunas de las muestras más grandes se consideran ruido → ignóralas
- Calcula el promedio de las muestras centrales
- Las cinco muestras más pequeñas deben descartarse.
- Las cinco muestras más grandes deben descartarse.
- Se debe tomar la media de las 10 muestras centrales (del quinto al decimocuarto).
El código de ejemplo a continuación toma 20 mediciones:
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.
Desafíate a ti mismo
Utilice un sensor ultrasónico para cualquiera de los siguientes proyectos:
- Construir un sistema de evitación de colisiones para un coche teledirigido.
- Estimar el grado de llenado de un cubo de basura.
- Monitorear el nivel de un cubo de basura.
- Automatizar la apertura y el cierre de un cubo de basura. Consejo: Ver ESP8266 - Servo Motor.
Aplicaciones de sensores ultrasónicos
- Prevención de colisiones
- Estimación de la capacidad
- Estimación de la altura
- Identificación de objetos cercanos