树莓派室温监测系统:Gnuplot 绘图与邮件报警
高性能计算环境中维持最佳环境温度至关重要。本指南讲解如何用树莓派、USB 温湿度传感器、Gnuplot 可视化分析、Gmail 自动报警构建可靠实时温度监测系统。
步骤 1:硬件连接
USB 温湿度传感器直插树莓派 USB 口。低功耗传感器树莓派原生 5V 供电即可;高功耗设备建议用带电源集线器避免过载。
传感器持续输出串口字符串,格式如:
temperature=20.9°C humidity=62.7% dewpoint=13.0°C
Python 脚本每 5 分钟读取一次,加时间戳写入三个滚动日志:daily.dat、24hour.dat、48hour.dat。这些文件供 Gnuplot 生成最新图表。
步骤 2:软件 – Web 服务器与依赖
安装 Apache 托管监控面板:
sudo apt-get install apache2
安装 Python 依赖:
sudo apt-get install python-serial python-gnuplot
将面板 HTML 文件放入 /var/www/html。页面每分钟刷新 Gnuplot 生成的最新 PNG 图片(daily.png、24hour.png、48hour.png)。
步骤 3:邮件报警配置
创建专用 Gmail 账号发报警(任何支持 SMTP 的服务器配合正确端口均可)。Python 脚本配置 SMTP:
from_address = "[email protected]" username = "[email protected]" password = "your_email_password"
定义收件人:
to_addresses = ["recipient1@example.com", "recipient2@example.com"]
温度超阈值时,脚本发送邮件并附带最新 Gnuplot 图片,收件人即时看到严重程度。
步骤 4:串口解析与数据记录
配置串口匹配传感器 9600 bps、8-N-1 格式:
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
解析输入字符串:定位 “temperature” 关键字提取数值。带时间戳写入三个日志文件:
from time import strftime, localtime
timestamp = strftime("%d%b%Y %H:%M:%S", localtime())
# 追加写入文件
步骤 5:Gnuplot 图表生成
用 Gnuplot 将日志转 PNG。每日图表示例脚本:
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')
24 小时、48 小时视图同理,替换文件名即可。
步骤 6:面板与报警逻辑
Apache 托管的 HTML 页面每分钟刷新 PNG,提供实时视觉快照。Python 脚本检查最新温度;超出用户阈值则触发 SMTP 邮件并附带最新图表。
此方案低成本、开源,实现持续环境监测,兼具即时报警与历史数据可视化。
制造工艺
- 集成二维码、RFID与体温验证的门禁控制系统
- 树莓派多路DS18B20 1-Wire温度监测:接线与编程全指南
- 树莓派+Nagios高效监控机房温度
- 树莓派2上使用DS18B20读取温度完整指南
- 树莓派家庭温湿度监测系统:Web仪表盘实时远程追踪
- 树莓派专业温度监测:基于 DS18B20 传感器的完整指南
- 树莓派结合 Maxim 1-Wire 传感器与 DS2482 I2C 桥接器的多点温度测量
- 树莓派与 Python 构建远程温度传感器:分步实战指南
- 家庭能源中心:树莓派与 Moteino 监测光伏、光热与室温
- 树莓派配合 EzTemp 实现无缝温湿度监测
- 树莓派精准监测机柜温度:DS18B20 多点部署实战
- DIY 家酿温控系统:Arduino 监测与调节发酵温度