BlogCapteurs Ultrason : Comparatif

Capteurs Ultrason Distance & Niveau : Comparatif Complet HC-SR04, JSN-SR04T, A02YYUW, URM37

📅 28 avril 2026
⏱️ 22 min de lecture
📡 Capteurs

Du HC-SR04 à 0,50 € jusqu'aux capteurs industriels MaxSonar, tour d'horizon complet des modules ultrason disponibles pour les makers : portée réelle, zone aveugle, interfaces, étanchéité et code prêt à l'emploi pour ESP32 et Arduino.

📡 Principe de fonctionnement des capteurs ultrason

Un capteur ultrason mesure une distance en chronométrant le temps de vol (Time of Flight, ToF) d'une impulsion acoustique à 40 kHz. L'émetteur envoie une salve d'ultrasons ; le récepteur détecte l'écho renvoyé par l'obstacle. La distance est calculée avec :

d = (t × vson) / 2
avec t le temps aller-retour (µs) et vson ≈ 343 m/s à 20 °C (vitesse variable selon la température)

La précision dépend de plusieurs facteurs souvent sous-estimés :

  • Température de l'air — la vitesse du son varie de ≈ 0,6 m/s/°C. Sans compensation, une erreur de 10 °C introduit ~1,7 % d'erreur.
  • Angle d'incidence — un angle supérieur à 15–20° par rapport à la normale de la surface peut disperser l'écho.
  • Zone aveugle — distance minimale en dessous de laquelle le capteur ne distingue pas l'émission de la réception (2 à 30 cm selon le modèle).
  • Diagramme de rayonnement — le faisceau n'est pas un rayon laser : il forme un cône de 15–30° qui peut capter des surfaces parasites.

🔵 HC-SR04 / HC-SR04P — Le classique incontournable

📏

Portée

2 – 400 cm

🎯

Précision typique

±3 mm

Alimentation

HC-SR04 : 5 V
HC-SR04P : 3,3 – 5 V

💶

Prix indicatif

0,40 – 0,80 €

Interface Trigger / Echo

Le module expose 4 broches : VCC, GND, TRIG (impulsion 10 µs pour déclencher la mesure) et ECHO (signal haut pendant la durée du vol). Pas d'I²C ni de UART : tout repose sur la mesure de largeur d'impulsion.

Attention avec l'ESP32 : la broche ECHO du HC-SR04 classique sort à 5 V. L'ESP32 est tolérant 3,3 V. Utilisez un diviseur résistif 1kΩ/2kΩ ou le HC-SR04P (variante 3,3 V native).

✅ Points forts

  • Prix imbattable
  • Documentation et librairies abondantes
  • Zone aveugle faible (2 cm)
  • Fonctionne sans librairie (2 lignes de code)

⚠️ Limites

  • Non étanche — aucune utilisation en extérieur humide
  • HC-SR04 classique : ECHO à 5 V (incompatible 3,3 V direct)
  • Pas de compensation de température
  • Sensible aux vibrations et surfaces molles (mousse, tissus)
  • Rafale unique : pas de mesures simultanées multi-capteurs sans mux

🟢 US-100 — Compensation de température intégrée

📏

Portée

2 – 450 cm

🎯

Précision typique

±2 mm (avec compensation)

Alimentation

2,4 – 5,5 V

💶

Prix indicatif

1,50 – 2,50 €

Mode UART ou Trigger/Echo

L'US-100 est configurable via un cavalier. En mode UART 9600 bauds, envoyer 0x55 retourne la distance sur 2 octets (MSB / LSB en mm) ; envoyer 0x50 retourne la température interne. En mode Trigger/Echo, il se comporte comme un HC-SR04 mais nativement 3,3 V.

Le capteur de température intégré (précision ±2 °C) corrige automatiquement la vitesse du son en mode UART, ce qui améliore significativement la précision en environnements à température variable (garage, extérieur abrité).

✅ Points forts

  • Nativement 3,3 V : compatible ESP32 sans adaptateur
  • Compensation de température (mode UART)
  • Double mode : UART ou Trigger/Echo
  • Portée légèrement supérieure au HC-SR04

⚠️ Limites

  • Non étanche
  • Prix légèrement supérieur au HC-SR04
  • Cavalier de configuration fragile à la longue

🟡 JSN-SR04T — Sonde étanche déportée

📏

Portée

20 – 450 cm

🎯

Précision typique

±1 mm

🌊

Étanchéité

Sonde IP65

💶

Prix indicatif

3 – 6 €

Architecture sonde + carte de contrôle

