Ultrasonic Sensor with ESP8266: A Guide to Distance Measurement




Ultrasonic Sensors are widely used in electronics and Robotics for measuring distances and detecting objects without physical contact. When combined with an ESP8266 Microcontroller, they become a powerful tool for various Applications, including smart Home Automation, industrial automation, and robotics. In this guide, we’ll explore how to use an ultrasonic sensor with an ESP8266 to measure distances accurately.

What You’ll Need:

Before we begin, make sure you have the following components:

  1. ESP8266 Development Board (e.g., NodeMCU)
  2. Ultrasonic Sensor (HC-SR04)
  3. Breadboard and Jumper Wires
  4. USB Cable for Power and Programming
  5. Arduino IDE (with ESP8266 support) installed on your computer

Understanding the Ultrasonic Sensor (HC-SR04):

The HC-SR04 ultrasonic sensor is a popular choice due to its affordability and Reliability. It works on the principle of sending and receiving ultrasonic waves to measure distance. Here’s how it operates:

  1. Trigger Pulse: The sensor sends out a short ultrasonic pulse (sound wave) when triggered.
  2. Wave Propagation: This pulse travels through the air until it encounters an object.
  3. Reflection: When the pulse hits an object, it bounces back to the sensor as an echo.
  4. Time Measurement: The sensor measures the time it takes for the pulse to travel to the object and back.
  5. Distance Calculation: Using the speed of sound in air (approximately 343 meters per second at room temperature), the sensor calculates the distance to the object.

Wiring the Ultrasonic Sensor to ESP8266:

official <a href=ESP32” class=”wp-image-1277″/>

Connect the ultrasonic sensor to your ESP8266 as follows:

  • VCC (Ultrasonic Sensor) -> 5V (ESP8266)
  • Trig (Ultrasonic Sensor) -> D2 (ESP8266)
  • Echo (Ultrasonic Sensor) -> D1 (ESP8266)
  • GND (Ultrasonic Sensor) -> GND (ESP8266)

Ensure that the power supply voltage matches the sensor’s requirements (usually 5V for the HC-SR04). Also, make sure to connect the trigger (Trig) and echo (Echo) pins to GPIO Pins on the ESP8266 that support interrupts.

Programming the ESP8266:

We’ll be using the Arduino IDE to program the ESP8266. Make sure you’ve installed the necessary ESP8266 board support in the Arduino IDE.

Here’s a simple Arduino sketch to read distance measurements from the ultrasonic sensor:

HTTP://www.w3.org/2000/svg” width=”54″ height=”14″ viewBox=”0 0 54 14″>
#include <NewPing.h> 
#define TRIGGER_PIN D2 
#define ECHO_PIN D1 
#define MAX_DISTANCE 200 
void setup() { Serial.begin(115200); } 
void loop() 
 delay(500); // Wait for a moment 
 unsigned int distance = sonar.ping_cm(); // Get distance in centimeters   
 Serial.print("Distance: "); 
 Serial.print(distance); Serial.println(" cm"); 

Upload this sketch to your ESP8266 board. It initializes the ultrasonic sensor, triggers measurements, and prints the distance in centimeters to the serial monitor.

Testing and Adjustments:

Once the sketch is uploaded, open the serial monitor. You should see distance measurements in centimeters. Place an object in front of the sensor and observe how the readings change as the object moves closer or farther away.

You can adjust the MAX_DISTANCE constant in the sketch to set a maximum range for distance measurements. Be sure to adjust it according to your specific application requirements.


Using an ultrasonic sensor with an ESP8266 opens up a wide range of possibilities for distance measurement and object detection in your projects. Whether you’re building a smart doorbell, a robot that avoids obstacles, or a system for monitoring water levels, understanding how to integrate ultrasonic sensors with the ESP8266 is a valuable skill.

Experiment with different applications and explore additional sensor Features, such as controlling outputs based on distance measurements. With the power of the ESP8266 and the precision of ultrasonic sensors, you can create innovative and practical solutions for various projects.

Leave a Reply

Your email address will not be published. Required fields are marked *

Explore our other blogs.

  • 8-bit vs. 32-bit Microcontrollers in Today’s Projects

  • Nintendo Sues Creators of Popular Switch Emulator Yuzu, Citing Piracy Concerns

  • Raspberry Pi CPU Temperature Range – Everything You Need to Know

  • image of tunnel

    Reverse Tunneling with Raspberry Pi: A Comprehensive Guide