Matériel

  • Raspberry Pi
  • Carte SD
  • Clavier
  • Souris
  • Capteur DS18B20

Installation

La première partie consiste à connecter le capteur avec le Raspberry Pi. Nous allons connecter tous les câbles en se référant à ce diagramme.

Raspberry Pi

Le Raspberry Pi est un nano ordinateur de la taille d’une carte de crédit que l’on peut brancher à un écran et utilisé comme un ordinateur standard. Sa petite taille, et son prix intéressant fait du Raspberry Pi un produit idéal pour réaliser divers petits projets.

Ensuite nous allons installer RaspbianOS sur le Raspberry Pi. Il nous reste à activer deux options dans les réglages.

  • SSH : Pour avoir accès à notre Raspberry Pi en SSH
  • 1-Wire : Pour activer l’interface 1-Wire de notre Raspberry Pi

Configuration

L’installation est prête. La prochaine étape est de contrôler que nos valeurs soient correctement capturées. Il est temps d’utiliser Node-RED.

Node-RED

Node-Red est une boite à outils de programmation graphique qui permet de développer des objets connectés (et beaucoup d’autres choses) avec peu de connaissance en informatique.

Node-RED est installé par défaut sur RaspbianOS. Lançons le service en utilisant cette commande (le port par défaut est 1880).

node-red-start

Puis rendons nous à l’adresse “https://ip_du_raspberry/1880” pour utiliser l’interface graphique. Nous aurons besoin d’installer ces deux palettes.

Une palette contient tous les nodes nécessaires à l’utilisation.

  • node-red-contrib-influxdb
  • node-red-contrib-sensor-ds18b20

Pour afficher nos valeur nous allons utiliser ces deux nodes.

  • node-red-contrib-sensor-ds18b20
  • debug

Configurons le node du capteur :

  • Sensor ID : ID de notre capteur
  • Periodic : Permet de capturer des valeurs périodiquement (Cochons la)
  • Period (secs) : L’interval des captures en seconde.(Capturons des captures toutes les 5 secondes)

Enfin nous n’avons plus qu’à lier les deux nodes et lancer un déploiement. Une valeur devrait s’afficher toutes les 5 secondes.

Bien, maintenant nous voulons envoyer ces mesures à notre base de donnée.

InfluxDB

InfluxDB est un système de gestion de base de données optimisé pour le stockage de séries temporelles ou time series (données horodatées). Disponible en open source, cette base de données spécialement conçue pour les métriques et les événements fait également office de monitoring d’applications.

Premièrement nous devons installer InfluxDB.

sudo apt install influxdb

Ensuite nous pouvons démarrer le service (le port par défaut est 8086).

influx -precision rfc3339

Créons une nouvelle base de données appelée “TEMPERATURES“.

CREATE DATABASE TEMPERATURES

Pour afficher nos bases de données nous pouvons utiliser cette commande.

SHOW DATABASES

Retournons dans Node-Red et ajoutons le node “influxdb out”.

Configurons ce node en lui ajoutons un nouveau serveur :

  • Host : ip_du_raspberry
  • Port : 8086 (port d’InfluxDB)
  • Database : Nom de la base données (TEMPERATURES)

Ensuite nous devons définir un nom pour nos mesures dans le champ “Measurement” (appelons les “temp“).

Connectons les nodes et relançons un déploiement.

Pour vérifier que nos valeurs sont correctement envoyées vers la base de données, retournons dans InfluxDB.

Sélectionnons notre base de données “TEMPERATURES“.

USE TEMPERATURES

Puis affichons la liste des mesures.

SHOW MEASUREMENTS

La mesure “temp” doit s’afficher. Affichons donc les valeurs capturées.

SELECT * FROM temp

Nos valeurs ont correctement été envoyé dans InfluxDB . Il ne nous reste plus qu’à monitorer le tout.

Grafana

Grafana est une plateforme open source de monitoring, analyse et visualisation des données systèmes en temps réel. L’objectif de cette solution est de présenter facilement et de façon intuitive une grande quantité de données issues de sources différentes.

Installons Grafana à l’aide de cette commande.

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list sudo apt-get update sudo apt-get install -y grafana

Ensuite démarrons le service (le port par défaut est 3000).

sudo service grafana-server start

Ajoutons une nouvelle source données :

  • Name : Nom de la source de données (par exemple : Temperatures)
  • Type : Type de la base de données (InfluxDB)
  • URL : ip_du_raspberry:8086
  • Databases : Nom de la base de données à utiliser (TEMPERATURES)

Ensuite nous pouvons créer un nouveau dashboard et y ajouter un nouveau panel.

Sélectionnons “Temperatures” comme source de données (Data Source). Ajoutons les mesures “temp” dans le champ “FROM“. Enfin ajustons les réglages pour avoir le résultat voulu.

Conclusion

Nous avons vu comment mettre en place un petit système de monitoring en couplant un capteur thermique à un Raspberry Pi. Cette petite installation peut s’avérer utile pour surveiller une cave ou une serre par exemple.

L’article est aussi disponible en anglais ici.

Bonne journée !

Syl