Aller au contenu

Choisir son protocole IoT

Une matrice de décision structurée, trois cas d'usage industriels réels et un arbre de décision visuel : tout ce qu'il faut pour justifier un choix de protocole dès la phase de conception.


Pourquoi le choix de protocole est une décision d'architecture

Un protocole mal choisi coûte cher : refonte firmware, remplacement de hardware radio, infrastructure réseau incompatible. Ce choix engage toute la durée de vie du produit (souvent 10–15 ans en industrie). Il doit intégrer simultanément des contraintes physiques (portée, énergie), opérationnelles (infrastructure, coût), techniques (débit, latence) et réglementaires (certification radio, sécurité).


Matrice de décision multi-critères

La matrice ci-dessous note chaque protocole de 1 (mauvais) à 5 (excellent) pour chaque critère. Les critères sont pondérés selon les priorités typiques d'un projet IoT industriel.

Protocole Portée Débit Énergie Coût device Latence Bidir. Sécurité Écosystème Score /40
MQTT 4 3 5 4 5 5 33
CoAP/LwM2M 3 5 5 4 4 4 3 32
BLE 5.x 2 5 5 4 5 5 4 5 35
LoRaWAN 5 1 5 3 2 2 3 4 25
NB-IoT 5 2 4 2 3 4 4 3 27
LTE-M 4 4 3 2 5 5 4 3 30
Zigbee 3.0 3 3 4 4 4 5 4 4 31
Thread/Matter 3 3 4 3 4 5 5 4 31
Modbus TCP 3 N/A 5 4 4 1 4 24
OPC-UA 4 N/A 3 4 5 5 5 29
CAN FD 1 4 N/A 4 5 5 2 3 24
EtherCAT 1 5 N/A 2 5 5 3 3 24

¹ Dépend de l'infrastructure réseau IP sous-jacente. ² MQTT seul, sans TLS.

Le score agrégé ne suffit pas : il faut identifier les critères éliminatoires avant d'utiliser la matrice. Un score global élevé ne compense pas un critère rédhibitoire (ex : portée insuffisante).


Arbre de décision

flowchart TD
    A{Portée nécessaire ?} -->|< 100 m| B{Temps réel < 10 ms ?}
    A -->|100 m – 10 km| C{Infrastructure privée ?}
    A -->|> 10 km| D{Débit > 1 kbit/s ?}

    B -->|Oui| B1{Bus ou embarqué ?}
    B -->|Non| B2{Mesh nécessaire ?}
    B1 -->|Bus câblé| CAN[CAN FD\nEtherCAT\nPROFINET IRT]
    B1 -->|Sans fil| BLE[BLE 5.x\nZigbee]
    B2 -->|Oui| MESH[Zigbee / Thread\n+ Matter]
    B2 -->|Non| MQTT2[MQTT / CoAP\nsur Wi-Fi / Ethernet]

    C -->|Oui| LORA[LoRaWAN privé\nChirpStack]
    C -->|Non| C2{Payload < 12 B ?}
    C2 -->|Oui| SFX[Sigfox]
    C2 -->|Non| C3{Mobilité ?}
    C3 -->|Oui| LTM[LTE-M]
    C3 -->|Non| NBIOT[NB-IoT]

    D -->|Oui| D1{Abonnement opérateur OK ?}
    D -->|Non| LORA2[LoRaWAN\nSF12]
    D1 -->|Oui| LTM2[LTE-M]
    D1 -->|Non| LORA3[LoRaWAN longue portée]

    style CAN fill:#1b4332,color:#fff
    style BLE fill:#2d6a4f,color:#fff
    style MESH fill:#2d6a4f,color:#fff
    style MQTT2 fill:#40916c,color:#fff
    style LORA fill:#40916c,color:#fff
    style SFX fill:#52b788,color:#fff
    style NBIOT fill:#52b788,color:#fff
    style LTM fill:#74c69d,color:#fff
    style LORA2 fill:#74c69d,color:#fff
    style LTM2 fill:#95d5b2,color:#fff
    style LORA3 fill:#95d5b2,color:#fff

Cas d'usage 1 — Monitoring agricole

Contexte

