Un bureau d'études environnemental déploie 12 pluviomètres connectés sur un bassin versant en Guyane. Les données arrivent dans un tableur partagé sur Google Drive, renseigné manuellement deux fois par semaine. La question arrive six mois plus tard : « on voudrait voir ça sur une carte, en temps réel ». Et personne dans l'équipe ne sait par où commencer. Ce scénario — ou une variante proche — est la situation de départ de la majorité des projets IoT terrain que j'observe. La question n'est pas de trouver LE bon outil : c'est de prendre les bonnes décisions dans le bon ordre. Quatre décisions structurent tout pipeline IoT géolocalisé, de l'ingestion à la carte. Les rater coûte cher à corriger. Les prendre dans l'ordre évite les refontes.
Avant tout : comprendre ce qu'est un pipeline IoT
Un pipeline IoT géolocalisé, c'est une chaîne de six maillons. Chaque maillon conditionne le suivant. On ne choisit pas son outil de visualisation sans savoir comment la donnée est stockée. On ne dimensionne pas son stockage sans connaître la fréquence d'envoi des capteurs.
Les 6 maillons du pipeline IoT géolocalisé
La plupart des projets qui échouent ou deviennent incontrôlables ont sauté l'étape 4 ou mal dimensionné l'étape 5. Le reste découle de ces deux erreurs. L'enjeu de ce guide est simple : prendre les quatre décisions structurantes dans le bon ordre, avec les bons critères, avant d'acheter le premier capteur ou de déployer le premier conteneur.
Cet article couvre les quatre décisions fondamentales. Pour la taxonomie complète des protocoles, le comparatif TimescaleDB vs InfluxDB 3, les architectures de réception détaillées et le guide sécurité TLS/mTLS/NIS2, le Livre Blanc MP-i — IoT & Données Capteurs couvre les neuf maillons en détail.
Décision 1 — Quel protocole pour vos capteurs ?
La première décision est aussi la plus structurante : elle détermine l'infrastructure d'ingestion entière. Mal choisir ici revient à changer les fondations d'une maison déjà construite. Trois protocoles couvrent 95 % des cas terrain en 2026.
| Protocole | MQTT | LoRaWAN | HTTP Push |
|---|---|---|---|
| Connectivité requise | Wi-Fi, 4G, Ethernet | LoRa (sans cellulaire) | Internet stable |
| Connexion instable | ✅ Conçu pour | ✅ Natif | ❌ Fragile |
| Fréquence d'envoi | Très élevée (temps réel) | Faible (minutes/heures) | Faible à moyenne |
| Volumétrie par message | Quelques octets à Ko | Quelques dizaines d'octets | Illimitée |
| Overhead réseau | ✅ Minimal | ✅ Très faible | ❌ Élevé (HTTP headers) |
| Infrastructure gateway | ✅ Broker seul | ⚠️ Gateways LoRa requises | ✅ Aucune |
| Scalabilité | ✅ Excellente | ⚠️ Limitée par débit LoRa | ❌ Faible sous charge |
| Cas d'usage type | Capteurs temps réel | Zones sans couverture | Intégrations simples |
Arbre de décision — Quel protocole pour vos capteurs ?
MQTT est le protocole de référence pour les capteurs connectés via Wi-Fi, 4G/LTE ou Ethernet. Il est asynchrone, léger (en-têtes de quelques octets), conçu pour les connexions instables et les appareils à faible consommation. Le mécanisme QoS (0, 1, 2) permet de choisir le compromis entre performance et garantie de livraison selon la criticité de la mesure. C'est le choix par défaut pour tout projet IoT terrain avec couverture réseau correcte.
LoRaWAN prend le relais quand la couverture cellulaire est absente ou trop coûteuse — zones rurales, forêts, zones industrielles isolées. La contrepartie : débit très faible (quelques dizaines d'octets par message), latence importante, infrastructure de gateways à déployer ou louer. Adapté pour les capteurs qui envoient peu et rarement — niveau de rivière toutes les 15 minutes, température de sol toutes les heures.
HTTP Push fonctionne pour les capteurs avec connectivité stable qui envoient peu de données. Simple à implémenter, mais fragile sur connexion instable, coûteux en overhead, pas adapté à la montée en charge. À réserver aux cas simples ou aux plateformes qui n'exposent que du HTTP.
Si vos capteurs envoient plus d'une mesure par minute ou opèrent en environnement réseau instable, MQTT s'impose. Le reste peut se discuter.
Décision 2 — Où et comment ingérer la donnée ?
Un broker MQTT reçoit les messages des capteurs et les distribue aux consommateurs. C'est le cœur nerveux du pipeline. Deux options dominent en open source : Mosquitto et EMQX.
Mosquitto est léger, éprouvé, simple à déployer en quelques minutes sur un VPS. Il couvre sans broncher des dizaines de capteurs avec un faible volume. C'est le point d'entrée naturel pour un premier projet IoT — zéro configuration superflue, documentation solide, consommation mémoire minimale.
EMQX entre en jeu quand le volume de connexions simultanées dépasse quelques centaines, ou quand on a besoin de règles de routage complexes, de clustering, ou d'une interface de supervision intégrée. Sa courbe de configuration est plus élevée, sa robustesse en production bien supérieure.
| Critère | Mosquitto | EMQX |
|---|---|---|
| Connexions simultanées | Jusqu'à quelques milliers | Millions (clustering) |
| Déploiement | ✅ Très simple | ⚠️ Configuration avancée |
| Interface de supervision | ❌ Ligne de commande | ✅ Dashboard web intégré |
| Consommation RAM | ✅ Très faible (~50 Mo) | ⚠️ 256 Mo+ recommandés |
| Règles de routage | ⚠️ Basiques | ✅ Moteur de règles avancé |
| Usage recommandé | Projet starter, < 100 capteurs | Production, > 100 capteurs |
Entre le broker et le stockage, il faut un étage de traitement. C'est là que Node-RED intervient — un orchestrateur visuel qui permet de normaliser les messages MQTT, d'enrichir les données (géocodage, conversion d'unités, validation), de router vers plusieurs destinations et de gérer les erreurs sans écrire une ligne de code pour les cas courants. Il couvre 80 % des besoins de traitement de flux IoT en PME et bureaux d'études.
Ce que le traitement doit faire avant le stockage
Avant d'écrire en base, chaque mesure devrait avoir passé trois contrôles. D'abord, la validation des bornes : un capteur de température qui envoie 1 500°C ou une coordonnée GPS à 0,0 a manifestement un problème — ces valeurs aberrantes doivent être filtrées ou mises en quarantaine avant d'atteindre la base. Ensuite, l'enrichissement géospatial : si la coordonnée GPS est brute, elle doit être transformée en EPSG:4326 et optionnellement associée à une zone administrative ou à un périmètre métier (bassin versant, commune, zone industrielle). Enfin, l'horodatage UTC explicite : le timestamp de la mesure doit être en UTC avec la timezone stockée explicitement. Les décalages horaires silencieux sont la cause la plus fréquente d'incohérences dans les dashboards de monitoring.
Écrire directement en base depuis le broker sans étage de traitement intermédiaire. Les données aberrantes, les doublons et les timestamps mal formatés s'accumulent sans retour arrière possible. Node-RED entre broker et base n'est pas optionnel — c'est la valve de qualité du pipeline.
Décision 3 — Comment stocker les séries temporelles géolocalisées ?
C'est la décision qui fait le plus de dégâts quand elle est mal prise, parce que migrer un schéma de stockage en production avec des millions de mesures est une opération coûteuse et risquée. Les données capteurs ont des propriétés qui les distinguent des données métier classiques : elles sont append-only (on n'édite pas une mesure passée), leur volume croît de façon prévisible et linéaire, et 90 % des requêtes portent sur des fenêtres temporelles récentes. Ces propriétés appellent un moteur spécialisé.
La combinaison TimescaleDB + PostGIS est rare dans sa capacité à faire cohabiter time series performant et requêtes spatiales dans la même base transactionnelle ACID. SELECT * FROM mesures WHERE ST_DWithin(position, zone_interet, 500) AND time > NOW() - INTERVAL '24 hours' — ce type de requête est natif, indexé et rapide. Sans cette stack, il faudrait deux bases distinctes et une logique d'agrégation applicative.
Les trois erreurs de schéma à éviter absolument
-
1
Stocker les coordonnées GPS en deux colonnes
latetlngde typeFLOATau lieu d'une colonnegeometry(POINT, 4326). On perd l'indexation spatiale et toutes les fonctions PostGIS — impossible à corriger sans réécrire toutes les données. - 2 Ne pas définir de politique de rétention dès le départ. Sans tiering hot/warm/cold, la base grossit sans contrôle et les coûts de stockage explosent. TimescaleDB intègre des politiques de compression et d'archivage automatiques — les configurer dès le déploiement, pas quand le disque est plein.
-
3
Créer une table par capteur au lieu d'une hypertable unifiée avec un champ
device_id. La multiplication des tables rend les requêtes inter-capteurs impossibles et la maintenance un cauchemar dès qu'on dépasse une dizaine de capteurs.
Décision 4 — Comment visualiser les données capteurs sur une carte ?
La visualisation est souvent la première question posée — « on veut voir ça sur une carte » — mais c'est la dernière décision à prendre, parce qu'elle dépend entièrement des trois précédentes. La bonne nouvelle : avec TimescaleDB + PostGIS en base, les deux outils standards s'y connectent nativement.
Dashboard opérationnel
Grafana + Geomap
- Connexion native TimescaleDB via plugin PostgreSQL
- Alerting, suivi de tendances, corrélation multi-capteurs
- Plugin Geomap pour affichage de points sur fond de carte
- Zéro développement frontend
- Idéal si la carte est un widget parmi d'autres
Application cartographique
MapLibre + Martin
- Rendu WebGL — fluide même sur des millions de points
- Martin génère les tuiles MVT directement depuis PostGIS
- Trajectoires animées, couches thématiques complexes
- Interaction avec d'autres données SIG
- Idéal si la carte est le produit principal
La règle de choix est simple : si la carte est un widget dans un dashboard opérationnel, Grafana Geomap suffit et évite du développement inutile. Si la carte est le produit principal — portail public, application terrain, visualisation de trajectoires ou de zones de chaleur — MapLibre + Martin est la bonne architecture.
Ce que ça donne en pratique : trois architectures selon votre contexte
IoT léger
Jusqu'à 10 capteurs · usage interne · équipe sans DevOps
20–35 €/mois · VPS 4 Go RAM
Monitoring environnemental, bureau d'études, première démo
IoT géolocalisé opérationnel
10 à 100 capteurs · usage opérationnel · équipe technique
40–80 €/mois · VPS 8 Go RAM
Réseau de capteurs communal, infrastructure industrielle distribuée
Haute disponibilité
100+ capteurs · SLA métier · haute disponibilité requise
150 €/mois+ selon volumétrie
Plateforme territoriale, réseau national de surveillance
Quatre décisions, dans l'ordre
Un pipeline IoT géolocalisé n'est pas un catalogue de technologies à assembler au hasard. C'est une chaîne où chaque maillon conditionne le suivant. Prendre les quatre décisions dans le bon ordre — protocole, ingestion et traitement, stockage, visualisation — évite les refontes coûteuses et garantit une architecture qui tient dans le temps.
La bonne nouvelle : avec l'outillage open source disponible en 2026 (MQTT, Node-RED, TimescaleDB + PostGIS, Grafana, MapLibre), un pipeline complet et pérenne tourne pour 20 à 80 € par mois d'infrastructure, sans licence propriétaire. Ce qui coûte, c'est de prendre les mauvaises décisions — pas de les prendre avec les bons outils.
La plupart des projets IoT ne meurent pas d'un mauvais capteur. Ils meurent d'un mauvais pipeline — construit à la va-vite, sans projet de stockage, sans plan de rétention, sans séparation entre ingestion et lecture.
— Mattieu Pottier, MP-i — Mattieu Pottier Indépendant