Lorsque l’on développe un objet communicant arrive le moment ou l’on souhaite s’assurer de son fonctionnement dans le temps, cet article va vous présenter comment configurer en quelques heures un Raspberry Pi pour répondre à ce besoin.
Pour cela nous allons commencer par faire un capteur température/pression/humidité Wi-Fi sur base STM32, puis nous utiliserons le Raspberry Pi en point d’accès Wi-Fi avec les outils nécessaire pour surveiller l’évolution des valeurs sous forme de courbes.
Capteur Wi-Fi – STM32F401
Ce capteur est basé sur la carte RUSHUP Cloud-JAM qui est le condensé des carte NUCLEO-F401RE, X-NUCLEO-IDW01M1, X-NUCLEO-IKS01A2 et X-NUCLEO-NFC01A1. Nous allons modifier le code exemple pour n’utiliser que la partie W-Fi et capteurs de température/pression/humidité le tout connecté à un broker MQTT local.
Le capteur publiera toute les minutes sur un broker MQTT ses valeurs de température, humidité et pression.
Liens site officiel
- https://www.rushup.tech/jam/
- https://github.com/rushup/Cloud-JAM
- https://www.st.com/en/evaluation-tools/p-nucleo-cld1.html
- https://github.com/rushup/Cloud-JAM/wiki/Getting-started-with-Cloud-JAM
Étapes
- Installation de l’environnement de développement de STMicroélectronic STM32CubeIDE
- https://www.st.com/en/development-tools/stm32cubeide.html
- Récupérer les sources modifiée depuis le dépôt gitlab Elyxoft en utilisant la branch « develop »
- Importer sous STM32CubeIDE, Compiler et charger sur la cible
- A ce point si l’on se connecte à l’aide d’un terminal série sur le port série virtuel de la carte en 460800bauds on voit apparaître les informations de debug et le fait que la carte ne se connecte pas au Wi-Fi de notre Raspberry Pi, celui-ci n’étant pas configurer …
Monitoring – Raspberry Pi
Plusieurs éléments sont à installer sur le Raspberry Pi, pour cela nous allons suivre quelques guides :
- Point d’accès Wi-Fi
- https://www.framboise314.fr/raspap-creez-votre-hotspot-wifi-avec-un-raspberry-pi-de-facon-express/
- Conserver les valeurs par défauts, ce sont celles inscrites dans le firmware du TAG.
- Broker MQTT
- https://projetsdiy.fr/mosquitto-broker-mqtt-raspberry-pi/
- Sous Windows il est possible de vérifier l’installation en utilisant MQTT.fx (https://mqttfx.jensd.de/index.php/download)
- Influxdb (base de donnée orientée séries chronographiques) et Grafana (visualisation sous forme graphique de série depuis une interface web)
- Node-RED
- https://projetsdiy.fr/installer-node-red-raspbian-jessie-lite-raspberry-pi-zero-w/
- Ajouter le module influxdb depuis le gestionnaire de palette
Arrivé à ce point, notre Tag doit être en mesure de ce connecter en Wi-Fi au Raspberry et publier toute les minutes ces information sur le topic « stm32 », il est facile de vérifier cela en regardant les log de la console série, puis en souscrivant au topic stm32 depuis MQTT.fx.
Il faut maintenant créer une base dans infuxdb dans laquelle nous allons enregistrer nos valeurs. Depuis un terminal sur le Raspberry Pi :
pi@raspberrypi:~ $ influx
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
> CREATE DATABASE stm32
> SHOW DATABASES
name: databases
name
----
_internal
stm32
Notre base de donnée est prête à recevoir des enregistrement, on utilise Node-RED pour récupérer les informations qui arrive sur le topic MQTT, les mettre en forme et les envoyé dans la base de donnée.
Description des différents module :
- mqtt in
- Fonction de transformation
- influxdb batch
- N’oublier pas de « déployer » le flow pour le rendre actif. Les modules de debug permette de vérifier la bonne transformation des messages.
La dernière étape connecté grafana à influxdb et afficher les informations.
La première chose va être de configurer une source de donnée :
Maintenant on va ajouter un dashboard et un premier panel pour la température :
Les deux champs à renseigner sont :
- « Nucleo » dans la ligne FROM, il doit apparaitre dans une liste déroulante, si ce n’est pas le cas, c’est que la connexion à influxdb n’a pas eu lieu.
- « temperature » dans la ligne SELECT, même remarque que précédemment.
On ajoute dans le même dashboard deux autre pannel pour la pression et l’humidité et l’on doit obtenir :
Conclusion
Avec très peu d’effort on obtient un outils capable de présenter les résultats de nos capteurs de façon agréable et facilement exploitable.