Réseau IoT & LoRa

Communication entre Microcontrôleurs (SAE 32)

Conception d'un protocole de communication sans fil robuste en C sur des nœuds M5Stack.

Le Défi Technique

L'objectif était de créer de toute pièce une application de messagerie sans fil entre plusieurs modules M5Stack.

Contrairement au Wi-Fi classique, nous avons utilisé la modulation LoRa et développé notre propre couche protocolaire en langage C (bas niveau) pour gérer les envois, les erreurs et les collisions (façon ALOHA).

Démonstration vidéo du projet

Implémentation & Protocole

Structure des échanges et mécanismes de fiabilité.

Développement C

Programmation bas niveau sur microcontrôleur ESP32, gestion de la librairie RH_RF95 (RadioHead) et de l'affichage LCD.

Protocole Custom

Structure de trames définies :
DATA : Compteur + Payload + CRC
ACK : Accusé de réception pour valider l'envoi.

Gestion d'Erreurs

Détection d'intégrité via XOR/CRC et correction avancée (Reed-Solomon). Gestion des timeouts et retransmissions.

Logique de l'Automate

IDLE
SENDING_DATA
WAITING_ACK
SUCCESS
TIMEOUT (Retry)

Difficultés & Apprentissages

Synchronisation

Coordonner plusieurs émetteurs sans horloge commune pour éviter que tout le monde parle en même temps.

Automates d'États

Conception rigoureuse pour ne jamais bloquer le programme (boucle infinie) en cas de perte de paquet.

Fiabilisation

Implémentation de numéros de séquence pour écarter les doublons (trames reçues deux fois).

"Ce projet m'a permis de toucher du doigt la complexité des communications bas niveau, bien loin de la simplicité apparente du TCP/IP moderne."