Cette SAE m'a plongé dans un environnement de développement embarqué que je n'avais jamais manipulé : une carte WT32-SCO1_V3.3 basée sur un microcontrôleur ESP32, à programmer via le framework ESP-IDF sous VSCodium. La première étape a été purement technique et autonome : installer la toolchain ESP-IDF (clone du repo, checkout v6.0.1, configuration du plugin VSCodium, ajustement du flash à 4MB et de la partition table). Cette phase d'installation m'a confronté à la réalité de la mise en place d'un environnement de développement embarqué professionnel, avec ses contraintes de dépendances et de configuration système.
Une fois l'environnement opérationnel, j'ai pris en charge l'implémentation du protocole Hunter dans hunter.c. Les décisions d'architecture du code ont été les miennes : structurer la machine à états autour des types de messages (DISCOVER, SENSOR, TARGET, AUTH_REQ, AUTH_SUCCESS, AUTH_FAIL), gérer le stockage progressif des fragments de mot de passe dans final_password[], et déclencher l'authentification automatiquement à la réception d'un message TARGET. J'ai également fait le choix d'intégrer l'affichage graphique en temps réel via graphics_update_node() et graphics_update_password() pour visualiser la progression directement sur l'écran de l'ESP.
La phase de terrain — parcourir le bâtiment A et B de l'IUT avec l'ESP32 pour localiser les 7 capteurs cachés — a demandé une démarche proactive et méthodique, en croisant les coordonnées GPS reçues avec la carte OpenStreetMap de l'IUT.
Les ressources mobilisées ont été multiples et complémentaires. Sur le plan technique, la documentation officielle ESP-IDF (Espressif) a été la référence principale pour comprendre le driver NETSTACK_MAC, la couche ESP-NOW, et les fonctions d'initialisation réseau. Le module s203_module fourni (driver ESP-NOW, interface graphique, logger) a constitué une couche d'abstraction précieuse que j'ai dû comprendre avant de pouvoir l'exploiter : lecture de net/mac.h pour les fonctions réseau, de graphics/graphics.h pour l'affichage.
Le logger intégré (LOG_INFO, LOG_WARN, LOG_ERR) a joué un rôle central dans le débogage : afficher en temps réel les messages reçus, les fragments de mot de passe accumulés et les erreurs d'authentification. Git et GitLab (dépôt groupe 11) ont été utilisés pour la gestion de version et la collaboration. Enfin, le sujet lui-même et le document « Protocole de communication » ont été des ressources structurantes pour comprendre le format exact des structures de messages (sensor_msg_t, auth_msg_t, etc.).