MQTT managé dans le cloud

Broker MQTT pour étudiants et salles de classe : des TP IoT sans serveur

Un guide pratique pour enseignants et étudiants : le serveur MQTT public gratuit pour les démos en direct, un broker gratuit isolé par équipe pour les travaux notés, et les pièges classiques à éviter en classe.

Illustration d'un broker MQTT pour étudiants montrant une salle de classe avec des équipes munies de cartes ESP32 et d'ordinateurs portables qui publient vers un broker cloud partagé
Essayez-le sur votre propre broker MQTTObtenez un broker MQTT privé et managé avec l’offre Free et partez d’exemples de code prêts à l’emploi.
Essayer gratuitement Exemples de code Aucune carte bancaire requise

Choisir un broker MQTT pour des étudiants, c'est avant tout supprimer les frictions : personne ne devrait perdre une séance de TP à installer Mosquitto, à lutter contre le pare-feu du campus ou à chercher quelle équipe inonde un topic partagé avec son capteur. Ce guide montre aux enseignants comment animer des TP IoT avec broker.connectmq.com pour les démos en direct et un broker ConnectMQ Serverless gratuit et isolé par équipe pour les projets notés, avec une séquence de séances, du code prêt à l'emploi et des règles de classe qui évitent le chaos habituel.

Ce qu'une salle de classe attend d'un broker

Enseigner MQTT n'a pas les mêmes priorités qu'exploiter des systèmes en production :

  • Aucune installation sur les postes de TP. Les étudiants doivent publier dès les dix premières minutes.
  • Accessible de partout. Les PC de la salle, les portables des étudiants à la maison et les cartes ESP32 sur le Wi-Fi du campus ont tous besoin du même endpoint.
  • Un trafic visible. Voir les messages circuler, c'est le déclic ; un explorateur de topics aide énormément.
  • L'isolation pour l'évaluation. Un projet noté ne doit pas être cassé par une autre équipe qui publie sur le même topic.
  • Aucun coût. La plupart des cours n'ont pas de budget pour une infrastructure par étudiant.

Un broker auto-hébergé sur un serveur de TP peut fonctionner, mais quelqu'un doit l'entretenir, ouvrir les ports et le réparer quand il tombe en panne à 9 heures le jour du TP. Un broker MQTT managé évite tout cela. Pour le concept de base, les étudiants peuvent commencer par ce que fait un broker MQTT.

Une organisation à deux niveaux : public pour les démos, privé pour les projets

Usage Broker Authentification Isolation Pourquoi
Démos en cours, premiers TP broker.connectmq.com (espace public) Aucune, n'importe quel client ID unique Aucune, lisible par tous Démarrage immédiat, tout le monde voit tout
Projets d'équipe, travaux notés ConnectMQ Serverless (Free), un par équipe Nom d'utilisateur, mot de passe et client ID générés Espace client isolé Les équipes ne peuvent pas interférer, et les identifiants enseignent les bonnes pratiques

Le serveur MQTT public gratuit pour les démos

Le serveur MQTT public gratuit accepte les connexions anonymes sur 1883, 8883, 8083 et 8084. Ses limites conviennent bien à l'enseignement : 64 Ko par message, 10 messages par seconde par client, 10 abonnements par client, 8 niveaux de topic, QoS 0 à 2 et sessions jusqu'à 30 minutes. Ces limites empêchent aussi une boucle emballée dans le code d'un étudiant de submerger quoi que ce soit.

L'espace public est lisible par tout Internet et réservé aux tests et aux démos, jamais aux données de production. Faites-en un point pédagogique plutôt qu'une note de bas de page : n'y publiez jamais de noms, de numéros d'étudiant, de localisations ni quoi que ce soit de personnel.

Des brokers Serverless privés pour les projets notés

Chaque équipe s'inscrit pour obtenir un broker ConnectMQ Serverless gratuit. Elle reçoit un nom d'utilisateur, un mot de passe et un client ID, jusqu'à 25 connexions, une QoS jusqu'à 1 et des messages de 256 Ko, ce qui suffit largement pour un projet avec plusieurs capteurs, un tableau de bord et un flow Node-RED. Les équipes peuvent montrer leur travail dans le client intégré au navigateur, l'explorateur de topics en direct et le tableau de bord du portail, et configurer des règles d'alerte à seuil, ce qui fait une bonne démonstration lors de l'évaluation.

