Sélim EL KEFI

Chef de projet IT

Chef de projet GED

Consultant technico-fonctionnel

Consultant MOA/MOE

Chef de projet digital

  • À propos
  • Compétences
  • CV
  • Portfolio
  • Services
  • Contact
Sélim EL KEFI

Chef de projet IT

Chef de projet GED

Consultant technico-fonctionnel

Consultant MOA/MOE

Chef de projet digital

Dossier de compétences

Projet de Trilatération avec ESP M5 C3U

  • Type de projet: Personnel
  • But du projet: Localiser des appareils dans l'espace

Le défi était simple en apparence : localiser avec précision des objets ou des personnes dans un espace intérieur, là où le GPS devient sourd, où les murs et les obstacles brouillent toute tentative de géolocalisation classique. Ce projet propose une réponse, pensée pour des environnements intelligents, des espaces industriels ou des applications domotiques avancées.

Quelques exemples d’utilisation :

  • Localiser précisément des véhicules, chariots ou utilitaires dans un entrepôt ou un parking couvert
  • Détecter en live la présence et l’emplacement de terminaux de paiement, tablettes, équipements électroniques, sans avoir besoin de scanner manuellement.
  • Localiser en live des agents de maintenance, des employés ou des intervenants sur site.
  • Détecter automatiquement si un objet sensible (ex : ordinateur portable, matériel médical) quitte une zone autorisée.
  • Détecter la position d’un visiteur pour déclencher des contenus multimédia (ex : explication automatique selon la salle où il se trouve)
  • Adapter automatiquement l’environnement (lumières, climatisation) en fonction de la présence détectée d’un utilisateur dans une pièce précise.
  • Savoir où sont mes appareils dans la maison.

Qu’est-ce que la trilatération ? 

En quelques mots, la trilatération est une méthode de calcul qui permet de déterminer la position d’un point en se basant uniquement sur la distance qui le sépare de plusieurs points connus (appelés balises).

Concrètement :

  • Si tu connais ta distance par rapport à trois points fixes dont tu connais les coordonnées 3D (x, y et z).

  • alors tu peux calculer ta propre position dans l’espace.

C’est la base permettant de comprendre ce projet. Dans notre cas, nous allons lancer ce projet sur un espace fermé contenant 3 étages superposés.

 

 Prérequis :
Matériel utilisé
  • Raspberry Pi 4 (4Go de RAM) avec alimentation et prise secteur.
  • Broker MQTT installé sur le Raspberry Pi
  • Plusieurs ESP M5 C3U avec un firmware ESPresense installé, un cable USB-C et une prise secteur.
Pourquoi choisir MQTT ?

1. Communication légère et rapide
MQTT (Message Queuing Telemetry Transport) est un protocole ultra-léger, parfait pour les microcontrôleurs comme les ESP. Il consomme très peu de bande passante et est optimisé pour les réseaux peu fiables (comme le Wi-Fi domestique ou industriel). Chaque ESP peut donc envoyer ou recevoir des données sans ralentir ou saturer le réseau WiFi/Ethernet.

2. Architecture publish/subscribe très flexible
Au lieu de connecter directement chaque ESP à tous les autres, chaque appareil publie ses informations (ex: mesures de distance BLE, présence détectée) sur un broker MQTT central.
Les autres ESP (ou serveurs) peuvent s’abonner aux données qui les intéressent. Cela rend le système :

  • Scalable (ajouter facilement de nouveaux ESP sans tout reconfigurer),

  • Flexible (chaque ESP choisit ce qu’il veut écouter ou publier).

3. Centralisation simplifiée
Grâce à MQTT, toutes les données de localisation sont centralisées facilement via le broker. Cela permet d’avoir :

  • Un collecteur unique de toutes les informations,

  • Un traitement unifié (ex: trilatération sur un serveur ou directement sur un ESP maître),

  • Une supervision facile (savoir si un ESP tombe ou perd la connexion).

