项目定位

PipeMonitor 是一套围绕 STM32H562RT-Thread 完整版 的边缘管道状态监测系统。系统作为 Modbus RTU 主站接入传感器网络,能够高频轮询底层管路运行状态,实现数据采集、LCD 实时显示与本地持久化存储。

整套系统在没有上位机和网络的情况下也可以独立工作:现场 LCD 直接显示压力/温度/流量实时值,本地 LittleFS 文件系统按 CSV 格式落盘历史数据,方便事后离线导出与溯源。

版本演进

仓库里保留了几个历史版本作为对照:

  • STM32F103 —— 早期裸机/前后台架构
  • STM32F407 —— 引入更多外设支持
  • STM32H562 —— 升级到 H 系列性能与平台
  • STM32H562_RT-Thread_nano —— 演进到轻量级 RTOS
  • STM32H562_RT-Thread —— 当前主线版本

早期版本只做历史多版本备份,后续开发与维护只保留主线 STM32H562_RT-Thread

接入的传感器矩阵

目前系统原生支持轮询的传感器:

传感器来源采集量
PXW 系列一体式压力温度变送器Modbus 从站实时压力、温度
超声波流量计Modbus 从站瞬时流量、流速、累积总流量
PT100 测温模块(4 通道 / 5 通道)Modbus 从站多节点多路温度

每一类传感器都在 applications/PipeMonitor/ 下有自己的测点映射文件,例如 Flowmeter.*PXW_Pressure.*PT100_4.*PT100_5.*

架构与线程模型

RT-Thread 提供了多线程分离的调度架构。三大类线程互相解耦,通过互斥锁与消息队列交互,避免串口阻塞导致 UI 卡顿:

  • 采集线程:负责 Modbus 主站轮询,按测点表分配采集间隔,处理超时与异常节点
  • 显示线程:负责 LCD 渲染,仅在数值变化时局部重绘动态行
  • 存储线程:负责 LittleFS 上的 CSV 写入,定时刷盘并 Rotate 老文件

目录结构

业务代码集中在 applications/,BSP 与 RT-Thread 内核保持标准布局:

STM32H562_RT-Thread/
├── applications/
│   ├── main.c
│   └── PipeMonitor/
│       ├── Flowmeter.*
│       ├── PXW_Pressure.*
│       ├── PT100_4/5.*
│       ├── Modbus_Master.*
│       ├── Modbus_Service.*
│       ├── nanomodbus.*
│       └── LCD/
├── board/
├── packages/
├── rt-thread/
└── rtconfig.h

开发环境

  • 主控:STM32H562
  • 操作系统:RT-Thread 完整版
  • 工具链:Keil MDK (ARM Compiler 6) / GCC
  • 外设:RS485/UART、FSMC/SPI LCD、Flash(用于 LittleFS)

可以通过 RT-Thread ENV 工具用 scons 重新构建依赖树,也可以直接打开 project.uvprojx 用 MDK 编译下载。

后续阅读