Une séquence de cinq TP

TP 1 : publier et s'abonner en ligne de commande

Chaque étudiant choisit un identifiant aléatoire court, par exemple ses initiales suivies de quatre caractères aléatoires. Deux terminaux :

# Terminal 1
mosquitto_sub -h broker.connectmq.com -p 1883 -i sub-ab7k2q -t 'connectmq/demo/ab7k2q/#' -v

# Terminal 2
mosquitto_pub -h broker.connectmq.com -p 1883 -i pub-ab7k2q \
  -t 'connectmq/demo/ab7k2q/hello' -m 'my first MQTT message'

L'enseignant s'abonne ensuite à connectmq/demo/+/hello et la classe regarde les messages arriver. Cette seule commande enseigne les topics, les wildcards et le découplage mieux qu'une diapositive.

TP 2 : QoS, retained messages et Last Will

Publiez un retained message, déconnectez-vous, reconnectez-vous et observez son arrivée immédiate. Tuez un client qui a enregistré un Last Will et regardez le will apparaître. Associez ce TP à la lecture des niveaux de QoS MQTT expliqués.

TP 3 : un simulateur de capteur en Python

import json
import random
import time
import uuid

import paho.mqtt.client as mqtt

STUDENT_ID = "ab7k2q"  # remplacez par votre propre identifiant aléatoire
BASE = f"connectmq/demo/{STUDENT_ID}/room"

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2,
                     client_id=f"py-{STUDENT_ID}-{uuid.uuid4().hex[:4]}")
client.will_set(f"{BASE}/status", "offline", qos=1, retain=True)


def on_connect(client, userdata, flags, reason_code, properties):
    print("Connected:", reason_code)
    client.publish(f"{BASE}/status", "online", qos=1, retain=True)
    client.subscribe(f"{BASE}/setpoint")


def on_message(client, userdata, msg):
    print("New setpoint:", msg.payload.decode())


client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 1883, keepalive=60)
client.loop_start()

while True:
    reading = {"temp": round(random.uniform(19.0, 24.0), 1), "ts": int(time.time())}
    client.publish(f"{BASE}/temperature", json.dumps(reading), qos=1)
    print("Sent", reading)
    time.sleep(2)

Installez la bibliothèque avec pip install paho-mqtt. Les étudiants publient ensuite une consigne en ligne de commande et voient leur script réagir.

TP 4 : le matériel

Passez aux cartes ESP32. Le tutoriel ESP32 MQTT permet de faire publier une carte en une séance ; les équipes ajoutent ensuite un vrai capteur. Le Wi-Fi d'un campus avec portail captif ou WPA2-Enterprise bloque souvent les cartes embarquées : testez le réseau avant le TP ou apportez un point d'accès dédié.

TP 5 : projet d'équipe sur un broker privé

Les équipes créent leur propre broker Serverless, passent au port 8883 avec TLS et identifiants, et construisent un système de bout en bout : capteurs, tableau de bord Node-RED ou web, et une alerte. Le passage de connexions anonymes à des connexions authentifiées est en soi une leçon de sécurité ; orientez les équipes vers les bonnes pratiques de sécurité MQTT.

Des règles de classe qui évitent le chaos

  1. Chaque client ID doit être unique. Deux étudiants qui utilisent esp32 comme client ID vont se déconnecter mutuellement sans fin ; c'est de loin le problème le plus fréquent en TP.
  2. Chaque topic commence par votre propre préfixe. Sur le broker public, connectmq/demo/<your-random-id>/.... Interdiction de publier sous le préfixe de quelqu'un d'autre.
  3. Aucune donnée personnelle sur le broker public. Considérez-le comme un panneau d'affichage public.
  4. Ajoutez une pause à chaque boucle de publication. Un while True sans sleep atteint instantanément la limite de débit.
  5. Les identifiants ne vont jamais dans un dépôt Git public. Utilisez un fichier de configuration listé dans .gitignore ou des variables d'environnement.
  6. Gardez une profondeur de topic raisonnable. Le broker public autorise 8 niveaux.

Dépannage en TP

