Objets Connectes IoT
Capteurs, actionneurs, MQTT, LoRa et edge computing
Objectifs pedagogiques
- Comprendre l'architecture d'un systeme IoT (capteurs, passerelle, cloud)
- Maitriser le protocole MQTT et son modele publish/subscribe
- Differencier les technologies de communication (WiFi, LoRa, BLE, Sigfox)
- Implementer un projet IoT complet avec ESP32 et cloud
Introduction : L'Internet des Objets
Exemple concret : Serre connectee
Une serre agricole deploie des capteurs (temperature, humidite, luminosite) qui envoient leurs donnees via LoRa a une passerelle. Les donnees sont traitees dans le cloud pour declencher automatiquement l'arrosage ou l'ouverture des ouvrants. L'agriculteur consulte tout sur son smartphone.
L'Internet des Objets (IoT - Internet of Things) designe l'interconnexion d'objets physiques equipes de capteurs, de logiciels et d'une connectivite reseau. D'ici 2025, on estime a 75 milliards le nombre d'objets connectes dans le monde.
Architecture IoT typique
1Technologies de Communication IoT
| Technologie | Portee | Debit | Conso | Usage |
|---|---|---|---|---|
| WiFi | 50-100m | Mbps-Gbps | Elevee | Maison connectee |
| BLE | 10-100m | 1-2 Mbps | Tres faible | Wearables, beacons |
| LoRa | 2-15 km | 0.3-50 kbps | Tres faible | Agriculture, villes |
| Sigfox | 10-50 km | 100 bps | Ultra faible | Tracking, alertes |
| NB-IoT | 10+ km | 250 kbps | Faible | Compteurs, industrie |
Comparaison LPWAN (Low Power Wide Area Network)
LoRa/LoRaWAN
- Frequence : 868 MHz (Europe)
- Modulation : Chirp Spread Spectrum
- Topologie : Etoile vers passerelle
- Avantage : Reseau prive possible
Sigfox
- Frequence : 868 MHz (Europe)
- Messages : 140/jour, 12 octets max
- Topologie : Operateur gere le reseau
- Avantage : Tres simple, abonnement
Choix de la technologie : WiFi pour le debit, BLE pour la proximite et l'autonomie, LoRa/Sigfox pour la portee et les batteries longue duree.
2Protocole MQTT : La Communication IoT
Qu'est-ce que MQTT ?
MQTT (Message Queuing Telemetry Transport) est un protocole de messagerie leger concu pour l'IoT. Il utilise un modele publish/subscribe avec un broker central qui distribue les messages.
Architecture Publish/Subscribe
(Capteur)
maison/salon/temp
(Capteur)
maison/salon/hum
(App mobile)
maison/#
(Dashboard)
maison/salon/+
Topics et Wildcards
// Structure hierarchique des topics
maison/salon/temperature → 23.5
maison/salon/humidite → 45
maison/cuisine/temperature → 21.0
maison/jardin/arrosage → ON
// Wildcards pour s'abonner
maison/salon/+ → toutes les mesures du salon
maison/# → tout ce qui concerne la maison
+/+/temperature → toutes les temperatures
Niveaux de QoS (Quality of Service)
| QoS | Garantie | Usage |
|---|---|---|
| 0 | At most once (fire and forget) | Telemetrie frequente |
| 1 | At least once (peut dupliquer) | Alertes importantes |
| 2 | Exactly once (garanti unique) | Commandes critiques |
Implementation ESP32 + MQTT
// ESP32 avec PubSubClient
#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "MonWiFi";
const char* password = "********";
const char* mqtt_server = "broker.hivemq.com";
WiFiClient espClient;
PubSubClient client(espClient);
void callback(char* topic, byte* payload, unsigned int length) {
// Message recu sur un topic
Serial.print("Message [");
Serial.print(topic);
Serial.print("]: ");
for(int i = 0; i < length; i++) {
Serial.print((char)payload[i]);
}
}
void setup() {
WiFi.begin(ssid, password);
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
client.connect("ESP32Client");
client.subscribe("maison/salon/commande");
}
void loop() {
client.loop();
// Publier temperature toutes les 10s
static unsigned long last = 0;
if(millis() - last > 10000) {
float temp = lireTemperature();
client.publish("maison/salon/temp", String(temp).c_str());
last = millis();
}
}
3Edge Computing : Traiter au Plus Pres
Probleme du "tout cloud"
Envoyer toutes les donnees brutes vers le cloud pose des problemes de latence (temps de reponse), de bande passante (cout), et de disponibilite (hors ligne). L'Edge Computing traite les donnees localement.
Architecture Cloud vs Edge vs Fog
Cloud
Stockage, ML, analytics
Fog (Passerelle)
Pre-traitement, filtrage
Edge (Device)
Acquisition, decisions locales
Avantages de l'Edge Computing
Performances
- Latence reduite (<10ms vs 100ms+)
- Reponse temps reel
- Fonctionne hors ligne
Economies
- Moins de donnees transmises
- Reduction couts cloud/reseau
- Autonomie batterie prolongee
// Exemple : filtrage local avant envoi cloud
const float SEUIL_ALERTE = 30.0;
float dernierEnvoi = 0;
void loop() {
float temp = lireTemperature();
// Decision locale : alerte immediate
if(temp > SEUIL_ALERTE) {
activerVentilateur();
client.publish("alerte/temp", String(temp).c_str());
}
// Envoi cloud seulement si variation > 0.5°C
if(abs(temp - dernierEnvoi) > 0.5) {
client.publish("telemetrie/temp", String(temp).c_str());
dernierEnvoi = temp;
}
delay(1000);
}
TinyML : L'IA embarquee permet de faire de l'inference sur microcontroleur (ex: detection de mot-cle, classification d'image) sans connexion cloud.
4Plateformes et Ecosystemes IoT
Plateformes Cloud IoT
| Plateforme | Fournisseur | Points forts |
|---|---|---|
| AWS IoT Core | Amazon | Scalable, integration AWS |
| Azure IoT Hub | Microsoft | Integration Azure, AI |
| ThingsBoard | Open Source | Self-hosted, dashboards |
| Blynk | Blynk Inc. | App mobile, prototypage rapide |
| Node-RED | Open Source | Flow visual, integration |
Cartes de developpement IoT
ESP32
- WiFi + Bluetooth integres
- Dual-core 240 MHz
- ~5 euros
Raspberry Pi Pico W
- WiFi integre
- RP2040 dual-core
- ~6 euros
Arduino MKR WAN
- LoRa integre
- Basse consommation
- ~35 euros
Projet type : Station meteo connectee
- ESP32 + DHT22 (temp/hum) + BMP280 (pression)
- Connexion WiFi au reseau local
- Publication MQTT vers broker (Mosquitto ou HiveMQ)
- Dashboard Node-RED ou Grafana pour visualisation
- Alertes Telegram si temperature hors seuils
Resume en 5 points cles
- 1L'IoT connecte des objets physiques a Internet via capteurs, connectivite et traitement de donnees.
- 2MQTT est le protocole standard IoT avec son modele publish/subscribe et ses 3 niveaux de QoS.
- 3LoRa/Sigfox permettent des communications longue portee avec tres faible consommation.
- 4L'Edge Computing traite les donnees localement pour reduire latence et couts.
- 5ESP32 est la plateforme de reference pour les projets IoT en STI2D.
Mini-Quiz
Question 1 : Quel protocole IoT utilise le modele publish/subscribe ?
a) HTTP
b) MQTT
c) FTP
Reponse : b) MQTT est base sur publish/subscribe avec un broker central
Question 2 : Quelle technologie choisir pour 10 km de portee avec batterie ?
a) WiFi
b) Bluetooth
c) LoRa
Reponse : c) LoRa offre longue portee (15 km) et faible consommation
Question 3 : Que signifie "maison/#" en MQTT ?
a) Seulement le topic "maison"
b) Tous les topics commencant par "maison/"
c) Le topic "maison" et ses sous-topics directs
Reponse : b) Le wildcard # s'abonne a tous les sous-topics recursifs
