Surveillance de température de salle sur Raspberry Pi avec graphiques Gnuplot et alertes email
Dans un environnement informatique haute performance, maintenir une température ambiante optimale est critique. Le guide suivant explique comment construire un système de surveillance de température fiable en temps réel utilisant un Raspberry Pi, un capteur température/humidité USB, Gnuplot pour l'analyse visuelle, et Gmail pour les alertes automatisées.
Étape 1 : Configuration matérielle
Connectez le capteur température/humidité USB directement sur un port USB du Pi. Pour les capteurs faible consommation, l'alimentation 5 V native du Pi suffit ; pour les dispositifs plus gourmands, utilisez un hub alimenté pour éviter de surcharger le Pi.
Le capteur diffuse une chaîne série telle que :
temperature=20.9°C humidity=62.7% dewpoint=13.0°C
Un script Python lit ces données toutes les cinq minutes, les horodate, et écrit trois journaux roulants : daily.dat, 24hour.dat, et 48hour.dat. Ces fichiers alimentent Gnuplot pour générer des visualisations à jour.
Étape 2 : Logiciel – Serveur web & Dépendances
Installez Apache pour héberger le tableau de bord de surveillance :
sudo apt-get install apache2
Installez les paquets Python requis :
sudo apt-get install python-serial python-gnuplot
Placez les fichiers HTML du tableau de bord dans /var/www/html. La page récupère les dernières images PNG (daily.png, 24hour.png, 48hour.png) générées par Gnuplot.
Étape 3 : Configuration des alertes email
Créez un compte Gmail dédié pour les alertes (tout serveur SMTP fonctionne avec les bons paramètres de port). Dans le script Python, configurez les détails SMTP :
from_address = "[email protected]" username = "[email protected]" password = "your_email_password"
Définissez les destinataires :
to_addresses = ["recipient1@example.com", "recipient2@example.com"]
Quand la température dépasse un seuil prédéfini, le script envoie un email contenant l'image Gnuplot pertinente pour que les destinataires voient instantanément la gravité.
Étape 4 : Analyse série & Journalisation des données
Configurez le port série pour correspondre au format 9600 bauds, 8‑N‑1 du capteur :
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
Analysez la chaîne entrante en localisant le mot-clé « temperature » et en extrayant la valeur numérique. Stockez la lecture horodatée dans les trois fichiers journaux :
from time import strftime, localtime
timestamp = strftime("%d%b%Y %H:%M:%S", localtime())
# Ajouter aux fichiers
Étape 5 : Génération des graphiques Gnuplot
Utilisez Gnuplot pour convertir les fichiers journaux en images PNG. Exemple de script pour le graphique journalier :
import Gnuplot
p = Gnuplot.Gnuplot(debug=0)
p('cd "{path}"')
p('set xdata time')
p('set timefmt "%d%b%Y %H:%M:%S"')
p('set format x "%H:%M\n%d%b"')
p('set title "Daily Current Temperature Display"')
p('set key off')
p('set grid')
p('set xlabel "Time\nDate"')
p('set yrange [15:35]')
p('set ylabel "Temperature (°C)"')
p('set datafile missing "NaN"')
p('set terminal png size 800,400')
p('set output "daily.png"')
p('plot "daily.dat" using 1:($3) with lines')
Répétez avec les noms de fichiers appropriés pour les vues 24 heures et 48 heures.
Étape 6 : Tableau de bord & Logique d'alerte
La page HTML servie par Apache rafraîchit les images PNG chaque minute, fournissant un instantané visuel en direct. Le script Python vérifie la dernière température ; si elle dépasse la limite définie par l'utilisateur, il déclenche un email SMTP avec le dernier graphique en pièce jointe.
Cette configuration offre une solution open-source à faible coût pour la surveillance environnementale continue, assurant à la fois alertes immédiates et visualisation de données historiques.
Processus de fabrication
- Système de contrôle d'accès intégré QR, RFID et vérification de température
- Connecter plusieurs capteurs DS18B20 1-Wire à un Raspberry Pi pour une surveillance température précise
- Surveiller efficacement les températures de salle avec Raspberry Pi et Nagios
- Comment lire la température avec un DS18B20 sur Raspberry Pi 2
- Moniteur température et humidité domestique avec Raspberry Pi et tableau de bord web — Suivi à distance en temps réel
- Surveillance de température professionnelle sur Raspberry Pi avec DS18B20
- Mesure de température sur Raspberry Pi avec capteurs 1‑Wire Maxim et pont I2C DS2482
- Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
- Centre Énergie Domestique : Surveillance panneaux solaires PV, thermiques et températures pièces avec Raspberry Pi et Moteino