Station météo autonome datalogger (1/4)
Pour palier les coupures électriques et la perte d’information de la station, j’ai construit une version autonome en énergie qui stocke les données de manière pérenne et qui peut les envoyer sur Thingspeak.
Le concept
La station météo ne sera composée ici que du capteur de température, le plus utile et critique du système et qui mérite une historisation fine de la donnée.
En regardant les vidéos de Barnabé Chaillot sur youtube, l’idée d’une station autonome m’est apparu en même temps. Combiner l’historisation de la donnée et l’autonomie énergétique du module devenait donc l’objectif.
La station se décomposera alors en 2 modules : un module d’alimentation solaire capable de délivrer les 4V nécessaires, stockant l’énergie d’un petit panneau solaire dans des batteries lithium-ion 18650. Le tout régulé par un chargeur TP4056. Et le deuxième module sera le module de température et il sera des plus classiques : nodemcu (esp8266), horloge à base de DS3231, sonde de température avec mon capteur préféré le SHT35.
Fonctionnalités
La station aura les fonctionnalités suivantes :
- Stockage des informations température min/moyenne/max par jour dans un fichier
- Envoi des données sur une plateforme Thingspeak si wifi disponible
- Configuration du module d’horloge
- Récupération des données via FTP
Je me suis posé la question de savoir si il fallait historiser toutes les données ou que les valeurs de référence. Mais dans le cadre de l’autonomie, et étant donné que, dans une climatologie, on ne conserve que les min/moy/max, j’ai décidé de ne garder que celles ci. Cela permettra un gain de place non négligeable sur la ROM de l’esp8266.
Le stockage donc sera fait sur la ROM interne de l’esp8266, stockage de 256kb pour celui ci. Chaque fichier journalier fait environ 35b, ce qui nous laisse une grande marge dans le cadre d’un capteur autonome. On utilisera la librairie Littlefs pour accéder au système de fichier.
L’horloge à base de DS3231 permettra de stocker l’heure courante afin de garder les bonnes valeurs dans les fichiers historisés. Un décalage n’est pas permis pour avoir de la cohérence. Le programme gère l’heure d’été et d’hiver en automatique grâce à une variable stockée dans le système de fichier.
Fonctionnalités
Pour lancer le module dans les différents modes (mode normal, mode online wifi, mode recuperation ftp), des pins ont eté implantées et une gestion par cavalier permet de gérer le 0 ou 1 de la fonction. Et on fonction de la combinaison cela lance l’esp8266 dans tel ou tel mode.
Enfin, le module tourne en deep sleep, c’est à dire qu’il ne se réveille qu’à intervalles réguliers pour récupérer ses données et les enregistrer avant de se rendormir pour économiser l’énergie. Un pas de 5 min me parait suffisant pour historiser des données intéressantes. Si les batteries tiennent bien le coup sur les périodes d’hiver, on pourra voir à descendre à 2 min voir 1min pour une précision maximale (mais plus consommatrice en énergie).
Enfin, afin de réaliser un montage pérenne dans le temps et de qualité professionnelle, les circuits ont été réalisés sur EasyEDA afin de pouvoir sortir des typons de qualité. Ceux ci ont été fabriqués par JLCPCB.
Conclusion
Une série de 3 articles arrivent avec les sujets suivants pour décrire la station :
- Gestion de module d’alimentation et panneau solaire
- Gestion esp8266 et sonde de température
- Gestion des données en local et Thingspeak
Le code source sera disponible sur Github comme d’habitude.