0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于STM32F103ZET6单片机+AM2302(DHT22)数字温湿度模块的列车车厢环境实时监测控制系统设计方案

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

来源: 21ic
2021-11-25
类别:工业控制
eye 29
文章创建人 拍明

原标题:基于单片机的列车车厢环境实时监测控制系统设计方案

image.png

基于STM32F103ZET6与AM2302的列车车厢环境实时监测控制系统设计方案

一、系统设计背景与需求分析

列车车厢作为密闭公共空间,其环境质量直接影响乘客舒适度与健康安全。当前铁路运输面临以下问题:

  1. 环境参数波动大:乘客密度高、通风不足易导致CO₂浓度超标,湿度失衡易滋生细菌;

  2. 控制手段落后:传统空调依赖人工经验调节,存在滞后性与能耗浪费;

  3. 监测手段缺失:缺乏实时数据采集与反馈机制,难以实现精准调控。

本系统以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. 关键电路设计
  1. AM2302接口电路

    • SDA数据线通过5.1kΩ上拉电阻接3.3V;

    • 电源端并联0.1μF去耦电容,抑制高频噪声。

  2. 光敏电阻分压电路

    • 光敏电阻与10kΩ固定电阻串联,分压点接ADC0通道;

    • 输出电压Vout = 3.3V × (R_photo / (R_photo + 10kΩ))。

  3. MQ-2信号调理电路

    • 模拟输出端接RC低通滤波器(R=10kΩ,C=0.1μF);

    • 滤波后信号接ADC1通道,避免高频干扰。

  4. 继电器驱动电路

    • 三极管(S8050)驱动继电器线圈,基极接STM32 GPIO口;

    • 续流二极管(1N4148)抑制反向电动势。

  5. TFT-LCD接口电路

    • 使用FSMC总线驱动,地址线A0-A18接LCD的D0-D17;

    • 读写信号线(RD、WR)直接连接,片选信号(CS)接PE7。

四、系统软件设计

1. 主程序流程
  1. 系统初始化

    • 配置时钟(HSE 8MHz→72MHz);

    • 初始化GPIO、ADC、FSMC、USART;

    • 启动定时器(TIM2,周期2秒)。

  2. 数据采集

    • 定时器中断触发ADC转换,读取光敏电阻与MQ-2电压;

    • 通过GPIO口轮询AM2302,获取温湿度数据;

    • 通过CAN总线接收CO₂浓度数据(假设外接CO₂传感器)。

  3. 数据处理

    • 对ADC值进行滑动平均滤波(窗口大小5);

    • 温湿度数据校验失败时,自动重传3次;

    • 计算热舒适指数(PMV):

    其中,$ t_a $为空气温度,$ P_a $为水蒸气分压,$ f_{cl} $为服装热阻,$ h_c $为对流换热系数。

4. 控制输出

  • 温湿度超阈值时,通过继电器切换空调模式;

  • 光照强度<50Lux时,调暗显示屏背光;

  • 烟雾浓度>500ppm时,触发声光报警。

  1. 数据显示

    • 在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. 测试项目与结果
  1. 温湿度精度测试

    • 在25℃/50%RH环境下,连续测量100次,AM2302平均值24.9℃/49.8%RH,误差≤0.5℃/2%RH;

    • 在-10℃/30%RH环境下,AM2302仍能正常工作,响应时间<3秒。

  2. 光照响应测试

    • 光强从10Lux突变至1000Lux时,显示屏亮度调整延迟<50ms;

    • 夜间模式(<50Lux)下,功耗降低40%。

  3. 烟雾报警测试

    • 烟雾浓度>500ppm时,继电器在0.8秒内触发蜂鸣器;

    • 误报率<0.1%(排除灰尘干扰后)。

  4. 长期稳定性测试

    • 连续运行72小时,系统无死机,数据丢失率<0.01%。

六、结论与展望

本系统以STM32F103ZET6为核心,集成AM2302等高精度传感器,实现了列车车厢环境的实时监测与智能调控。测试结果表明,系统在精度、响应速度与稳定性方面均满足设计要求。未来可扩展以下功能:

  1. 无线通信:集成LoRa模块,实现数据远程上传;

  2. AI预测:基于历史数据训练LSTM模型,提前预警环境异常;

  3. 节能优化:采用MPPT算法,利用列车制动能量为系统供电。

通过本方案,可显著提升列车环境舒适度与安全性,为智慧铁路建设提供技术支撑。

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告