ESP32 et MQTT face aux coupures réseau
À propos du cours
Votre ESP32 retrouve le Wi-Fi. Mais les mesures produites pendant la coupure sont-elles arrivées ? Ce cours gratuit sur ESP32 et MQTT avec ESP-IDF part de cette question. Vous suivrez les données jusqu’au récepteur, provoquerez une coupure contrôlée et comparerez les traces avant d’ajouter un tampon RAM.
ESP32 et MQTT face aux coupures réseau
Diagnostiquer les pertes MQTT et tester un tampon RAM.
Ce que vous saurez vérifier
- Retrouver une même mesure dans les logs de l’ESP32 et dans une capture MQTT.
- Distinguer une publication demandée, un message reçu, une absence et un doublon.
- Observer la reconnexion Wi-Fi et MQTT sans supposer qu’elle récupère les anciennes données.
- Dimensionner un tampon RAM, mesurer sa saturation et expliquer ce qu’un redémarrage lui fait perdre.
Le résultat attendu est concret : deux fichiers de traces et un rapport de comparaison que vous pouvez expliquer. Un voyant « connecté » ne suffit pas à démontrer que toutes les mesures sont arrivées.
Trois leçons pour tester votre application ESP32 MQTT
- Installer les outils et suivre une mesure. Configurez ESP-IDF 5.5.5, Mosquitto et le récepteur Python sur macOS, Windows ou Linux. Compilez le projet, flashez la carte et comparez les identités des mesures.
- Couper le Wi-Fi et retrouver les données manquantes. Déclenchez une coupure reproductible, observez la reprise et utilisez le script fourni pour repérer absences, doublons et arrivées tardives.
- Conserver les mesures en RAM. Activez un tampon de capacité limitée, comparez deux tailles, provoquez une saturation puis un reset. Vous pourrez justifier ce que cette correction résout et ce qu’elle ne garantit pas.
Matériel et prérequis
Il vous faut un ESP32 classique ou un ESP32-S3, un câble USB de données, un ordinateur et un réseau Wi-Fi 2,4 GHz. Aucun capteur externe n’est nécessaire : le programme produit des données fictives. La procédure précise le port UART à utiliser sur l’ESP32-S3-DevKitC-1 et la cible de compilation correspondante.
Vous devez connaître les variables, conditions, boucles et fonctions en C. Si besoin, commencez par nos fondations du langage C, puis les boucles et fonctions en C. Notre explication du bridge USB/UART aide à comprendre le lien entre le PC et la carte.
Code source, exercices et corrections
Le projet comprend le firmware en C, le récepteur MQTT en Python, les outils de comparaison et les corrections. Chaque leçon donne les commandes, les observations attendues et les erreurs à rechercher. Vous pouvez suivre le cours à partir du texte, sans vidéo.
Télécharger le projet ESP32 MQTT v0.2.2 et les guides français et anglais. Commencez par l’installation détaillée dans la leçon 1. Le site propose une page française et une page anglaise distinctes.
Questions avant de commencer
Le cours utilise-t-il Arduino IDE ?
Non. Le firmware utilise ESP-IDF 5.5.5 et se compile avec les outils Espressif. L’installation est expliquée dans la première leçon ; consulter la documentation officielle ESP-IDF pour l’ESP32-S3 permet d’approfondir chaque étape.
Faut-il un compte cloud ou un broker MQTT payant ?
Non. Mosquitto fonctionne sur votre ordinateur, dans le réseau local du laboratoire. Les essais utilisent un réseau isolé et des données fictives. L’authentification, les droits d’accès et TLS doivent être traités avant d’exposer une application réelle.
Le tampon garantit-il zéro perte de données ?
Non. Il conserve un nombre limité de mesures en RAM. Quand il est plein, de nouvelles mesures sont rejetées ; un reset efface son contenu. Le laboratoire utilise MQTT QoS 0 : le succès de l’appel de publication ne prouve pas la réception finale.
Passer en QoS 1 suffit-il à tout corriger ?
Non. Un accusé MQTT du broker ne prouve pas le traitement par l’application abonnée. Il ne restaure pas non plus les mesures perdues avant leur remise au client MQTT. Le cours vous apprend à identifier ces différentes frontières à partir des traces.
Un cours de ParlezVousTech, conçu par Samba Ndome, ingénieur logiciel embarqué.
Qu’allez-vous apprendre ?
- Suivre une mesure de l’ESP32 jusqu’au récepteur MQTT.
- Diagnostiquer les données manquantes, les doublons et les arrivées tardives après une coupure Wi-Fi.
- Tester un tampon RAM, sa saturation et les pertes provoquées par un reset.