ESP32 - BMP180
Objectif(s)
Créer un objet connecté en wifi qui enverra via MQTT la température et la pression atmosphérique vers un serveur qui stockera ces informations en base de données InfluxDB avant de les restituer au travers de la solution Grafana.
Répartissez vous bien les tâches : le travail est divisible et il y a pas mal de choses à faire ...
Arduino
Ajout de l'ESP 32 à Arduino si ce n'est pas déjà fait : https://doc.creatronic.fr/books/i2---conception-dun-syst%C3%A8me-embarqu%C3%A9-temps-r%C3%A9el/page/installation-arduino
Utiliser la board Wemos LOLIN32.
Librairie conseillé(e) : Adafruit_BMP085
Pour l'installer il faudra ajouter l'URL suivante dans le menu préférences :
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
Rpi
Préparation du Raspberry Pi (installation Raspian)
Si Raspbian est déjà installé vous pouvez sauté cette étape.
Télécharger la dernière version de Raspbian : https://www.raspberrypi.org/downloads/raspbian/
Flasher l'image sur la carte SD avec Balena Etcher : https://www.balena.io/etcher/
Avant de débrancher la carte SD, sur la partition boot ajouter un fichier ssh (pas un .ssh, un fichier ssh tout court sans extension) afin que le système autorise le ssh bloqué par défaut.
Si vous souhaitez travailler en Wifi, il faut le configurer avant de mettre la carte SD dans le Raspberry : https://www.raspberrypi-spy.co.uk/2017/04/manually-setting-up-pi-wifi-using-wpa_supplicant-conf/
Mise à jour du système :
sudo apt update && sudo apt dist-upgrade && sudo apt upgrade
Installation de NodeRed
cd ~
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
sudo systemctl enable nodered.service
sudo node-red-start
Installation de InfluxDB
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update && sudo apt-get install influxdb
sudo service influxdb start
Si tout va bien, taper "influx" pour accéder à la console influxdb.
Créer une base de donnée : create database lenomquevousvoulez;
Installation de Grafana
sudo apt update && sudo apt-get install -y software-properties-common apt-transport-https
sudo nano /etc/apt/sources.list.d/grafana.list
Ajouter le dépôt suivant puis enregistrer.
deb https://packages.grafana.com/oss/deb stable main
Puis :
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo apt-get update && sudo apt-get install grafana
sudo service grafana-server start
Doc officielle en cas de problème : https://grafana.com/docs/installation/debian/
Accessible sous http://ip:3000
Login/mdp par défaut : admin/admin
Ajout des nodes nécessaires dans node-red
Ajouter les nodes suivants :
node-red-contrib-influxdb => va nous permettre de dialoguer avec les bases influxDB
Travail à réaliser
Sur nodeRED, créer un flow permettant de récupérer et stocker les données de l'objet connecté et de l'insérer dans un measurement influxDB.
Sur Grafana : créer un nouveau dashboard qui permettra d'afficher un graph et une gauge de la charge CPU (penser à activer l'auto refresh).
No Comments