Raspberry Pi-gebaseerde kamertemperatuurbewaking met Gnuplot-grafieken en e-mailalerts
In een high-performance computing-omgeving is het handhaven van een optimale omgevingstemperatuur cruciaal. De volgende handleiding legt uit hoe u een betrouwbare, realtime temperatuurbewakingssysteem bouwt met een Raspberry Pi, een USB-temperatuur/vochtigheidssensor, Gnuplot voor visuele analyse en Gmail voor geautomatiseerde alerts.
Stap 1: Hardware-opstelling
Sluit de USB-temperatuur/vochtigheidssensor direct aan op een USB-poort van de Pi. Voor lage-vermogen sensoren is de native 5 V-voorziening van de Pi voldoende; voor hogere-vermogen apparaten gebruik een gevoede hub om overbelasting van de Pi te voorkomen.
De sensor stuurt een seriële string zoals:
temperature=20.9°C humidity=62.7% dewpoint=13.0°C
Een Python-script leest deze data elke vijf minuten, timestamp't het en schrijft drie rolling logs: daily.dat, 24hour.dat en 48hour.dat. Deze bestanden voeden Gnuplot om up-to-date visualisaties te genereren.
Stap 2: Software – Webserver & Afhankelijkheden
Installeer Apache om het monitoringsdashboard te hosten:
sudo apt-get install apache2
Installeer de vereiste Python-pakketten:
sudo apt-get install python-serial python-gnuplot
Plaats de dashboard-HTML-bestanden in /var/www/html. De pagina haalt de laatste PNG-afbeeldingen (daily.png, 24hour.png, 48hour.png) op die gegenereerd worden door Gnuplot.
Stap 3: E-mailalertconfiguratie
Maak een toegewijd Gmail-account voor alerts (elke SMTP-capable server werkt met de juiste poortinstellingen). In het Python-script, configureer de SMTP-details:
from_address = "[email protected]" username = "[email protected]" password = "your_email_password"
Definieer ontvangers:
to_addresses = ["recipient1@example.com", "recipient2@example.com"]
Wanneer de temperatuur een vooraf gedefinieerde drempel overschrijdt, stuurt het script een e-mail met de relevante Gnuplot-afbeelding bijgevoegd, zodat ontvangers direct de ernst zien.
Stap 4: Seriële parsing & Datalogging
Configureer de seriële poort om te matchen met de sensor's 9600 bps, 8-N-1 formaat:
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
Parse de binnenkomende string door het "temperature"-trefwoord te lokaliseren en de numerieke waarde te extraheren. Sla de getimestampte meting op in de drie logbestanden:
from time import strftime, localtime
timestamp = strftime("%d%b%Y %H:%M:%S", localtime())
# Voeg toe aan bestanden
Stap 5: Gnuplot-grafiekgeneratie
Gebruik Gnuplot om de logbestanden om te zetten in PNG-afbeeldingen. Voorbeeldscript voor de dagelijkse grafiek:
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')
Herhaal met geschikte bestandsnamen voor de 24-uur en 48-uur-weergaven.
Stap 6: Dashboard & Alert-logica
De Apache-geserveerde HTML-pagina vernieuwt de PNG-afbeeldingen elke minuut, wat een live visuele snapshot biedt. Het Python-script controleert de laatste temperatuur; als deze de door de gebruiker gedefinieerde limiet overschrijdt, activeert het een SMTP-e-mail met de laatste grafiek bijgevoegd.
Deze opstelling biedt een laagkost, open-source oplossing voor continue omgevingsmonitoring, waarborgend zowel directe alerts als historische datavisualisatie.
Productieproces
- Geïntegreerde QR, RFID en Temperatuurverificatie Toegangscontrolesysteem
- Meerdere DS18B20 1-Wire Sensoren Aan Een Raspberry Pi Koppelen Voor Nauwkeurige Temperatuurmonitoring
- Efficiënt Kamertemperaturen Monitoren Met Raspberry Pi En Nagios
- Hoe Temperatuur Te Lezen Met Een DS18B20 Op Raspberry Pi 2
- Thuis Temperatuur & Vochtigheid Monitor Met Raspberry Pi & Web Dashboard – Real-Time Remote Tracking
- Professionele temperatuurbewaking met Raspberry Pi en DS18B20
- Temperatuurmeting op Raspberry Pi met Maxim 1-Wire sensoren en DS2482 I2C-brug
- Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
- Home Energy Centre: Zonnepanelen, thermische panelen en kamertemperaturen monitoren met Raspberry Pi en Moteino
- Naadloze temperatuur- en vochtigheidsbewaking op Raspberry Pi met EzTemp
- Accurate temperatuurbewaking in een serverkast met Raspberry Pi