4. Faible consommation d’énergie
Comme MQTT est conçu pour envoyer uniquement des petits messages quand c’est nécessaire (évite les connexions lourdes et permanentes), il contribue à réduire la consommation électrique des ESP.

5. Fiabilité accrue avec gestion de la QoS
MQTT permet de choisir le niveau de qualité de service (QoS) :

  • 0 : envoi sans garantie (très rapide).

  • 1 : envoi garanti au moins une fois.

  • 2 : envoi garanti une seule fois (parfait pour des données critiques).
    => Cela permet d’adapter la fiabilité selon les besoins du projet (ex : mesures vitales, mises à jour non critiques…).

En résumé :

MQTT sur chaque ESP rend le système léger, rapide, modulaire, économe en énergie, et super facile à étendre ou maintenir.
C’est pour toutes ces raisons que c’est aujourd’hui le protocole de communication standard dans les projets IoT.

Pourquoi choisir des ESP M5 C3U ?

L’ESP M5 C3U est un module électronique développé par M5Stack, basé sur la puce ESP32-C3 de Espressif Systems.
Il est conçu pour rendre le développement d’applications IoT simple, rapide et fiable.

Ses principaux atouts :

  • Capteur 3D performant : facilitant une meilleure évaluation de la position dans un espace tridimensionnel (3 axes).
  • Connectivité BLE (Bluetooth Low Energy) à 2,4 GHz : idéale pour obtenir des distances précises à faible consommation énergétique (entre 0,01 et 0,1 watt).

  • BLE RSSI Measurement : utilisé pour estimer les distances inter-nœuds.

  • Faible consommation d’énergie : idéal pour un fonctionnement 24h/7.

  • Fiabilité et simplicité d’intégration : le M5 C3U combine la puissance d’un ESP32-C3 avec une interface simple à utiliser (USB-C natif).

  • Format ultra compact : Un peu plus grand qu’une pièce de 2 euros.

En résumé :

L’ESP M5 C3U est un mini-module Wi-Fi/BLE basé sur ESP32-C3 qui combine puissance, connectivité moderne et simplicité d’utilisation dans un format compact.
C’est un excellent choix pour tout projet d’IoT nécessitant de la connectivité sans fil fiable, de la faible consommation et une programmation rapide.


Fonctionnement :

Le système repose sur plusieurs balises fixes équipées d’ESP M5 C3U flashés avec ESPresense, réparties stratégiquement dans l’espace intérieur. 

Chaque balise récupère les niveaux de signal BLE (RSSI) pour déduire une distance approximative, ensuite affinée par filtrage et pondération dynamique. Ces distances alimentent un algorithme de trilatération pour déterminer la position 2D/3D de l’appareil cible.

(Les détails plus fins concernant la calibration, la synchronisation des balises et les optimisations algorithmiques ne sont pas détaillés ici.)

 

Etape 1 – Installer le firmware ESPresense

La première étape consiste à flasher chaque ESP M5 C3U avec le firmware d’ESPresense. Cela permet par la suite de :
  • Configurer notre réseau Wifi. Cela nous permettra d’assigner à chaque appareil, une adresse IP, nous permettant d’y accéder localement afin de modifier les configurations si nécessaires.
  • Configurer l’accès au broker MQTT permettant à nos modules de communiquer.

Etape 2 – Cartographier l’espace afin de créer une map

Avant de pouvoir estimer des positions précises, il est nécessaire de cartographier l’espace intérieur.
Cela consiste à :

  • Placer les balises fixes (ESP M5 C3U) à des coordonnées connues.

  • Définir un référentiel d’espace (ex : un plan 2D ou 3D avec les unités en mètres). Nous partirons ici sur de la 3D.

  • Associer chaque ESP à ses coordonnées précises dans ce référentiel.

La cartographie permet au moteur de trilatération de traduire des distances mesurées en positions absolues cohérentes par rapport à l’espace réel.

