Cours 8SIN

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

Capteurs
Edge Device
Passerelle
Cloud
Application

1Technologies de Communication IoT

TechnologiePorteeDebitConsoUsage
WiFi50-100mMbps-GbpsEleveeMaison connectee
BLE10-100m1-2 MbpsTres faibleWearables, beacons
LoRa2-15 km0.3-50 kbpsTres faibleAgriculture, villes
Sigfox10-50 km100 bpsUltra faibleTracking, alertes
NB-IoT10+ km250 kbpsFaibleCompteurs, 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

Publisher
(Capteur)

maison/salon/temp

Publisher
(Capteur)

maison/salon/hum

↓ publish ↓
MQTT Broker
↓ distribute ↓
Subscriber
(App mobile)

maison/#

Subscriber
(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)

QoSGarantieUsage
0At most once (fire and forget)Telemetrie frequente
1At least once (peut dupliquer)Alertes importantes
2Exactly 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

↑ Donnees agregees ↑

Fog (Passerelle)

Pre-traitement, filtrage

↑ Donnees filtrees ↑

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

PlateformeFournisseurPoints forts
AWS IoT CoreAmazonScalable, integration AWS
Azure IoT HubMicrosoftIntegration Azure, AI
ThingsBoardOpen SourceSelf-hosted, dashboards
BlynkBlynk Inc.App mobile, prototypage rapide
Node-REDOpen SourceFlow 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

  1. ESP32 + DHT22 (temp/hum) + BMP280 (pression)
  2. Connexion WiFi au reseau local
  3. Publication MQTT vers broker (Mosquitto ou HiveMQ)
  4. Dashboard Node-RED ou Grafana pour visualisation
  5. Alertes Telegram si temperature hors seuils

Resume en 5 points cles

  1. 1L'IoT connecte des objets physiques a Internet via capteurs, connectivite et traitement de donnees.
  2. 2MQTT est le protocole standard IoT avec son modele publish/subscribe et ses 3 niveaux de QoS.
  3. 3LoRa/Sigfox permettent des communications longue portee avec tres faible consommation.
  4. 4L'Edge Computing traite les donnees localement pour reduire latence et couts.
  5. 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

Scientia