Il y a quelques semaines, on vous a présenté le Yocto-SDI12, qui sert à communiquer avec des capteurs SDI-12. Aujourd'hui, on va utiliser le Yocto-SDI12 pour récupérer les mesures de la station météo intégrée SenseCAP S700 V2 de Seed Studio et les afficher à l'aide de Yocto-Visualization for Web.
Station Meteo
La station SenseCAP S700 V2 de Seed Studio combine plusieurs mesures météorologiques intéressantes: la température, l'humidité relative, la pression atmosphérique, la luminosité, la détection de pluie, le sens du vent ainsi que sa vitesse.
Les capteurs présent sur le SenseCAP S700 V2
Lorsque la station est raccordée directement par un câble USB Type C au PC, une application permet d'afficher les valeurs et d'effectuer quelques actions de configuration. Une fois qu e la station est installée en extérieur, elle peut transmettre ses données soit en MODBUS (RS-485), soit en SDI-12.
Le but ultime de notre expérience consiste à optimiser l'arrosage d'un jardin potager. On va donc mettre pour l'instant la station SenseCAP S700 V2 directement dans le potager, pour avoir des mesures locales de l'illumination, de la température et de la pluie, qui prennent en compte l'effet des arbres environnants. Cela ne sera pas idéal pour la mesure de la direction du vent, qui sera forcément turbulent à cet endroit, mais c'est l'endroit précis pour lequel nous voulons une mesure des conditions environnementales.
Station météo dans le potager
Communication
La station météo offre le choix entre SDI-12 et RS-485. Le gros avantage de SDI-12 est qu'il n'a besoin que de trois fils pour alimenter et communiquer avec un ou plusieurs capteurs. Nous avons donc utilisé un simple câble électrique avec isolation renforcée destiné à l'usage extérieur pour raccorder notre station au milieu du potager. En plus de la station météo, nous avons profité de raccorder au même câble deux sondes d'humidité du sol.
Attention, à la sortie d'usine la station météo est configurée pour utiliser l'interface RS485. Il faut donc lancer l'application de configuration par USB pour modifier les paramètres de communication et activer le mode SDI-12.
Petite déception: l'implémentation SDI-12 de Seed Studio ne respecte pas totalement le standard au niveau de la gestion du délai de réponse aux commandes de mesure. Heureusement, ces spécificités peuvent être paramétrées dans le Yocto-SDI12 pour remédier à ce problème: on peut modifier le temps minimum à attendre après une commande M directement dans VirtualHub dans la page de configuration du Yocto-SDI12.
Alimentation
Généralement, les capteurs SDI-12 sont alimentés en 12V, et c'est le cas pour la station SenseCAP S700 V2. Par contre, son électronique génère des pics de consommation trop élevés, et la source de tension 12V intégrée dans le Yocto-SDI12 ne peut pas directement les satisfaire. Pour contourner le problème, on a rajouté en parallèle sur la ligne d'alimentation 12V un supercapacitor de 0.5 Farad, qui sert de réserve d'énergie, et en amont un régulateur LM317 régulé par une résistance de 10 Ohm de sorte à ne jamais consommer plus de 125mA sur la sortie 12V du Yocto-SDI12. Ainsi, le régulateur de courant permet de charger progressivement le supercapacitor, qui va ensuite servir à alimenter la station météo en supportant ses pics de consommation.
Schéma de montage de l’alimentation
Le tout est raccordé au réseau via un YoctoHub-Ethernet, qui pourra poster les mesures directement sur un serveur Web.
Mesure automatique
Notre premier objectif est de collecter les mesures et de les visualiser à l'aide de Yocto-Visualization for web, installé sur une instance de VirtualHub for web. Pour que cela fonctionne de manière autonome, il nous faut créer sur le Yocto-SDI12 un job qui interroge la station météo toutes les 30 secondes pour lire la température, l'humidité de l'air, la pression atmosphérique, la luminance, la direction et la vitesse du vent, ainsi que l'accumulation de pluie maximum, le temps de pluie sur 24 heures, l'intensité actuelle de la pluie et son intensité maximale. L'interface de configuration des jobs du Yocto-SDI12 permet de faire cela en quelques clics:
En plus des interrogations de la station météo toutes les 30 secondes, le module envoie, toute les 24 heures, une commande de réinitialisation de la mesure de pluie accumulée, ce qui nous permet d'avoir une valeur accumulée sur 24h.
Quelques exemples
Voici un exemple de graphique des températures relevées à l'aide du SenseCAP S700 V2 sur quelques jours:
Température du 3 au 9 juin du SenseCAP S700 V2
Voici les relevés météorologiques pour la même période, obtenues sur le site meteoart.com.
Température du 3 au 9 juin de meteoart.com
Comparons les données relevées avec le SenseCAP S700 V2 et celles fournies par meteoart.com. Les mesures concordent à +/-3°C près, ce qui s'explique par le fait que la mesure de meteoart.com correspond aux mesures de l'aéroport de Cointrin, à 10km. Les fluctuations journalières de température enregistrées par le SenseCAP S700 montrent des creux et des pics qui reflètent les prévisions de meteoart.com.
Voici maintenant le graphique de toutes les valeurs relevées sur notre station le 9 juin entre 12h à 23h.
Météo du 9 juin du SenseCAP S700 V2
Et les relevés pour la même période selon meteoart.com:
Météo du 9 juin de meteoart.com
A nouveau la comparaison objective est difficile en raison des différences de condition dues aux 10km de distance entre les deux lieux de mesure.
On note néanmoins une limitation de la station SenseCAP S700 V2: du fait de sa technique de mesure, elle n'est pas capable de détecter les faibles précipitations. Son détecteur de pluie nécessite des gouttes suffisamment importantes pour être vues.
Il est difficile à ce stade de se prononcer sur la fiabilité des mesures de vent à l'endroit où nous l'avons installée. Nous reviendrons peut-être sur ce sujet dans quelques mois si nous avons l'occasion de la déplacer...
Conclusion
La combinaison du Yocto-SDI12 et de la station SenseCAP S700 V2 nous a permis de mettre en place sans trop de difficulté une solution de mesure combinée de multiples paramètres météorologiques, avec visualisation en ligne mais sans devoir utiliser un service cloud propriétaire. C'était notre premier objectif, et il a été atteint.
Dans un second temps, nous allons pouvoir étudier l'impact des précipitations, de la température et de l'illumination sur l'humidité du sol, et voir s'il est possible d'optimiser un arrosage automatique en conséquence. Mais c'est une autre histoire, qui devra attendre encore quelques semaines...