Réseau de 500 capteurs de sol (humidité, température, conductivité) déployés sur 1 200 ha. Alimentation exclusivement sur batterie (pile AA, 2 ans minimum). Relevé toutes les 15 minutes. Pas d'infrastructure cellulaire fiable. Coût matériel critique (< 20 € par nœud).

Analyse des contraintes

Critère Contrainte Impact
Portée Jusqu'à 5 km des bâtiments Exclut BLE, Zigbee, Wi-Fi
Énergie 2 ans sur AA (~3 Wh) Budget TX : < 50 µWh/message
Débit 50 octets / 15 min Quelques centaines de bits/jour
Latence 15 min Aucune contrainte temps réel
Coût < 20 € module Exclut LTE-M, NB-IoT (module + abonnement)
Infrastructure Agriculteur propriétaire Réseau privé préférable

Choix : LoRaWAN privé (SF9, BW 125 kHz)

Justification :

  • Portée : SF9 couvre 5–8 km en terrain dégagé (champs) avec un gain d'antenne de 3 dBi.
  • Énergie : transmission de 50 octets en SF9 ≈ 144 ms ToA. Avec un courant TX de 40 mA et une veille à 2 µA, la consommation annuelle est ≈ 200 mWh → 3+ ans sur AA.
  • Coût : module LoRa (ex : RAK3172) ≈ 4 €. 2 gateways LoRaWAN (couverture 10 km) ≈ 400 € chacune, amorties sur 500 nœuds = 1,6 €/nœud. Total nœud : < 15 €.
  • Infrastructure : ChirpStack open-source sur Raspberry Pi à la ferme. Aucun abonnement opérateur.

Alternatives écartées :

  • Sigfox : dépendance opérateur, 140 messages/jour max (OK ici) mais couverture agricole non garantie.
  • NB-IoT : couverture rurale insuffisante, coût module + SIM élevé.

Architecture déployée :

graph LR
    A["500 × STM32WL<br/>(LoRa)"] --> B["2 × Gateway<br/>LoRaWAN"] --> C["ChirpStack<br/>(RPi)"] --> D["InfluxDB"] --> E["Grafana"]

Cas d'usage 2 — Domotique industrielle (bâtiment)

Contexte

Immeuble de bureaux de 10 000 m², 400 points de contrôle (éclairage, stores, thermostats, détecteurs de présence, serrures). Équipements de marques multiples (Somfy, Philips Hue, Schneider, Yale). Exigence : interopérabilité garantie, contrôle via application mobile (iOS et Android), fonctionne en local sans cloud.

Analyse des contraintes

Critère Contrainte Impact
Interopérabilité Multi-marques Exige standard ouvert certifié
Portée 30–50 m par cellule mesh Mesh nécessaire
Énergie Mélange secteur + batterie Nodes batterie = End Devices
Latence < 1 s (confort) Pas de contrainte dure
Local first Sans cloud Protocole avec mode local
Écosystème iOS + Android Support Apple Home + Google Home

Choix : Matter sur Thread

Justification :

  • Interopérabilité : Matter est le seul standard signé par Apple, Google, Amazon et Samsung simultanément. Les 400 points de contrôle de marques différentes seront certifiés Matter d'ici 2025–2026.
  • Local first : Matter fonctionne en local via Thread Border Router (HomePod mini, Nest Hub, hub Schneider). Aucune dépendance cloud.
  • Thread : mesh IPv6 auto-guérissant, couverture 10 000 m² avec ~30 routeurs secteur (thermostats, interrupteurs). Capteurs batterie en Sleepy End Device (années d'autonomie).
  • Sécurité : CASE (certificats X.509 par device) dépasse largement Zigbee/Z-Wave.
  • Mobile : Apple Home, Google Home, Samsung SmartThings nativement compatibles Matter.

Alternatives écartées :

  • Zigbee 3.0 : viable mais pas IP-natif, fragmentation historique des profils, Matter le remplace progressivement.
  • Z-Wave : limite à 232 nodes (insuffisant pour 400 points), propriétaire Silicon Labs.
  • KNX : câblage dédié coûteux, non adapté à la rénovation.

Architecture déployée :

graph LR
    A["400 × Devices Matter<br/>(Thread)"] --> B["4 × Thread Border<br/>Router (hubs)"] --> C["App Matter"] --> D["Local réseau<br/>IP bâtiment"]

Cas d'usage 3 — Usine (temps réel, SCADA existant)

Contexte

Ligne d'assemblage automobile : 80 PLC/variateurs Siemens et Beckhoff existants (Modbus RTU + PROFINET), SCADA Ignition en place. Projet Industrie 4.0 : exposer les données de production en temps réel au MES (Manufacturing Execution System) et permettre la supervision distante sécurisée depuis le siège.

Analyse des contraintes

Critère Contrainte Impact
Compatibilité PLCs Siemens S7 + Beckhoff existants Doit parler PROFINET + Modbus
Temps réel Données procédé < 500 ms SCADA Ignition suffit
Sécurité Accès distant depuis siège TLS + authentification obligatoire
Scalabilité 80 → 200 PLCs à terme Architecture scalable
Intégration MES + ERP existants API standard
Modèle d'information Données contextualisées Pas juste des registres bruts

Choix : OPC-UA + Modbus TCP (passerelle)

Justification :

  • Compatibilité ascendante : les PLCs Siemens exposent nativement OPC-UA (S7-1500 depuis TIA Portal V14). Les équipements legacy Modbus RTU sont encapsulés via passerelles Modbus RTU→TCP→OPC-UA (ex : ProSoft, Kepware).
  • Sécurité : OPC-UA avec mode Sign & Encrypt (AES-256) + certificats X.509. Le pare-feu n'expose que le port OPC-UA (4840) vers le DMZ. Le SCADA Ignition supporte OPC-UA nativement.
  • Modèle d'information : OPC-UA modélise les données avec leur contexte (unités, limites d'alarme, type) — le MES reçoit des données signifiantes, pas des registres bruts.
  • Pub/Sub vers MES : OPC-UA Pub/Sub sur MQTT (broker EMQX en DMZ) — le MES s'abonne aux topics de production sans polling.

Alternatives écartées :

  • Modbus TCP seul vers MES : aucune sécurité, aucun modèle d'information, polling uniquement.
  • REST/JSON custom : développement coûteux, pas standardisé, maintenance longue durée.
  • MQTT seul : pas de modèle d'information natif (Sparkplug B serait l'alternative viable).

Architecture déployée :

graph LR
    subgraph OT Réseau isolé
        PLC1[PLC S7-1500\nOPC-UA natif] --> GW[OPC-UA Server\nKepware]
        PLC2[PLC Beckhoff\nOPC-UA natif] --> GW
        MOD[Capteurs\nModbus RTU] --> BRIDGE[Passerelle\nModbus→OPC-UA]
        BRIDGE --> GW
    end

    subgraph DMZ industrielle
        GW --> SCADA[SCADA Ignition\nOPC-UA Client]
        GW --> BROKER[EMQX Broker\nOPC-UA Pub/Sub]
    end

    subgraph IT Réseau entreprise
        BROKER --> MES[MES\nSubscribe MQTT]
        SCADA --> MES
        MES --> ERP[ERP SAP]
    end

Tableau récapitulatif des cas d'usage

Cas d'usage Protocole choisi Portée Énergie Coût/nœud Justification principale
Monitoring agricole 1200 ha LoRaWAN SF9 5–8 km Ultra-basse (2+ ans AA) < 15 € Portée + coût + infrastructure privée
Domotique industrielle 10 000 m² Matter / Thread 30 m/hop mesh Basse (SED batterie) 20–80 € Interopérabilité + local first + sécurité
Usine SCADA Industrie 4.0 OPC-UA + Modbus TCP LAN Ethernet N/A (secteur) Variable Compatibilité legacy + sécurité + modèle info

Ce qu'il faut retenir

  • Il n'existe pas de protocole universel : chaque cas d'usage a un ensemble de contraintes qui éliminent la majorité des options avant même d'évaluer les critères secondaires.
  • La portée et la consommation sont les deux critères éliminatoires les plus fréquents — commencer par eux.
  • LoRaWAN domine le monitoring outdoor longue portée sur batterie ; Matter/Thread s'impose pour la domotique multi-marques ; OPC-UA est le standard incontournable pour l'intégration Industrie 4.0.
  • Un déploiement hybride est souvent la bonne réponse : CoAP sur le réseau de capteurs, MQTT comme backbone, OPC-UA vers le SCADA/MES.

Chapitre suivant : Edge, gateway & flottes — du traitement local à la gestion de milliers de devices.