Home / IoT, Sensors & ESP32 /HC-SR04 Ultrasonic Sensor with ESP32: Distance Done Right

HC-SR04 Ultrasonic Sensor with ESP32: Distance Done Right

Echo timing, voltage level-shifting on ESP32, mounting rules and filtering for stable distance readings.

Oliver Adam 6 min read 640 views 7 August 2026
HC-SR04 Ultrasonic Sensor with ESP32: Distance Done Right

The HC-SR04 bounces 40 kHz sound off a target and times the echo. Distance = pulse_width × 343 m/s ÷ 2. Simple physics, three practical traps level shifting, mounting angles and noisy echoes.

At a glance: 6 minute guide · part 7 of 10 in the complete IoT and ESP32 guide track · includes a worked example and a quick-reference table.

Wiring and level shifting

Here is the working theory in one pass. Trigger and Echo are 5 V signals on the classic module; the ESP32 is a 3.3 V part. Divide the Echo line (1 kΩ + 2 kΩ divider) or use a 3.3 V-compatible variant. TRIG from the ESP32 drives the module fine at 3.3 V logic.

P a r a m e t e r
V a l u e
N o t e
Trigger pulse 10 µs Standard
Speed of sound 343 m/s at 20 °C ±0.6 %/°C drift
cm from µs µs ÷ 58 Rule of thumb
Range 2 cm - 4 m Soft/angled targets shrink it
Beam angle ~15° Keep clear of shrouds

Timing and conversion

Send a 10 µs trigger, then measure the Echo pulse with pulseIn(). Centimetres = pulse_µs ÷ 58. Timeouts matter: cap pulseIn at ~30 ms so a missing echo does not hang the loop. Reading faster than ~10 Hz interacts with the previous echo train.

Mounting and filtering

Sound reflects off angled surfaces mount perpendicular to the target. Soft fabrics absorb; narrow gaps cause wall echoes. Median-filter five readings (drop the outlier) rather than averaging one wild echo ruins an average but vanishes in a median.

How to apply this in your build

Work through the sequence below each step assumes the previous one passed. For numbers that need calculating, the linked tools at the end of this guide do the arithmetic instantly.

  1. Level-shift Echo before connecting to ESP32 GPIO
  2. Trigger, then pulseIn() with a 30 ms timeout
  3. Convert with µs ÷ 58 for centimetres
  4. Median-filter five samples before deciding anything

Worked example

A water-tank gauge read 12 cm high whenever the surface rippled. Five-sample median filtering plus mounting the sensor off-centre removed the splash echoes and steadied readings to ±1 cm. Run the numbers yourself with the RC Time Constant and the result should agree to within rounding.

Practical note from the bench. Median over mean is the Procirel default for any bouncy sensor ultrasonic, lidar, even noisy ADC channels.

Common mistakes to avoid

  • Connecting 5 V Echo straight to ESP32 GPIO
  • No timeout on pulseIn a lost echo freezes the sketch
  • Averaging without outlier rejection one bad echo poisons the result

Key takeaways

  • Wiring and level shifting the foundation of this guide; revisit it if any measurement here surprises you.
  • Timing and conversion the foundation of this guide; revisit it if any measurement here surprises you.
  • Mounting and filtering the foundation of this guide; revisit it if any measurement here surprises you.

Who this guide is for

Beginners get a single focused topic instead of a whole textbook chapter. It assumes the track’s earlier pages in the complete IoT and ESP32 guide path. Intermediate readers use it as a reference the table, the worked example and the mistake list answer the questions that come up mid-build. If you teach, the structure (theory, application, example, failure modes) maps cleanly onto a lab session.

What you need before starting

Nothing exotic: the parts or tools named in the guide, a multimeter. The RC Time Constant open in a tab. Level-shift Echo before connecting to ESP32 GPIO before you begin the guide assumes it and keep the quick-reference table above within sight while you work through the steps.

Quick reference card

Aspect Where to find it in this guide
Core theory Wiring and level shifting
Application steps How to apply this in your build
Worked numbers Worked example
Failure modes Common mistakes to avoid

How this fits the complete IoT and ESP32 guide track

This guide is one stop in the structured learning path. Start from the complete IoT and ESP32 guide complete guide for the full map, or continue with DHT22 climate sensing and ESP32 GPIO rules. For the arithmetic, open the RC Time Constant.

Frequently asked questions

Can HC-SR04 work outdoors? Humidity and temperature shift the speed of sound. Compensate the constant or accept ~2 % error, and protect the transducers from water.

What if I need more than 4 m? Move to an industrial ultrasonic or ToF laser sensor (VL53L1X reaches 4 m too, but precisely).

Is there a calculator for this? Yes the RC Time Constant tool runs the formulas from this guide instantly, client-side, with no signup.

Continue the learning path

Measurement discipline

Keep a lab notebook entry for every build in this track. The measured values, the deviations from the guide and the reason for each. Six months from now, those notes are worth more than any tutorial. They describe your bench and your components rather than a general case.

When a result here disagrees with your expectation, write down both numbers before changing anything. The gap between predicted and measured is where the real engineering lives. It is usually a tolerance, a parasitic or an assumption that was never checked.

