Par Pratyush Gehlot
Les chutes sont l’une des principales causes de blessures chez les personnes âgées et les personnes à mobilité réduite vivant seules. Les approches de surveillance traditionnelles s’appuient sur des caméras ou des appareils portables : les caméras soulèvent d’importants problèmes de confidentialité dans les environnements domestiques, tandis que les appareils portables dépendent du fait que la personne se souvient de les porter et de les garder chargés.
Ce projet présente un système de détection de chute et de surveillance de la présence humaine préservant la vie privée construit sur le ESP32-S3-BOX-3 plate-forme avec plafonnier Capteur radar LD6001 mmWave. Le radar émet des signaux à ondes millimétriques qui se reflètent sur le corps humain, produisant un nuage de points 3D avec des données de position, de vitesse et de qualité du signal, sans capturer aucune information visuelle.
Le système traite ce nuage de points en temps réel via un pipeline à plusieurs étapes : filtrage du bruit, regroupement spatial DBSCAN, extraction de caractéristiques (hauteur, répartition spatiale, variance de vitesse), classification de posture basée sur des règles et machine à états finis multi-preuves pour la détection des chutes. Il classe la posture humaine en cinq états – debout, assis, couché, endormi et chute – et déclenche une alarme sonore lorsqu’une chute est confirmée.
Objectifs de conception clés de ce projet :
- Confidentialité — La détection radar uniquement ne capture aucune image ni aucun son de la personne surveillée
- Aucun appareil portable requis – Détection passive sans aucune coopération nécessaire de la part du sujet
- Traitement embarqué en temps réel — Toutes les détections s’exécutent sur l’appareil sans dépendance au cloud
- Prise en charge de plusieurs personnes — Suit jusqu’à 5 personnes simultanément avec une détection de chute indépendante par cible
- Interface accessible — Interface utilisateur à écran tactile avec affichage de la posture, paramètres configurables et alertes audio
- Débogage à distance — Streaming WiFi de données brutes de nuages de points vers un outil de visualisation 3D sur PC pour l’étalonnage et le développement
Le système est conçu pour être déployé dans les maisons de retraite, les résidences-services, les chambres d’hôpital et les résidences privées où une surveillance continue des chutes est nécessaire sans compromettre la dignité et l’intimité de l’occupant.
Composants requis
| Nom du composant | Quantité | Fiche technique/Lien |
| ESP32S3 BOÎTE3 | 1 | Voir la fiche technique |
| HC12 | 2 | – |
| Radar LD6001 60 GHz | 1 | – |
| Bouclier de batterie 18650 | 1 | – |
| Cellule Li-Ion 18650 | 2 | – |
Schéma de circuit

Assemblage du matériel
Le matériel est divisé en deux unités physiquement distinctes connectées sans fil via des modules radio HC-12 UART.
Partie 1 — Unité de plafond (nœud de capteur)
Monté au plafond, pointant vers le bas. Alimenté par batterie, aucun fil nécessaire.
| Composant | Rôle |
| Radar LD6001 60 GHz | Détecte les humains et génère un nuage de points via UART |
| UART sans fil HC-12 | Transmet les données série du radar sans fil à l’unité de base |
| Bouclier de batterie Li-Ion 18650 | Alimente le radar et le HC-12 à 3,3 V/1 A. |
Câblage : les 3,3 V et GND du blindage de la batterie sont partagés avec le HC-12 et le LD6001. Le TX du radar → HC-12 RXD, le RX du radar → HC-12 TXD.

Partie 2 — Unité de base (nœud de traitement)
Se pose sur un bureau/étagère. Alimenté par USB-C via une batterie externe.
| Composant | Rôle |
| ESP32-S3-BOX-3 + Station d’accueil | Exécute un pipeline de détection, une interface utilisateur et des alertes audio |
| UART sans fil HC-12 | Reçoit les données radar sans fil depuis l’unité de plafond |
Câblage : HC-12 TXD → GPIO38, HC-12 RXD → GPIO39, alimenté par le 3,3 V de la station d’accueil.

Flux logiciel
Le flux logiciel est divisé en 10 étapes, comme expliqué ci-dessous dans le tableau :

Ci-dessous se trouve le flux de données complet du système de détection humaine et de surveillance des chutes par radar ESP32-S3, depuis les données brutes du capteur UART via le pipeline de détection jusqu’à l’affichage de l’interface utilisateur et les alertes audio.