Sans cette étape de cartographie, les distances seules n’auraient pas de sens spatial, et le système serait incapable de restituer des positions exploitables.

 

Etape 3 – Configurer et tracker les appareils

Apple :

Les appareils Apple émettent continuellement différents messages en Bluetooth Low Energy (BTLE), souvent identifiables par l’empreinte apple:100?:*-*.

Dans un espace intérieur où plusieurs appareils Apple sont présents, les informations de proximité peuvent entrer en collision, entraînant des empreintes dupliquées. De plus, l’empreinte irk est actualisé régulièrement, rendant le tracking difficile (mesure de sécurité mise en place par Apple). 


Pour résoudre ce problème, il suffit obtenir la clé de résolution d’identité (IRK – Identity Resolving Key) de chaque appareil iOS (iPhone, iPad) ou Watch OS (Apple Watch).
Bien qu’il soit possible d’ajouter manuellement l’IRK en écoutant les messages envoyés sur notre serveur mqtt, il est recommandé d’utiliser la fonction Enroll (enregistrement) d’ESPresense, car elle est plus simple et permet une synchronisation automatique avec tous les nœuds ESPresense.

Android :

Les appareils Android fonctionnent différemment. A la différence d’Apple, ils ne diffusent pas continuellement une identité fixe en BLE (mesure de sécurité). Android utilise une stratégie de rotation des adresses BLE (toutes les quelques minutes), empêchant toute tentative de suivi passif.

Pour résoudre ce problème, il suffit d’installer une application (comme Companion) qui, une fois configurée, permet de forcer l’appareil à émettre volontairement un signal BLE identifiable en continu ou à intervalles réguliers, en l’associant à un identifiant fixe. Cette technique permet donc d’émettre un signal BLE contrôlé.

Autre appareils :

Et les autres alors ? Les imprimantes, ordinateurs, véhicules, robots, équipements industriels… ?
Soit, ils n’émettent pas du tout de signaux BLE (si non équipé de Bluetooth), soit ils sont équipes mais n’émettent pas de signal continuellement, ce qui ne permet pas le tracking.

Pour y remédier, deux solutions sont possibles :

  • Ceux équipés de Bluetooth peuvent émettre volontairement un signal BLE de la même manière que les appareils Android. Il suffit de bien configurer les appareils.
  • Pour ceux qui ne sont pas équipes de Bluetooth, l’ajout d’un émetteur BLE externe, comme un ESP branché sur un port de la machine, peut prendre le relais en agissant comme une balise BLE dédiée.
    Rappelons qu’un ESP 32 est légèrement plus grand qu’une pièce de 2 euros.
 

Résultat

Conclusion :

Ce projet de localisation intérieure par trilatération BLE m’a permis de concevoir et déployer une solution technique complète, alliant IoT, réseaux sans fil et traitement d’information en temps réel.
En utilisant des modules ESP M5 C3U et une architecture basée sur MQTT, j’ai pu transformer un environnement intérieur classique en espace intelligent, capable de détecter et de localiser précisément des appareils ou des objets mobiles dans l’espace.

Le projet illustre plusieurs compétences clés :

  • Conception d’architectures distribuées IoT

  • Mise en œuvre de communications sans fil efficaces et optimisées (BLE, MQTT)

  • Implémentation de techniques de trilatération et de traitement de signaux bruités

  • Optimisation pour faible consommation et haute fiabilité

Ce système ouvre de nombreuses perspectives d’application dans des domaines variés, allant de la logistique intelligente à l’expérience client interactive, en passant par la sécurité et la domotique avancée.

Ce projet reflète non seulement une maîtrise technique, mais aussi une vision orientée vers des solutions concrètes et adaptables pour les environnements connectés de demain.

 
ESP 32 M5 C3U
Visualisation 3D
Couverture BLE par module ESP

Similaire

Tags: Application
Share:

Prev

© 2025 by MLS Consulting