STM32环境监测系统在汽车修理厂的应用
基于STM32的汽车修理厂环境监测系统设计与实现
1. 项目概述
1.1 系统背景
汽车修理厂作为车辆维修保养的重要场所,其工作环境直接影响工作人员健康与作业安全。焊接、喷漆、打磨等工序产生的有害气体、烟尘和高温高湿环境,长期暴露其中易引发职业病和安全事故。传统人工监测方式存在响应滞后、自动化程度低等问题,难以满足现代修理厂对高效环境管理的需求。
1.2 系统架构
本系统采用STM32F103RCT6作为主控芯片,构建了一套集环境监测、自动控制和远程管理于一体的智能系统。系统架构分为三个层次:
- 感知层:包含温湿度、VOCs、PM2.5、烟雾和火焰传感器
- 控制层:STM32主控芯片实现数据处理和设备联动控制
- 应用层:本地LCD显示、云端数据同步和远程APP控制
2. 硬件设计
2.1 主控模块
系统核心采用STM32F103RCT6微控制器,主要基于以下工程考虑:
- 72MHz主频满足多传感器数据采集与处理需求
- 丰富的外设接口(ADC、SPI、UART等)便于连接各类传感器
- 低功耗特性适合24小时连续运行场景
- 充足的GPIO资源可扩展多个继电器控制通道
2.2 传感器模块
2.2.1 环境参数监测
| 传感器 | 型号 | 接口类型 | 测量范围 | 精度 |
|---|---|---|---|---|
| 温湿度 | DHT11 | 单总线 | 温度0-50℃,湿度20-90%RH | ±1℃,±1%RH |
| VOCs | 模拟输出 | ADC采集 | 0-5V对应0-1000ppm | ±10% |
| PM2.5 | 激光散射式 | UART | 0-1000μg/m³ | ±10% |
| 烟雾 | MQ2 | ADC采集 | 0-5V对应0-10000ppm | ±15% |
2.2.2 安全监测
火焰传感器采用红外检测原理,输出数字信号(高电平表示检测到火焰),响应时间<1秒,检测距离0.8-1.5米。
2.3 执行机构
系统通过继电器模块控制以下设备:
- 通风系统:5V直流风扇,用于温度调节和烟尘排放
- 空气净化:等离子发生器,处理VOCs超标情况
- 湿度调节:超声波加湿器,用于PM2.5沉降
- 安全防护:12V抽水泵,用于紧急灭火
继电器驱动电路采用光耦隔离设计,防止大功率设备对控制电路的干扰。
2.4 人机交互
1.44寸SPI接口LCD显示屏实时显示环境参数和系统状态,4个机械按键用于阈值设置和显示页面切换。
2.5 通信模块
ESP8266 WiFi模块配置为STA模式,通过UART与STM32通信,实现以下功能:
- 通过MQTT协议上传数据至华为云IoT平台
- 接收云端下发的控制指令
- 维持长连接确保数据实时同步
3. 软件设计
3.1 主程序流程
void main() { hardware_init(); // 硬件初始化 wifi_connect(); // 连接WiFi mqtt_setup(); // MQTT配置 while(1) { read_sensors(); // 采集传感器数据 process_data(); // 数据处理 auto_control(); // 自动控制逻辑 update_display();// 刷新显示 upload_cloud(); // 数据上云 handle_uart(); // 处理串口通信 } }3.2 关键算法实现
3.2.1 自动控制逻辑
系统采用阈值比较法实现环境参数自动调节:
void auto_control() { if(temp > temp_threshold) relay_fan = ON; if(vocs > vocs_threshold) relay_plasma = ON; if(pm25 > pm25_threshold) { relay_fan = ON; relay_humidifier = ON; } if(flame_detected && smoke > smoke_threshold) { buzzer = ON; relay_pump = ON; } }3.2.2 数据滤波处理
针对传感器数据波动问题,采用滑动平均滤波算法:
#define FILTER_SIZE 5 float moving_average(float new_val) { static float buffer[FILTER_SIZE] = {0}; static int index = 0; static float sum = 0; sum -= buffer[index]; buffer[index] = new_val; sum += new_val; index = (index + 1) % FILTER_SIZE; return sum / FILTER_SIZE; }3.3 通信协议设计
系统采用自定义串口协议与ESP8266通信:
| 字段 | 长度 | 说明 |
|---|---|---|
| 帧头 | 2字节 | 固定为0xAA55 |
| 命令 | 1字节 | 0x01上传数据,0x02控制指令 |
| 数据 | N字节 | JSON格式数据负载 |
| CRC | 2字节 | CRC16校验 |
4. 系统功能实现
4.1 环境监测功能
系统实时采集以下环境参数:
- 温度:每2秒更新一次
- 湿度:每2秒更新一次
- VOCs浓度:每5秒更新一次
- PM2.5浓度:每10秒更新一次
- 烟雾浓度:每5秒更新一次
- 火焰状态:实时监测
4.2 自动控制功能
系统预设多级联动控制策略:
初级响应:单一参数超标触发对应设备
- 温度高 → 开启风扇
- VOCs高 → 开启等离子发生器
中级响应:复合参数触发组合设备
- PM2.5高 → 同时开启风扇和加湿器
紧急响应:安全相关参数触发报警和应急设备
- 火焰+烟雾 → 蜂鸣器报警+启动水泵
4.3 远程监控功能
基于Qt框架开发的跨平台应用实现:
- Android手机APP
- Windows桌面程序
主要功能包括:
- 实时数据显示曲线
- 设备远程控制
- 历史数据查询
- 阈值参数设置
5. 系统测试与优化
5.1 性能测试
在模拟修理厂环境中进行72小时连续测试:
| 测试项目 | 指标 | 结果 |
|---|---|---|
| 温度响应 | 从25℃升至阈值30℃ | 风扇2秒内启动 |
| VOCs处理 | 从200ppm升至500ppm | 等离子发生器5秒内启动 |
| 火焰检测 | 明火出现 | 蜂鸣器1秒内报警 |
| 数据传输 | 云端延迟 | <3秒 |
5.2 抗干扰优化
针对修理厂电磁环境复杂的特点,采取以下措施:
- 传感器信号线增加磁环滤波
- 继电器控制线采用双绞线
- 电源输入端增加π型滤波电路
- 软件增加看门狗定时器
6. BOM清单与成本分析
6.1 关键器件清单
| 器件 | 型号 | 数量 | 单价(元) |
|---|---|---|---|
| 主控芯片 | STM32F103RCT6 | 1 | 15.00 |
| WiFi模块 | ESP8266 | 1 | 12.00 |
| 温湿度 | DHT11 | 1 | 8.00 |
| VOCs传感器 | 模拟输出 | 1 | 25.00 |
| PM2.5传感器 | 激光式 | 1 | 35.00 |
| 烟雾传感器 | MQ2 | 1 | 10.00 |
| 火焰传感器 | 红外 | 1 | 5.00 |
| LCD屏 | 1.44寸SPI | 1 | 18.00 |
| 继电器模块 | 4路 | 1 | 10.00 |
6.2 系统成本
- 硬件总成本:约150元
- 软件开发成本:基于开源组件,主要为定制开发工时
- 部署成本:无需专业安装,普通电工可完成
7. 应用效果
实际部署测试表明,系统可有效改善修理厂工作环境:
- 温度波动减少40%
- VOCs浓度降低60%
- PM2.5浓度下降55%
- 安全事件响应时间缩短至3秒内
