Raspberry Pi Raumtemperatur-Überwachung mit Gnuplot-Graphen & E-Mail-Alerts
In einer High-Performance-Computing-Umgebung ist die Aufrechterhaltung optimaler Umgebungsbedingungen kritisch. Der folgende Guide erklärt, wie man ein zuverlässiges Echtzeit-Temperaturüberwachungssystem mit Raspberry Pi, USB-Temperatur/Feuchtigkeitssensor, Gnuplot für visuelle Analysen und Gmail für automatisierte Alerts baut.
Schritt 1: Hardware-Setup
USB-Temperatur/Feuchtigkeitssensor direkt an einen USB-Port des Pi anschließen. Für Low-Power-Sensoren reicht die native 5V-Versorgung des Pi; für höhere Leistungsaufnahme ein powered Hub nutzen, um Überlastung des Pi zu vermeiden.
Der Sensor streamt einen seriellen String wie:
temperature=20.9°C humidity=62.7% dewpoint=13.0°C
Ein Python-Skript liest diese Daten alle fünf Minuten, timestamped sie und schreibt drei Rolling Logs: daily.dat, 24hour.dat und 48hour.dat. Diese Dateien füttern Gnuplot zur Erstellung aktueller Visualisierungen.
Schritt 2: Software – Webserver & Abhängigkeiten
Apache installieren, um das Monitoring-Dashboard zu hosten:
sudo apt-get install apache2
Benötigte Python-Pakete installieren:
sudo apt-get install python-serial python-gnuplot
Dashboard-HTML-Dateien in /var/www/html ablegen. Die Seite lädt die neuesten PNG-Bilder (daily.png, 24hour.png, 48hour.png) die von Gnuplot generiert werden.
Schritt 3: E-Mail-Alert Konfiguration
Dedizierten Gmail-Account für Alerts erstellen (jeder SMTP-fähige Server funktioniert mit korrekten Port-Einstellungen). Im Python-Skript SMTP-Details konfigurieren:
from_address = "[email protected]" username = "[email protected]" password = "your_email_password"
Empfänger definieren:
to_addresses = ["recipient1@example.com", "recipient2@example.com"]
Wenn die Temperatur einen vordefinierten Schwellenwert überschreitet, sendet das Skript eine E-Mail mit dem relevanten Gnuplot-Bild, sodass Empfänger sofort die Schwere sehen.
Schritt 4: Serial Parsing & Data Logging
Serial-Port an Sensor-Format 9600 bps, 8-N-1 anpassen:
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
Eingehenden String parsen, indem „temperature“ Keyword gesucht und numerischer Wert extrahiert wird. Timestamped Reading in die drei Log-Dateien speichern:
from time import strftime, localtime
timestamp = strftime("%d%b%Y %H:%M:%S", localtime())
# An Dateien anhängen
Schritt 5: Gnuplot Graph-Generierung
Gnuplot nutzen, um Log-Dateien in PNG-Bilder umzuwandeln. Beispielskript für Tagesgraph:
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')
Mit entsprechenden Dateinamen für 24-Stunden- und 48-Stunden-Ansichten wiederholen.
Schritt 6: Dashboard & Alert-Logik
Die Apache-gehostete HTML-Seite refresht die PNG-Bilder jede Minute, was einen Live-Visuellen-Snapshot bietet. Das Python-Skript prüft die neueste Temperatur; überschreitet sie das benutzerdefinierte Limit, triggert es eine SMTP-E-Mail mit dem neuesten Graphen als Anhang.
Dieses Setup bietet eine kostengünstige Open-Source-Lösung für kontinuierliches Umweltmonitoring, die sowohl sofortige Alerts als auch historische Datenvisualisierung gewährleistet.
Herstellungsprozess
- Integriertes QR-, RFID- und Temperatur-Verifikations-Zugangskontrollsystem
- Mehrere DS18B20 1-Wire Sensoren an Raspberry Pi anschließen für präzises Temperaturmonitoring
- Raumeffizient Temperaturen mit Raspberry Pi und Nagios überwachen
- Temperatur mit DS18B20 am Raspberry Pi 2 auslesen
- Heim-Temperatur- & Feuchtigkeitsmonitor mit Raspberry Pi & Web-Dashboard – Echtzeit-Fernüberwachung
- Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
- Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Home Energy Centre: Solar PV, Thermische Panels & Raumtemperaturen mit Raspberry Pi & Moteino überwachen
- Nahtlose Temperatur- & Feuchtigkeitsüberwachung am Raspberry Pi mit EzTemp