Le JSN-SR04T sépare la sonde ultrason étanche (transducteur IP65 à câble) du module électronique. La sonde se monte à travers une paroi ou un couvercle de cuve, tandis que la carte reste au sec. Le câble de liaison mesure généralement 2,5 m.

L'interface est identique au HC-SR04 (Trigger 10 µs / ECHO) mais fonctionne en 5 V. La zone aveugle est plus importante (20 cm) : à retenir pour les cuves de faible hauteur ou les mesures proches.

Versions : le JSN-SR04T-2.0 propose en plus un mode UART. Vérifiez le silkscreen sur la carte pour confirmer la version.

✅ Points forts

  • Sonde IP65 : fonctionne en milieu humide, pluie, condensation
  • Montage en paroi de cuve simple (∅ 22 mm)
  • Bonne précision pour le prix
  • Cable 2,5 m : installation flexible

⚠️ Limites

  • Zone aveugle 20 cm — inutilisable pour mesurer les derniers 20 cm
  • Carte électronique non étanche (à protéger)
  • 5 V sur ECHO (pont diviseur nécessaire avec ESP32)
  • Pas de compensation de température

🔵 A02YYUW — Entièrement étanche, interface UART

📏

Portée

3 – 450 cm

🎯

Précision typique

±1 mm

🌊

Étanchéité

IP67 (sonde + connecteur)

💶

Prix indicatif

5 – 10 €

Module tout-en-un IP67

Contrairement au JSN-SR04T, l'A02YYUW intègre l'électronique directement dans la sonde. Il communique en UART 9600 bauds uniquement (3,3 V natif) : envoyer 0x01 pour déclencher une mesure, lire 3 octets en retour (0xFF, MSB, LSB).

La zone aveugle est réduite à 3 cm — excellent pour les cuves peu profondes. Idéal pour la surveillance de niveau de cuve d'eau, de récupérateur de pluie ou de réservoir monté sur Home Assistant via ESP32.

✅ Points forts

  • IP67 complet : immersion courte tolérée
  • Zone aveugle minimale (3 cm)
  • 3,3 V natif, UART simple à lire
  • Compact : ∅ 22 mm, montage en paroi ou surface
  • Robuste aux projections d'eau

⚠️ Limites

  • UART uniquement — pas de mode Trigger/Echo pour librairies existantes
  • Fréquence de mesure limitée (~10 Hz max recommandé)
  • Pas de compensation de température

🟠 URM37 — Polyvalent multi-interface

📏

Portée

5 – 500 cm

🎯

Précision typique

±1 cm (mode PWM), ±2 mm (UART)

🌡️

Thermomètre intégré

−10 à +70 °C (±1 °C)

💶

Prix indicatif

15 – 25 €

Trois modes d'interface

L'URM37 (DFRobot) se configure via ses broches MODE :

  • Mode UART (RS232 TTL) — commandes texte, lecture distance + température, compensation automatique
  • Mode PWM — largeur d'impulsion proportionnelle à la distance, comme le HC-SR04 mais sur une seule broche
  • Mode Trigger/Echo — compatible bibliothèques HC-SR04

Le capteur de température intégré (précision ±1 °C) permet une compensation automatique en mode UART, ce qui en fait l'un des plus précis de la catégorie sub-20 €.

✅ Points forts

  • 3 interfaces : UART, PWM, Trigger/Echo
  • Thermomètre intégré + compensation automatique
  • Longue portée (500 cm)
  • Compatible avec la plupart des librairies HC-SR04
  • Qualité de fabrication supérieure aux modules génériques

⚠️ Limites

  • Prix 30× supérieur au HC-SR04
  • Non étanche (version standard)
  • 5 V uniquement
  • Surdimensionné pour des projets simples

🔴 MaxSonar MB7389 — Niveau industriel

📏

Portée

30 cm – 765 cm

🎯

Précision typique

±1 cm (≥ 50 cm)

🌊

Étanchéité

IP67, −40 à +85 °C

💶

Prix indicatif

35 – 60 €

Destiné aux applications exigeantes

Les capteurs MaxBotix HRXL-MaxSonar (MB7389, MB7395…) sont conçus pour des applications industrielles : mesure de niveau de décharge d'eaux pluviales, cuves de process, détection présence longue distance. Ils proposent simultanément 3 sorties : analogique (0–Vcc), UART (ASCII) et PWM.

Le filtre de bruit interne (multipoint median filter) rejette les échos parasites et les fausses mesures, là où les modules génériques décrochent. La plage de température opérationnelle (−40 à +85 °C) les rend adaptés à une installation en extérieur direct sans boîtier.

