本项目基于 Qt 和 STM32 设计了一套智能温控风扇监控系统,实现了温度采集、风扇状态监控、串口双向通信、实时曲线绘制、阈值报警、CSV 数据保存和参数配置等功能。
STM32 端负责采集温湿度数据并控制风扇运行状态,Qt 上位机负责串口通信、数据解析、界面显示、曲线绘制和控制命令下发。
- C++
- Qt Widgets
- QSerialPort
- QChart
- STM32
- UART
- PWM
- CSV 数据保存
- 串口扫描、打开和关闭
- STM32 数据实时接收
- 自定义协议解析
- 温度、湿度、风扇状态、转速和模式显示
- 实时温度曲线绘制
- 自动模式和手动模式切换
- 风扇开关控制
- 风扇转速设置
- 温度阈值报警
- CSV 数据保存
- 接收日志显示和自动滚动
TEMP:36.5,HUM:45,FAN:ON,SPEED:80,MODE:AUTO
MODE_AUTO
MODE_MANUAL
FAN_ON
FAN_OFF
SET_SPEED:70
SET_TEMP:38
- 使用 QSerialPort 实现 Qt 与 STM32 的串口双向通信
- 设计自定义通信协议,实现设备状态解析和控制命令下发
- 使用缓冲区处理串口半包、粘包问题
- 使用 QChart 实现实时温度曲线动态刷新
- 支持温度阈值报警,超温时界面高亮提醒
- 支持 CSV 数据保存,方便后续数据分析
- 项目采用模块化设计,降低代码耦合度,方便后期维护和扩展
SmartFanMonitor
├── main.cpp
├── mainwindow.h
├── mainwindow.cpp
├── serialmanager.h
├── serialmanager.cpp
├── protocolparser.h
├── protocolparser.cpp
├── chartmanager.h
├── chartmanager.cpp
├── fandata.h
├── mainwindow.ui
├── SmartFanMonitor.pro
└── README.md
软件运行后可以实时显示 STM32 上传的温度、湿度、风扇状态、转速和工作模式,并根据温度数据动态绘制曲线。
当温度超过设定阈值时,界面会显示报警状态,并通过状态栏提醒用户当前温度过高。
通过本项目,熟悉了 Qt 上位机开发流程,掌握了串口通信、协议解析、实时数据展示、曲线绘制、CSV 数据保存和模块化工程设计等内容。
该项目模拟了实际嵌入式设备监控系统的开发流程,具备一定的工程实践价值。