Symptôme Cause probable Solution
Le client se connecte puis se déconnecte en boucle Client ID dupliqué Utilisez un identifiant aléatoire unique
Rien n'arrive Faute de frappe ou casse différente dans le topic Les topics sont sensibles à la casse ; abonnez-vous à prefix/# pour tout voir
Connexion refusée sur le campus Port bloqué Essayez 8883, ou WebSocket sur 8084 depuis un navigateur
Les messages s'arrêtent après une rafale Limite de débit du broker public Ajoutez une pause entre les publications
L'ESP32 ne rejoint jamais le Wi-Fi Réseau Enterprise ou avec portail captif Utilisez un point d'accès de TP ou un partage de connexion
Erreur TLS sur le broker privé Mauvais port ou CA manquante Utilisez 8883 avec le magasin de CA du système

Gérer les identifiants d'une classe entière

Qui dit brokers privés dit identifiants, et en classe, les identifiants s'égarent. Demandez à chaque équipe de désigner un membre qui crée le broker et partage les identifiants uniquement au sein de l'équipe via la plateforme du cours, pas dans une discussion publique. Encouragez les équipes à garder dans leur dépôt un petit fichier config.example avec des valeurs fictives, le vrai fichier étant exclu du gestionnaire de versions. En fin de cours, les équipes peuvent supprimer ou régénérer leurs identifiants, ce qui sert aussi de courte leçon sur le renouvellement des identifiants.

Idées d'évaluation

Évaluer un travail MQTT est plus simple quand il est observable. Demandez aux équipes de présenter une arborescence de topics dans l'explorateur de topics et d'en justifier la conception, de montrer un Last Will qui fait passer un appareil hors ligne sur le tableau de bord, de déclencher une règle d'alerte et d'expliquer leurs choix de QoS. Une courte réflexion écrite sur ce qui changerait en production, comme des identifiants par appareil, TLS partout ou la capacité, complète l'ensemble. Notre tutoriel MQTT fonctionne bien comme lecture préalable, et le guide du broker MQTT cloud donne aux étudiants avancés une vue d'ensemble des choix d'hébergement.

Lancez votre TP IoT avec ConnectMQ

Faites votre première démo sur le serveur MQTT public gratuit broker.connectmq.com dès aujourd'hui, sans inscription, puis demandez à chaque équipe de créer un broker Serverless gratuit sur app.connectmq.com, sans carte bancaire. ConnectMQ est un broker MQTT managé : vous enseignez MQTT plutôt que l'administration de serveurs.

Questions fréquentes

Existe-t-il un broker MQTT gratuit pour les étudiants ?

Oui. broker.connectmq.com offre un espace public gratuit pour les démos, et chaque étudiant ou équipe peut créer un broker ConnectMQ Serverless gratuit avec des identifiants privés et jusqu'à 25 connexions.

Les étudiants peuvent-ils utiliser le serveur MQTT public gratuit pour leur projet final ?

Techniquement oui, mais tout y est lisible par tous et un autre étudiant pourrait publier sur les mêmes topics. Utilisez un broker Serverless privé pour les travaux notés.

Les étudiants doivent-ils installer un broker en local ?

Non. Des clients comme mosquitto_pub, paho-mqtt ou le client intégré au navigateur du portail suffisent, ce qui fait gagner du temps de préparation des TP.

Pourquoi les étudiants sont-ils sans cesse déconnectés ?

Presque toujours parce que deux clients partagent le même client ID. Chaque connexion a besoin de son propre identifiant unique.

Peut-on utiliser des cartes ESP32 sur le Wi-Fi du campus ?

Souvent uniquement sur les réseaux protégés par un simple mot de passe WPA2. L'authentification Enterprise et les portails captifs bloquent généralement les cartes : un point d'accès dédié au TP est l'option fiable.

Articles liés

Broker MQTT BYOC : le modèle Bring Your Own Cloud expliqué

Un broker MQTT BYOC tourne dans votre compte cloud mais est exploité par un fournisseur. Découvrez le fonctionnement du modèle, la répartition des responsabilités et comment préparer votre compte.

9 min de lecture

Messages MQTT par seconde : comment estimer et mesurer le débit

La planification du débit MQTT se résume à quelques formules et à une mesure honnête. Découvrez comment estimer les messages entrants et sortants par seconde, tenir compte des pics et faire correspondre le résultat à une offre de broker.

8 min de lecture

Tous les articles →

Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.