✅ Points forts

  • IP67 + plage −40/+85 °C : installation extérieure directe
  • 3 sorties simultanées : analogique, UART, PWM
  • Filtre bruit interne : fiabilité excellente
  • 3,3 V / 5 V
  • Longue portée : 765 cm

⚠️ Limites

  • Prix élevé (35–60 €)
  • Zone aveugle importante (30 cm)
  • Surdimensionné pour un projet maker domestique

📊 Tableau comparatif détaillé

Capteur Portée Zone aveugle Précision Interface Alimentation Étanchéité Comp. temp. Prix ~
HC-SR04 2 – 400 cm 2 cm ±3 mm Trig/Echo 5 V ❌ Non 0,50 €
HC-SR04P 2 – 400 cm 2 cm ±3 mm Trig/Echo 3,3 – 5 V ❌ Non 0,80 €
US-100 2 – 450 cm 2 cm ±2 mm UART / Trig 3,3 – 5 V ❌ Non ✅ UART 2 €
JSN-SR04T 20 – 450 cm 20 cm ±1 mm Trig/Echo 5 V ✅ Sonde IP65 4 €
A02YYUW 3 – 450 cm 3 cm ±1 mm UART 3,3 – 5 V ✅ IP67 total 7 €
URM37 5 – 500 cm 5 cm ±1–2 mm UART / PWM / Trig 5 V ❌ Non ✅ UART 20 €
MaxSonar MB7389 30 – 765 cm 30 cm ±1 cm Ana + UART + PWM 3,3 – 5 V ✅ IP67 ✅ Intégrée 45 €
ℹ️

