Suivi de consommation électrique : les améliorations possibles

Ce projet, même s’il fonctionne actuellement plutôt bien, est améliorable sur plusieurs points :

  • Je ne règle l’horloge interne qu’une seule fois, au démarrage du module. Il peut être intéressant de forcer une synchronisation une fois toute les semaines par exemple pour compenser la dérive de l’horloge interne. Je n’ai actuellement pas de chiffres précis sur ce phénomène, mais il existe. Cela signifie rajouter une variable compteur, incrémentée à chaque collecte (toutes les minutes actuellement), et déclencher une synchronisation SNTP arrivée à une valeur (1 semaine exprimée en minutes, soit 10080).
  • Dans la configuration actuelle, je n’ai que très peu de vérifications faites sur la réelle prise en compte des paramètres que j’envoie au serveur. En effet, si le serveur ne répond pas ou si la connexion Wi-Fi tombe, je ne fais rien. Une solution, en l’absence d’espace de stockage comme une mémoire flash, serait de garder mes requêtes en mémoire vive et d’attendre la prochaine mise à jour pour essayer de les envoyer. Cela implique donc d’autres vérifications (état du Wi-Fi, code erreur requête HTTP GET) et un P-STATE supplémentaire (requêtes en attente).
  • A force d’ajouter des P-STATE, je dois optimiser leur traitement. Pour rappel, j’utilise une variable qui prend les valeurs suivantes : PWAIT (je n’ai rien a faire), PSERIAL (je dois récupérer des informations sur le port série, événement déclenché toutes les minutes par une interruption du timer), PGET (je dois préparer et envoyer une requête HTTP GET au serveur). L’idée serait non plus d’avoir une variable représentant un seul état, mais des bits dans cette variable. Ainsi, je pourrais stocker plusieurs actions à réaliser dans la variable (exemple : PSERIAL et PGET), et donc arranger ma boucle de traitement pour donner la priorité à la récupération des informations du port série, et stocker les requêtes résultantes en mémoire pour les envoyer au serveur plus tard si la liaison avec celui-ci est rompue.
  • Au niveau matériel, il me reste beaucoup d’entrée-sorties digitales et quelques entrées analogiques pour ajouter un capteur de température, d’humidité… Un petit boitier ne serait pas de trop aussi pour abriter le montage.

J’implémenterai ces améliorations au fur et à mesure de mon temps libre et de mes envies. Le changement dans le traitement du P-STATE me parait être celui qui doit être réalisé en premier.

Ce contenu a été publié dans Réalisations personnelles, avec comme mot(s)-clé(s) , , , , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *