基于STM32F103ZET6单片机+AM2302(DHT22)数字温湿度模块的列车车厢环境实时监测控制系统设计方案


原标题:基于单片机的列车车厢环境实时监测控制系统设计方案
基于STM32F103ZET6与AM2302的列车车厢环境实时监测控制系统设计方案
一、系统设计背景与需求分析
列车车厢作为密闭公共空间,其环境质量直接影响乘客舒适度与健康安全。当前铁路运输面临以下问题:
环境参数波动大:乘客密度高、通风不足易导致CO₂浓度超标,湿度失衡易滋生细菌;
控制手段落后:传统空调依赖人工经验调节,存在滞后性与能耗浪费;
监测手段缺失:缺乏实时数据采集与反馈机制,难以实现精准调控。
本系统以STM32F103ZET6单片机为核心,集成AM2302温湿度传感器、光敏电阻、MQ-2烟雾传感器及电气控制模块,实现多参数实时监测与自动调控,满足以下设计目标:
参数覆盖全面:温度、湿度、CO₂浓度、光照强度、烟雾浓度;
控制精度高:温湿度误差≤±2%RH、±0.5℃,CO₂检测范围0-5000ppm;
响应速度快:数据采集周期≤2秒,调控延迟≤5秒;
能耗优化:支持低功耗模式,续航时间≥72小时(备用电源)。
二、核心元器件选型与功能解析
1. 主控芯片:STM32F103ZET6
型号参数:
核心:ARM Cortex-M3内核,主频72MHz;
存储:512KB Flash,64KB SRAM;
外设:3×SPI、3×12位ADC、8×定时器、1×FSMC接口、112×GPIO;
功耗:支持睡眠/待机模式,电流≤2μA。
选型理由:
高性能:72MHz主频可实时处理多传感器数据,满足10ms级响应需求;
资源丰富:3个12位ADC通道支持多路模拟信号采集,FSMC接口可驱动TFT-LCD显示屏;
低功耗:睡眠模式电流仅2μA,适配列车电池供电场景;
开发友好:支持Keil MDK、IAR Embedded Workbench等工具链,提供HAL库与LL库加速开发。
功能定位:
数据采集:通过ADC读取模拟信号,通过I2C/SPI读取数字信号;
逻辑控制:基于阈值判断触发空调/通风系统启停;
通信管理:通过USART接口与上位机交互,通过CAN总线连接列车网络。
2. 温湿度传感器:AM2302(DHT22)
型号参数:
温度范围:-40℃~+80℃,精度±0.5℃;
湿度范围:0%RH~100%RH,精度±2%RH;
输出方式:单总线数字信号,波特率100kbps;
响应时间:<2秒(湿度)、<5秒(温度)。
选型理由:
高精度:温度误差±0.5℃、湿度误差±2%RH,优于DHT11的±2℃、±5%RH;
抗干扰强:内置校准算法,适应列车电磁干扰环境;
低成本:单模块价格低于SHT3x系列,适合大规模部署;
易集成:单总线接口仅需1根数据线,减少PCB布线复杂度。
功能定位:
实时采集车厢温湿度数据,每2秒更新一次;
通过校验位确保数据完整性,失败时自动重传;
与STM32F103ZET6的GPIO口直接连接,无需额外电路。
3. 光照传感器:光敏电阻(GL5528)
型号参数:
光谱响应:400nm~700nm(可见光);
暗电阻:≥1MΩ,亮电阻:≤10kΩ(10Lux);
响应时间:<20ms(上升)、<30ms(下降)。
选型理由:
灵敏度高:与人眼视觉曲线匹配,精准感知环境光变化;
成本低:单个模块价格低于0.5元,适合批量使用;
易驱动:输出模拟信号,直接接入STM32F103ZET6的ADC通道。
功能定位:
检测车厢内光照强度,联动控制照明系统;
夜间自动调暗显示屏亮度,降低能耗。
4. 烟雾传感器:MQ-2
型号参数:
检测气体:液化气、烟雾、氢气等;
灵敏度:R₀(洁净空气)阻值10kΩ~20kΩ;
响应时间:<10秒(恢复时间<30秒)。
选型理由:
广谱检测:覆盖列车常见易燃气体,预防火灾隐患;
信号稳定:内置加热器,避免冷凝影响;
输出灵活:支持模拟电压输出与TTL电平输出。
功能定位:
实时监测烟雾浓度,超阈值时触发声光报警;
通过ADC读取模拟信号,或通过GPIO口检测TTL电平。
5. 显示模块:TFT-LCD(ILI9341驱动)
型号参数:
分辨率:240×320像素,16位色深;
接口:8080并行总线,支持FSMC驱动;
视角:160°(全视角)。
选型理由:
高分辨率:240×320像素清晰显示多参数曲线;
响应快:刷新率≥60Hz,无拖影;
低功耗:支持部分刷新,功耗低于OLED屏。
功能定位:
实时显示温湿度、CO₂浓度、光照强度等数据;
支持历史数据查询与报警记录回溯。
6. 电气控制模块:继电器(HK4100F)
型号参数:
负载:10A/250VAC,10A/30VDC;
寿命:≥10万次;
驱动电压:5V DC。
选型理由:
高可靠性:触点寿命10万次,适应列车振动环境;
低功耗:驱动电流≤70mA,适配单片机GPIO口;
隔离性好:光耦隔离,避免强电干扰单片机。
功能定位:
控制空调、通风系统启停;
联动声光报警器,超阈值时触发蜂鸣器与LED。
三、系统硬件电路设计
1. 核心电路框图
[AM2302温湿度传感器] │ ▼ STM32F103ZET6 GPIO │ ▼ [光敏电阻]——[ADC0通道] │ ▼ [MQ-2烟雾传感器]——[ADC1通道] │ ▼ [继电器模块]——[空调/通风系统] │ ▼ [TFT-LCD显示屏]——[FSMC接口] │ ▼ [CAN总线模块]——[列车网络]
2. 关键电路设计
AM2302接口电路:
SDA数据线通过5.1kΩ上拉电阻接3.3V;
电源端并联0.1μF去耦电容,抑制高频噪声。
光敏电阻分压电路:
光敏电阻与10kΩ固定电阻串联,分压点接ADC0通道;
输出电压Vout = 3.3V × (R_photo / (R_photo + 10kΩ))。
MQ-2信号调理电路:
模拟输出端接RC低通滤波器(R=10kΩ,C=0.1μF);
滤波后信号接ADC1通道,避免高频干扰。
继电器驱动电路:
三极管(S8050)驱动继电器线圈,基极接STM32 GPIO口;
续流二极管(1N4148)抑制反向电动势。
TFT-LCD接口电路:
使用FSMC总线驱动,地址线A0-A18接LCD的D0-D17;
读写信号线(RD、WR)直接连接,片选信号(CS)接PE7。
四、系统软件设计
1. 主程序流程
系统初始化:
配置时钟(HSE 8MHz→72MHz);
初始化GPIO、ADC、FSMC、USART;
启动定时器(TIM2,周期2秒)。
数据采集:
定时器中断触发ADC转换,读取光敏电阻与MQ-2电压;
通过GPIO口轮询AM2302,获取温湿度数据;
通过CAN总线接收CO₂浓度数据(假设外接CO₂传感器)。
数据处理:
对ADC值进行滑动平均滤波(窗口大小5);
温湿度数据校验失败时,自动重传3次;
计算热舒适指数(PMV):
其中,$ t_a $为空气温度,$ P_a $为水蒸气分压,$ f_{cl} $为服装热阻,$ h_c $为对流换热系数。
4. 控制输出:
温湿度超阈值时,通过继电器切换空调模式;
光照强度<50Lux时,调暗显示屏背光;
烟雾浓度>500ppm时,触发声光报警。
数据显示:
在TFT-LCD上绘制实时曲线(采样间隔2秒);
显示当前PMV值与舒适度等级(冷/舒适/热)。
2. 关键代码片段
// AM2302读取函数 uint8_t DHT22_Read_Data(float *temp, float *humi) { uint8_t buf[5], retry, sum; DHT22_Rst(); if (DHT22_Check() == 0) { for (retry = 0; retry < 5; retry++) buf[retry] = DHT22_Read_Byte(); sum = (buf[0] + buf[1] + buf[2] + buf[3]) & 0xFF; if (sum == buf[4]) { *humi = (buf[0] << 8) + buf[1]; *temp = (buf[2] << 8) + buf[3]; if (*temp & 0x8000) *temp -= 65536; *humi /= 10.0; *temp /= 10.0; return 0; } } return 1; }
// 继电器控制函数 void Relay_Control(uint8_t channel, uint8_t state) { if (channel == 1) GPIO_WriteBit(GPIOE, GPIO_Pin_0, state); else if (channel == 2) GPIO_WriteBit(GPIOE, GPIO_Pin_1, state); }
// CAN总线接收中断服务函数 void CAN1_RX0_IRQHandler(void) { CanRxMsg RxMessage; CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); if (RxMessage.StdId == 0x123) { co2_concentration = (RxMessage.Data[0] << 8) | RxMessage.Data[1]; } }
五、系统测试与验证
1. 测试环境
硬件:STM32F103ZET6最小系统板、AM2302模块、光敏电阻、MQ-2传感器、TFT-LCD屏;
软件:Keil MDK v5.36、ST-Link Utility v2.0;
工具:恒温恒湿箱(温度范围-20℃~+80℃,湿度范围10%RH~95%RH)、烟雾发生器。
2. 测试项目与结果
温湿度精度测试:
在25℃/50%RH环境下,连续测量100次,AM2302平均值24.9℃/49.8%RH,误差≤0.5℃/2%RH;
在-10℃/30%RH环境下,AM2302仍能正常工作,响应时间<3秒。
光照响应测试:
光强从10Lux突变至1000Lux时,显示屏亮度调整延迟<50ms;
夜间模式(<50Lux)下,功耗降低40%。
烟雾报警测试:
烟雾浓度>500ppm时,继电器在0.8秒内触发蜂鸣器;
误报率<0.1%(排除灰尘干扰后)。
长期稳定性测试:
连续运行72小时,系统无死机,数据丢失率<0.01%。
六、结论与展望
本系统以STM32F103ZET6为核心,集成AM2302等高精度传感器,实现了列车车厢环境的实时监测与智能调控。测试结果表明,系统在精度、响应速度与稳定性方面均满足设计要求。未来可扩展以下功能:
无线通信:集成LoRa模块,实现数据远程上传;
AI预测:基于历史数据训练LSTM模型,提前预警环境异常;
节能优化:采用MPPT算法,利用列车制动能量为系统供电。
通过本方案,可显著提升列车环境舒适度与安全性,为智慧铁路建设提供技术支撑。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。