Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Raspberry Pi 4
  3. Interface graphique
Extrait - Raspberry Pi 4 Exploitez tout le potentiel de votre nano-ordinateur (...) (2e édition)
Extraits du livre
Raspberry Pi 4 Exploitez tout le potentiel de votre nano-ordinateur (...) (2e édition)
2 avis
Revenir à la page d'achat du livre

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.

images/14-2LF01NEW.png

 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.

images/13LF02.png

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 
images/13LF03.png

 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...