Développement de plugins MeshCore
Créez des modules personnalisés et étendez les fonctionnalités de MeshCore avec vos propres plugins
En quoi consiste le développement de plugins MeshCore ?
MeshCore dispose d'une architecture modulaire de plugins permettant aux développeurs d'étendre les fonctionnalités du réseau mesh sans toucher au firmware de base. Via les plugins, vous ajoutez des fonctionnalités sur mesure comme l'intégration de capteurs, la journalisation de données, l'appel à des API externes et bien plus encore.
L'API plugin offre des hooks dans le cycle de vie du firmware, vous permettant de réagir à des événements tels que la réception de messages, la détection de nœuds, les mises à jour de télémétrie et les décisions de routage. Cela rend MeshCore extrêmement flexible pour des applications spécifiques.
Que vous souhaitiez connecter une station météo, mettre en place un système d'alerte automatique ou créer des visualisations personnalisées – les plugins MeshCore rendent tout cela possible. Ce guide vous montre comment démarrer.
Aperçu de l'architecture plugin
Les plugins MeshCore reposent sur une architecture orientée événements avec des interfaces clairement définies
Manifeste du plugin
Chaque plugin commence par un fichier manifeste qui définit les métadonnées et les capacités :
Gestionnaires d'événements
Les plugins enregistrent des gestionnaires pour des événements spécifiques du réseau mesh :
Gestion de l'état
Les plugins peuvent stocker un état persistant dans le firmware :
Intégration API
Accédez aux fonctionnalités de base de MeshCore via l'API plugin :
Développement de plugin étape par étape
De la mise en place de votre environnement de développement au déploiement de votre premier plugin
Étape 1 : Configurer l'environnement de développement
Clonez le dépôt MeshCore et installez les outils de compilation :
cd meshcore-firmware
git submodule update --init --recursive
pip install platformio
pio run
Étape 2 : Créer le squelette du plugin
Créez un nouveau dossier plugin avec les fichiers de base :
touch src/plugins/myPlugin/plugin.json
touch src/plugins/myPlugin/myPlugin.h
touch src/plugins/myPlugin/myPlugin.cpp
Étape 3 : Configurer le manifeste du plugin
Définissez les métadonnées de votre plugin dans plugin.json :
Étape 4 : Implémenter la logique du plugin
Écrivez le code de votre plugin en C++ et implémentez les gestionnaires d'événements dont vous avez besoin. Enregistrez des callbacks pour des événements comme la réception de messages, la détection de nœuds ou les mises à jour de télémétrie.
Étape 5 : Compiler et tester
Compilez le firmware avec votre plugin et flashez-le sur un appareil de test. Testez rigoureusement vos fonctionnalités et déboguez les éventuels problèmes via le moniteur série.
Exemple : plugin capteur de température
Un plugin simple qui lit un capteur DHT22 et envoie la température via le réseau mesh
Comment ça fonctionne ?
Ce plugin lit chaque minute la température et l'humidité d'un capteur DHT22 et diffuse les données via le réseau mesh. De plus, le plugin répond aux messages « TEMP_REQUEST » en renvoyant immédiatement une mesure de température au demandeur.
Types de plugins populaires
Intégration de capteurs
Connectez des capteurs externes (température, GPS, pression atmosphérique) et transmettez les données via le réseau mesh
Journalisation de données
Enregistrez les événements mesh sur une carte SD ou dans une base de données externe pour analyse ultérieure
Systèmes de notification
Envoyez des alertes automatiques basées sur des événements mesh ou des valeurs de capteurs
Plugins de cartographie
Visualisez la topologie du réseau, les positions des nœuds et la puissance du signal
Ponts de protocole
Connectez MeshCore à d'autres réseaux (WiFi, LoRaWAN, MQTT)
Automatisation
Créez des bots qui réagissent automatiquement aux messages ou événements du réseau
Bonnes pratiques pour le développement de plugins
Suivez ces recommandations pour créer des plugins stables et performants
-
✓
Gardez vos plugins compacts et ciblés - Un plugin doit faire une seule chose, mais la faire bien
-
✓
Respectez les limites de ressources - L'ESP32 dispose de mémoire et CPU limitées, optimisez votre code
-
✓
Utilisez des patterns asynchrones - Ne bloquez jamais la boucle principale, utilisez des callbacks et des timers
-
✓
Prévoyez une gestion d'erreur solide - Capturez les exceptions et enregistrez les erreurs clairement
-
✓
Documentez votre API - Rédigez des commentaires clairs et un README pour les utilisateurs
-
✓
Testez rigoureusement - Testez sur du matériel réel et dans différentes conditions réseau
Questions fréquentes
Dans quel langage écrit-on les plugins MeshCore ?
Les plugins MeshCore sont écrits en C/C++ car le firmware tourne sur du matériel embarqué (ESP32, nRF52). Vous pouvez également utiliser Python pour des plugins externes communiquant avec le firmware via série ou MQTT.
Puis-je utiliser des bibliothèques Arduino existantes dans mon plugin ?
Oui, la plupart des bibliothèques Arduino sont compatibles avec MeshCore car il est basé sur le framework Arduino. Attention toutefois aux conflits de bibliothèques et à la consommation mémoire.
Comment déboguer mon plugin pendant le développement ?
Utilisez le moniteur série dans PlatformIO pour la sortie de débogage. Vous pouvez utiliser Log.info(), Log.debug() et Log.error() pour une journalisation structurée. Avec un débogueur matériel (comme J-Link), vous pouvez également placer des points d'arrêt.
Les plugins peuvent-ils modifier la configuration radio ?
Oui, avec les bonnes permissions, les plugins peuvent modifier les paramètres radio comme la puissance d'émission, le spreading factor et la bande passante. Cela doit se faire avec précaution pour préserver la stabilité du réseau.
Comment distribuer mon plugin à d'autres utilisateurs ?
Partagez votre plugin sous forme de dossier avec le code + plugin.json via GitHub. Les utilisateurs ajoutent ensuite votre plugin à leur build du firmware et compilent eux-mêmes. À l'avenir, une marketplace de plugins pourrait voir le jour.
Peut-on gagner de l'argent avec des plugins ?
MeshCore est open source, mais vous êtes libre de développer des plugins commerciaux. Beaucoup de développeurs optent pour un modèle open source + donations, ou vendent du support et du développement sur mesure.
Lancez-vous dans le développement de plugins MeshCore
Avec l'API plugin, adaptez MeshCore à votre application spécifique sans toucher au firmware de base
Commencez dès aujourd'hui votre premier plugin et partagez vos créations avec la communauté !