Bonjour,
Je souhaiterais créer une app Web permettant à l'utilisateur d'y greffer ses modules. C'est la partie "Contrôle" de cela :
L'objectif est de faire de la modulation de dose dans un verger : distribuer telle quantité de produit de traitement selon la densité de fleurs de la zone considérée. Concrètement, on photographie un verger (A), associe une image à chaque zone (B) et calcule la densité de floraison de chacune (C). Puis on génère une carte du genre cela.
Sur une Raspberry, il y a une interface de contrôle - une app Web - : elle affiche la carte et permet de communiquer avec des modules. Par exemple, un de ces derniers est celui de localisation : à partir de capteurs banchés à la RPi, il est en mesure de donner la position du tracteur dans le verger quand le module de contrôle le lui demande.
Concrètement, un module sur la RPi, c'est :
- Des entrées via les GPIO
- Un programme d'analyse des données reçues des entrées
- Une interface graphique propre au module (pour faire des réglages, afficher les valeurs reçues des entrées…)
- Des sorties via les GPIO
Je souhaiterais pouvoir donner la possibilité à l'utilisateur d'ajouter d'autres modules aisément. Par exemple, il pourrait vouloir brancher une sonde de température sur la carte, récupérer la température courante, et l'afficher. Mais je voudrais que ces modules puissent être facultatifs.
Du coup, est-il possible de mettre tout ça ensemble sans demander à l'utilisateur de modifier le code pour y intégrer ses modules ?
Un truc tout simple consisterait à ouvrir chaque module - i.e. app Web - dans un onglet du navigateur et chacun serait indépendant. Seulement, je souhaiterais qu'ils puissent communiquer. Par exemple, le module de localisation donnerait la position au module de contrôle qui la transmettrait à celui de gestion des quantités de produit de traitement qui pourrait, imaginons, consulter le module de température, s'il existe, pour affiner la dose - pour l'exemple, vu qu'elle ne dépend a priori pas de la température.
Le plus complexe, ce n'est pas l'agencement des modules mais le fait qu'ils proviennent de l'utilisateur. Si je les programme moi-même, je peux aisément les faire interagir, mais comment s'y prendre pour donner à l'utilisateur la possibilité d'utiliser ses propres modules et de les faire interagir avec les autres sans trop de difficulté ?
Côté serveur, j'utiliserai probablement Flask.
Merci ! =)