Développement de systèmes embarqués et objets connectés (IoT)
Une compétence analysée à partir de réalisations concrètes, avec recul critique et progression.
Ma définition
Concevoir et programmer des objets connectés à base de microcontrôleurs, en écrivant un firmware capable de piloter du matériel (entrées/sorties, capteurs, actionneurs) tout en communiquant sur un réseau. Cela suppose de maîtriser un langage bas niveau comme le C++ et de composer avec les ressources limitées d’une carte embarquée.
Mes éléments de preuve
Sur le projet Abeille, j’ai programmé une carte wt32-eth01 en C++ sous PlatformIO : gestion des entrées/sorties, serveur web embarqué logé dans la mémoire flash et communication réseau filaire ou Wi-Fi. Sur Modlink, je suis allé plus loin avec le framework ESP-IDF complété d’Arduino, une architecture MVC adaptée à l’embarqué, le stockage local des scénarios en JSON et le protocole ESP-NOW pour la communication directe entre ESP32. Ces réalisations sont notamment documentées par : dépôt Git hébergé sur le serveur Alcante avec branches et commits documentés, test unitaire de la fonction findNextEvent du planificateur, script PowerShell de déploiement du firmware signé en SCP, et mise à jour du firmware à distance par comparaison de la version locale et de la version serveur.
Mon autocritique
Sur le projet Abeille, j’ai sous-estimé les contraintes matérielles : la carte retenue manquait de mémoire, ce qui a limité le développement du site web embarqué. J’ai aussi découvert la difficulté d’implémenter des protocoles réseau lourds sur une cible aux ressources restreintes, ce qui m’a demandé un vrai travail d’optimisation.
Mon évolution dans cette compétence
Je suis passé d’une carte et d’un environnement imposés (Abeille) à des choix techniques réfléchis et argumentés (Modlink) : sélection du matériel selon la mémoire disponible, optimisation des échanges (JSON compact, compression gzip) et arbitrage entre traitement local et accès distant. Cette compétence est aujourd’hui devenue l’un de mes centres d’intérêt, que je prolonge en dehors du travail sur Arduino et Raspberry Pi.

