Interface graphique
Choix de l’interface
Il existe de nombreuses solutions pour enregistrer et représenter des données sur le Raspberry Pi. L’une des plus faciles à mettre en œuvre est la base de données (BDD) InfluxDB qui propose une suite de logiciels destinés en particulier à travailler avec MQTT (Message Queuing Telemetry Transport = transport de télémétrie par messages) mais qui peut également dialoguer simplement avec...
Désactiver l’écran de veille
Raspberry Pi OS Desktop a la (fâcheuse ?) habitude de passer en écran de veille quand l’utilisateur est inactif un moment. Pour afficher en permanence les courbes de la station météo, il est souhaitable de désactiver cette fonction.
Ouvrez le menu principal en cliquant sur la framboise en haut à gauche de l’écran.
Ensuite, ouvrez le menu Configuration du Raspberry...
InfluxDB
1. Présentation
InfluxDB est une base de données open source spécialement conçue pour gérer des données horodatées. On peut configurer InfluxDB pour conserver les données pendant une période de temps définie et les supprimer automatiquement ensuite. Elle gère aussi bien les données numériques que les données alphanumériques.
Elle est complètement compatible avec Raspberry Pi OS sur le Raspberry Pi 4 et s’interface avec de nombreux langages dont Python.
Comme toutes les autres bases de données, InfluxDB permet de gérer les droits de différents utilisateurs.
InfluxDB horodate automatiquement les données enregistrées. Le Raspberry Pi devra obligatoirement être mis à l’heure. Cela se fait automatiquement en NTP (Network Time Protocol = protocole de temps réseau) si le système est connecté à Internet. Pour une station non connectée, il conviendra de prévoir une horloge RTC (Real Time Clock = Horloge Temps Réel) sauvegardée par pile pour maintenir l’heure du système. Les données sont enregistrées sur la carte micro SD.
2. Installation d’InfluxDB
L’opération d’installation commence par une mise à jour du système Raspberry Pi OS.
sudo apt-get update***
sudo apt-get upgrade...
Chronograf
1. Présentation
Chronograf est un logiciel open source qui permet de réaliser simplement de magnifiques tableaux de bord (dashboard) pour présenter graphiquement les données enregistrées dans InfluxDB.
L’interface de Chronograf est en anglais. L’équipe de développement est peu importante. Les développeurs ne prévoient pas de gérer d’autres langues que l’anglais dans cette application.
2. Installation
Lancez l’installation de Chronograf.
sudo apt-get install chronograf
Configurez le démarrage automatique de Chronograf au démarrage du système.
sudo systemctl enable chronograf
Démarrez le service Chronograf.
sudo systemctl start chronograf
Chronograf est installé. Ouvrez un navigateur et saisissez l’adresse de votre Raspberry Pi 4 suivie du numéro de port 8888.
192.168.1.29:8888
La page d’accueil de Chronograf apparaît. Démarrez et passez les étapes du configurateur rapidement (Next ou Skip), la configuration réelle se fera dans l’interface normale (ci-dessous).
3. Configuration de la BDD
a. Suppression d’une BDD dans Chronograf
Il est possible de réutiliser la BDD meteo créée manuellement précédemment, mais pour démarrer "proprement" il est préférable de supprimer cette BDD et d’en...
Liaison avec le script météo
1. Script final
Les valeurs à envoyer à la base de données sont disponibles à la fin du script de gestion de la station météo. Il faudra ajouter la bibliothèque Python de gestion d’InfluxDB en début de script, ainsi que les lignes nécessaires au transfert des informations vers la base de données en fin de script.
Saisissez ce script dans la zone de script de Thonny (disponible en téléchargement sur LF13/station_meteo.py) :
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Lit et affiche les données fournies par la station météo complète
# Envoie les mesures à la BDD InfluxDB
# Importer les bibliothèques utilisées par le script
import bme680
import time
from datetime import datetime as dt, date
from gpiozero import MCP3008, Button
import statistics
import math
import os
import sys
from influxdb import InfluxDBClient
# Initialise l'intervalle de mesure 300s = 5 * 60s = 5mn
mesure = 300
# Initialise l'intervalle de mesure de vitesse du vent (en secondes)
temps_mesure = 5
# Initialise le temps de pause du script (en secondes)
stop_script = 5
# Crée le capteur BME680 en testant les deux adresses possibles 0x76 et 0x77
try: ...
Conclusion
Ce chapitre est la synthèse de tout ce qui a été abordé dans ce livre. Les programmes ne sont pas parfaits, mais… ils fonctionnent. La combinaison de ces projets peut amener des améliorations à la station météo. Par exemple, allumer une LED lorsque la température dépasse une valeur donnée, coder la qualité de l’air avec une LED RGB ou un ruban de LED : vert : pas de pollution, orange : pollution légère, rouge : pollution importante…
On peut aussi imaginer des couplages entre ces projets...