Démarrage et initialisation
• Monte le système de fichiers SPIFFS pour les fichiers audio
• Initialise le bus I2C pour l’écran tactile et le codec audio.
• Démarre l’écran LCD et la bibliothèque graphique LVGL
• Configure le mode WiFi AP (SSID : « ESP32S3BOX3_RadarSensor »)
• Configure UART1 pour la communication des capteurs radar (115 200 bauds, GPIO 38/39).
•Crée des tâches FreeRTOS pour la réception radar
• Affiche une animation de démarrage avec une barre de progression
• Joue bootaudio.wav au démarrage
Fonctions clés
•app_main() – Entrée de l’application FreeRTOS
•bsp_spiffs_mount() – Configuration du système de fichiers
•bsp_display_start() – Initialisation LVGL
•wifi_stream_init() – Serveur TCP sur le port 3333
•radar_sensor_init() – Création de pilotes UART et de tâches RX
Données radar (LD6001) Réception de données UART
Le module Radar configuré et contrôlé via UART à l’aide des commandes AT, où À + DÉBUT diffusera cadre de nuage de points sur UART sous forme de lignes de texte brut, structurées comme ceci :
x=0,12 y=-0,35 z=1,80 v=-0,05 snr=22,3 abs=8,1 dpk=5,6
x=0,15 y=-0,30 z=1,75 v=-0,03 snr=19,8 abs=7,4 dpk=4,9
x=0,10 y=-0,40 z=0,45 v=0,01 snr=15,2 abs=6,0 dpk=3,2
—–NumPoint=3
Chaque ligne est une point de réflexion détecté par le signal mmWave 60 GHz.
Champs par point :

Une personne debout produit un groupe vertical de points (tête, torse, jambes). Une personne allongée produit une répartition horizontale de points Z faibles. Les valeurs snr, abs et dpk sont combinées dans un score de confiance pour filtrer le bruit des réflexions réelles.
La tâche FreeRTOS lit en permanence les données textuelles brutes du capteur radar LD6001 via UART et les analyse en données de nuage de points structurées.
• S’exécute dans la tâche dédiée radar_rx_task() avec une pile de 8 Ko
• Lit les octets UART en morceaux de 255 octets avec un délai d’attente de 100 ms.
• Assemble le texte en tampon de ligne (délimité par une nouvelle ligne)
• Analyse les lignes correspondant au modèle : x=X,y=Y,z=Z,v=V,snr=S,abs=A,dpk=D
• Transforme les coordonnées pour le radar monté au plafond :
•x_world = x_raw + GRID_X/2 (axe X central)
•y_world = y_raw + GRID_Y/2 (axe Y central)
•z_world = GRID_Z – z_raw (inverser Z pour la hauteur à partir du sol)
• Accumule des points
• Stocke jusqu’à 128 points par image dans s_frame_points[]
Pipeline de détection
UART RX → Filtre de points → Cluster DBSCAN → Extrait de fonctionnalités → Classification de posture → Fall FSM → Track & Smooth → UI/Audio
- Filtrage de points — Score de confiance pondéré (SNR, abs, DPK), seuil ≥ 0,4
- Regroupement DBSCAN — Regroupe les points proches en cibles humaines (eps=0,55 m, min_samples=5)
- Extraction de fonctionnalités — Par cluster z_max, z_range, xy_span, moyenne/variance de vitesse
- Classement des postures — Basé sur des règles utilisant la hauteur, l’étendue verticale et la répartition spatiale
- Détection de chute — FSM à 4 états (AUCUN → SUSPECT → CONFIRMÉ → COOLDOWN) avec notation multi-preuves
- Suivi de cible — Association du voisin le plus proche + lissage EMA (α = 0,4) sur toutes les images
Classement des postures
Effectuer un classificateur basé sur des règles utilisant des seuils de hauteur et de répartition spatiale.

Machine d’état de détection de chute

Fonctions clés du radar

Tâches RTOS gratuites

Visualisation 3D client PC : diffusée via WiFi AP [Debug/Training/Calibration Purpose]
Une application compagnon Python se connecte au point d’accès WiFi de l’ESP32 pour visualiser le nuage de points radar en 3D.
L’application se connecte à 192.168.4.1:3333 et restitue le nuage de points avec des étiquettes de cluster et une superposition de posture.

Écrans d’interface utilisateur basés sur LVGL :


Flux de construction, de flash et de surveillance :

Dépôt GitHub
Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

-
Détecteur de présence Humaine Haozee, Radar à Ondes millimétriques 24G, Alarme de Mouvement, détection Radar Haute sensibilité, nécessite Un hub Zigbee, alimenté par Batterie
-
illuburg Détecteur de Présence 24GHz Micro-Ondes HF Radar pour Micromouvement Respiration avec Capteur Jour Nuit Plage de Détection 7 m
