本项目是一个基于 Raspberry Pi 的桌面级气体环境监控软件,通过 Modbus RTU 协议 从最多 6 台下位机传感器设备采集数据,支持 O₂、CO₂、CH₄、H₂、C₂H₄、CH₃OH 等气体的浓度、温度、湿度及设备状态的实时显示与报警。系统面向植物生长环境等科研场景设计,具备良好的可配置性与工程规范。
- 多通道气体监控:轮询地址 1–6 的 Modbus 设备,每台对应一种气体类型。
- 实时可视化:
- 使用 Matplotlib 嵌入 PyQt5 界面,动态绘制各气体浓度变化曲线;
- 独立面板显示当前温度(℃)与湿度(%RH),数值突出展示。
- 可配置报警机制:
- 支持为每种气体单独设置浓度上下限阈值;
- 实时判断并显示“正常”或“超限”状态。
- 协议深度解析:
- 从寄存器规则字中提取单位(如 ppm、%VOL、mg/m³)和小数位数;
- 解码状态码(如预热、故障、通信异常等),提升系统鲁棒性。
- 稳定架构设计:
- 采用 QThread 多线程模型,将串口通信与 GUI 渲染解耦,避免界面卡顿;
- 集成 logging 模块,记录通信日志至
modbus_polling.log,便于调试。
-
安装依赖:
pip install pyqt5 matplotlib pymodbus
-
连接 Modbus 从机设备至串口(默认使用
/dev/ttyS0或 Windows 下的COM3,可在modbus_comm.py中修改)。 -
运行主程序:
python main.py
-
在界面上调整采样间隔(默认 2 秒)和各气体报警阈值。
├── main.py # 主窗口与信号槽连接
├── modbus_comm.py # Modbus 轮询线程与协议解析逻辑
├── plot_widget.py # 自定义绘图控件(含气体/温湿度面板)
└── modbus_polling.log # 运行日志(自动生成)