Formulas and checks from this guide

Verification checklist for this track: watch RSSI before blaming code, measure supply current during radio bursts. Confirm MQTT topics against the broker log. Wireless bugs are usually power or signal problems wearing a software disguise.

Bookmark this page against your next build in the track. The checklist above is the same one used across 23 guides in this series.

Hard-won notes

Measure current during transmit bursts. Sags under load are power problems, no firmware fixes those.

Location, then device, then measurement. Document the tree before flashing the first device.

Extended Application Notes

This section expands the practical application of hc-sr04 ultrasonic sensor with esp32: distance done right beyond the worked example, into the situations builders actually meet. Component substitution: when the exact specified part is unavailable, the substitution logic follows the governing parameter of this design, not the nominal value, and the verification step after any substitution is to re-measure the one quantity this guide identified as critical. Batch variation: components vary, and the design margins recommended in the sections above absorb that variation; if a second build behaves differently, the difference itself is diagnostic and points to the tolerance that dominated. Environmental limits: temperature, supply variation and ageing each push a real circuit away from its bench behaviour, and the recommended practice is to test the extremes deliberately rather than discover them in the field. These notes exist because the bench taught them, repeatedly, and each one was once a real troubleshooting session that ended in understanding.

Failure Analysis in Depth

The mistakes section above lists the traps; this section explains why each trap exists and how to recognize it early. Connecting 5 V Echo straight to ESP32 GPIO No timeout on pulseIn a lost echo freezes the sketch Averaging without outlier rejection one bad echo poisons the result. Each of these failures has a signature that appears in measurement before it appears in smoke: a reading that drifts, a waveform that differs from the prediction, a temperature that climbs faster than the calculation. The discipline this guide teaches is to measure at the first sign, not at the last, and the sections above give the specific instrument and setting for each check. Failure analysis is not pessimism; it is the fastest curriculum in electronics, because a fault understood once is a fault prevented forever.

Pre-Build Checklist

Before powering any build of this design, run the list: every component value verified against the specification above, the critical measurement points identified and accessible, the instrument modes and ranges chosen in advance, the expected values written down beside the bench, and the power source current-limited for first application. The checklist takes two minutes and replaces the most expensive class of beginner error, which is not ignorance but confidence outrunning verification. Builders who adopt the checklist across the guides in this track report first-apply success rates that feel like cheating, but it is not cheating, it is engineering.

What Comes Next

Having worked through this guide, the natural next steps are the adjacent guides in the track index above, each of which assumes exactly the vocabulary this page built. The calculators linked in the tools section verify every number in seconds, and the complete guide at the head of this track maps the entire curriculum. Read once, build once, measure always: that is the method this site teaches and the method every section above followed before publication.

Theory in Practice, Extended

The theory section of hc-sr04 ultrasonic sensor with esp32: distance done right deserves one more pass with the bench in mind, because knowing a relationship and applying it under constraint are different skills. In application, the relationship is never isolated: it interacts with tolerances, with temperature, with the behaviour of adjacent stages, and with the measurement itself. The extended practice is to take the governing formula from the sections above and stress it, deliberately. Push the input to the edge of its specified range and watch the output follow the prediction, then push past it and watch the prediction break, because the edge of the specification is exactly where the formula stops being the whole story. That boundary, found on the bench rather than in the datasheet, is the real knowledge this guide offers beyond the mathematics.

Component Sourcing and Substitution Notes

Real builds meet real supply chains, and this section addresses the practical reality. The specified components in this guide were chosen for the reasons stated in the design sections, but equivalent parts from reputable manufacturers almost always serve, provided the governing parameters match, not merely the nominal ones. The substitution checklist: match the parameter this guide identified as critical, verify the package and pinout against the physical part before layout, check the datasheet revision for silent changes, and re-run the verification measurement after installation. Avoid unbranded surplus and marketplace components for anything this guide treats as safety-relevant; the failure mode of a counterfeit is not degradation, it is unpredictability, and unpredictability defeats every other design decision in the chain.

Instrumentation for This Design

Every measurement recommended in this guide maps to a specific instrument configuration, and this section consolidates them. Voltage checks: DC range selected before probing, leads verified against a known source, meter burden considered when the node is high impedance. Current checks: circuit broken at the defined point, meter inserted with the correct range and fuse status confirmed first. Waveform checks: probe compensated against the reference before any amplitude claim, ground lead kept short, bandwidth sufficient for the edge rather than the repetition rate. The instrumentation discipline matters more than the instrument class, and a modest instrument used correctly outperforms an expensive one used casually, a claim this site demonstrates throughout its measurement guides.

Documentation Template for This Build

Close the loop the way professional builds do: record the design values from this guide, the as-built values including every substitution, the measured results beside the predicted ones, and the deviation notes that explain every gap. The template is short, a single page, and it converts a successful build into a reference that survives component changes, firmware updates and the passage of months. Every guide on this site was built and documented exactly this way before publication, and the discipline is offered here as part of the curriculum rather than an afterthought. A build that is documented is twice built, once in copper and once in confidence.

Last updated 23 August 2026

HC-SR04 Ultrasonic Sensor with ESP32: Distance Done Right