Les portées maximales sont mesurées en conditions idéales (surface plane perpendiculaire, température ambiante ~20 °C). En conditions réelles (surface d'eau, liquide en mouvement, cuve en PVC), réduisez de 20 à 30 % la portée utile effective.

🏗️ Applications pratiques

🪣 Mesure de niveau de cuve / réservoir

Le capteur est monté au sommet de la cuve, pointant vers le bas. La distance mesurée correspond à l'espace entre le capteur et la surface du liquide. Le niveau est calculé par soustraction :

niveau_cm = hauteur_cuve_cm − distance_mesurée_cm
volume_L = (niveau_cm / hauteur_cuve_cm) × capacité_totale_L

Recommandations pour ce cas d'usage :

  • Cuve intérieure sèche (cuve à fuel, eau potable couverte) → US-100 ou JSN-SR04T : bon rapport qualité/prix
  • Cuve extérieure / récupérateur pluie → A02YYUW : IP67 nécessaire, zone aveugle 3 cm suffisante
  • Cuve industrielle ou milieu sévère → MaxSonar MB7389
  • Zone aveugle critique : si le capteur est monté à 10 cm du couvercle et la cuve fait 50 cm, un capteur avec zone aveugle de 20 cm (JSN-SR04T) ne verra pas le niveau plein !

🚗 Détection d'obstacle / aide au stationnement

Pour détecter la présence d'un véhicule (arrêt de portail, parking, capteur de recul DIY), le HC-SR04P ou l'US-100 suffisent largement. La portée effective utile se situe entre 20 et 200 cm dans ce contexte. Le faisceau large (~30°) est ici un avantage : il couvre une zone plutôt qu'un point.

🚶 Détection de présence / compteur de passage

Pour des distances de 0,5 à 3 m avec une rafraîchissement rapide, l'US-100 en mode UART ou l'URM37 sont préférables : la compensation de température évite les fausses détections dues aux variations thermiques d'une pièce ou d'un couloir.

🌧️ Pluviomètre à débordement / mesure de niveau de rivière

Usage délicat car la surface d'eau peut être agitée et la température varie fortement. Recommandé : MaxSonar MB7389 (IP67, −40/+85 °C, filtre multi-echo interne) ou, en version économique, l'A02YYUW protégé dans un boîtier orienté.

💻 Code ESP32 / Arduino

HC-SR04P — Mode Trigger / Echo (ESP32)

#define PIN_TRIG 5
#define PIN_ECHO 18

void setup() {
  Serial.begin(115200);
  pinMode(PIN_TRIG, OUTPUT);
  pinMode(PIN_ECHO, INPUT);
}

float mesureDistance() {
  digitalWrite(PIN_TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(PIN_TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(PIN_TRIG, LOW);

  long duree = pulseIn(PIN_ECHO, HIGH, 25000); // timeout 25 ms → ~430 cm
  if (duree == 0) return -1;                   // pas d'écho
  return duree * 0.01715;                      // cm  (v_son 343 m/s à 20°C)
}

void loop() {
  float d = mesureDistance();
  if (d > 0)
    Serial.printf("Distance : %.1f cm\n", d);
  delay(100);
}

A02YYUW — Mode UART (ESP32)

#include <HardwareSerial.h>

HardwareSerial sensorSerial(1);  // UART1

#define RX_PIN 16
#define TX_PIN 17

void setup() {
  Serial.begin(115200);
  sensorSerial.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);
}

int lireDistanceMM() {
  sensorSerial.write(0x01);          // déclencher une mesure
  delay(100);
  if (sensorSerial.available() >= 3) {
    uint8_t buf[3];
    sensorSerial.readBytes(buf, 3);
    if (buf[0] == 0xFF) {            // octet de start
      return (buf[1] << 8) | buf[2]; // distance en mm
    }
  }
  return -1;
}

void loop() {
  int d = lireDistanceMM();
  if (d > 0)
    Serial.printf("Distance : %d mm (%.1f cm)\n", d, d / 10.0f);
  delay(500);
}

US-100 — Mode UART avec température (ESP32)

#include <HardwareSerial.h>

HardwareSerial sensorSerial(2);  // UART2

#define RX_PIN 16
#define TX_PIN 17

void setup() {
  Serial.begin(115200);
  sensorSerial.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);
}

int lireDistanceMM() {
  while (sensorSerial.available()) sensorSerial.read(); // vider buffer
  sensorSerial.write(0x55);
  delay(50);
  if (sensorSerial.available() >= 2) {
    uint8_t msb = sensorSerial.read();
    uint8_t lsb = sensorSerial.read();
    return (msb << 8) | lsb;  // distance en mm
  }
  return -1;
}

float lireTemperature() {
  while (sensorSerial.available()) sensorSerial.read();
  sensorSerial.write(0x50);
  delay(50);
  if (sensorSerial.available() >= 2) {
    uint8_t msb = sensorSerial.read();
    uint8_t lsb = sensorSerial.read();
    return ((msb << 8) | lsb) / 10.0f - 45.0f;  // °C
  }
  return -99.0f;
}

void loop() {
  Serial.printf("Distance : %d mm | Température : %.1f °C\n",
                lireDistanceMM(), lireTemperature());
  delay(1000);
}
💡

Pour intégrer ces capteurs dans Home Assistant via ESPHome, utilisez la plateforme ultrasonic pour le HC-SR04/US-100 en mode Trigger/Echo, ou un composant UART personnalisé (uart.read + lambda) pour les interfaces série A02YYUW et US-100.

🎯 Nos recommandations

🧪

Prototypage rapide

HC-SR04P — 0,80 €, 3,3 V natif, plug & play avec Arduino/ESP32. Parfait pour valider un concept.

🏠

Domotique intérieure

US-100 — compensation de température, UART propre, nativement 3,3 V. Idéal pour ESPHome/Home Assistant.

🪣

Niveau de cuve ext.

A02YYUW — IP67, zone aveugle 3 cm, UART simple. Le choix pour un récupérateur de pluie ou citerne.

🏭

Application exigeante

MaxSonar MB7389 — IP67, −40/+85 °C, filtre bruit interne. Pour environnements sévères ou longue portée.

🔑 Règles de sélection en 4 questions

  1. Y a-t-il de l'humidité ? Oui → JSN-SR04T (sonde exposée) ou A02YYUW (tout exposé) ou MaxSonar (industriel)
  2. Quelle est la distance minimale à mesurer ? < 20 cm → A02YYUW ou HC-SR04P. > 20 cm → tous les modèles conviennent
  3. La température varie beaucoup (> 15 °C d'écart) ? Oui → US-100 (UART) ou URM37 ou MaxSonar
  4. Budget ? < 2 € → HC-SR04P ou US-100 ; 2–10 € → JSN-SR04T ou A02YYUW ; > 10 € → URM37 ou MaxSonar

Besoin d'intégrer un capteur ultrason dans votre installation ?

Nos centrales domotiques Ecophot (ECO-DOMO-22/30) supportent nativement les capteurs ultrason via ESPHome. Visualisation temps réel, alertes, historique.

Voir nos produits

À propos de l'auteur

Équipe Ecophot — Spécialistes en conception électronique sur mesure depuis 2020. Basés en Lorraine, nous concevons et fabriquons des solutions domotiques et de mesure pour particuliers et professionnels.