1. 项目概述与核心需求
去年梅雨季节,我衣柜里的真丝衬衫集体发霉的经历,直接促成了这个智能衣柜系统的开发。传统衣柜在环境控制方面的缺失,让衣物养护成了难题。这个基于STM32的解决方案,通过多传感器协同和智能控制逻辑,实现了衣柜环境的闭环管理。
系统采用模块化设计架构(见图1),核心是STM32F103C8T6最小系统板,搭配DHT11温湿度传感器、0.96寸OLED显示屏、ESP8266 WiFi模块和继电器驱动电路。实测表明,在密闭1立方米的衣柜空间内,系统可将湿度稳定控制在45%-55%RH的理想范围,温度波动不超过±1℃。
关键设计指标:
- 温控精度:±1℃(10-40℃范围)
- 湿控精度:±5%RH(20-90%RH范围)
- 响应延迟:<3秒(从超标到执行动作)
- 待机功耗:<0.5W(无负载状态)
2. 硬件设计详解
2.1 核心控制器选型
对比STM32F1系列多个型号后,最终选择Cortex-M3内核的STM32F103C8T6,主要考量:
- 72MHz主频足够处理传感器数据和控制逻辑
- 64KB Flash+20KB RAM满足程序存储需求
- 内置3个USART(WiFi、调试、备用)
- 价格控制在25元以内(采购量100+时)
避坑提示:早期测试用STM8S003F3发现RAM不足导致WiFi频繁断连,建议至少选择20KB以上RAM的型号。
2.2 传感器模块实现
温湿度检测采用DHT11+DS18B20双传感器方案:
- DHT11负责湿度监测(精度±5%RH)
- DS18B20补充温度检测(精度±0.5℃)
- 双传感器数据加权融合算法:
c复制float final_temp = dht11_temp * 0.3 + ds18b20_temp * 0.7;
电路设计特别注意上拉电阻配置(见图2):
- DHT11数据线接4.7K上拉至3.3V
- DS18B20采用寄生供电模式,总线接2.2K上拉
2.3 执行机构设计
除湿系统采用8025规格的12V直流风扇,通过S8050三极管驱动继电器控制。实测数据:
- 启动电流:0.8A(需选配≥1A的继电器)
- 风量:15CFM(1立方米空间换气效率约2次/小时)
- 噪音控制:<35dB(1米距离测量)
消毒模块选用UV-C LED(275nm波长),特别注意:
- 安全互锁设计:开门自动断电
- 照射剂量控制:每次不超过15分钟
- 防护等级:IP65防尘防水
3. 软件系统架构
3.1 主程序流程图
系统采用时间片轮询架构(见图3),关键时序控制:
- 传感器采样周期:10秒
- 显示刷新率:1Hz
- WiFi心跳包间隔:30秒
- 控制决策周期:5秒
c复制void main() {
hardware_init();
while(1) {
if(timer1_flag) { // 10秒定时
read_sensors();
timer1_flag = 0;
}
if(timer2_flag) { // 5秒定时
control_logic();
timer2_flag = 0;
}
display_update();
wifi_handler();
}
}
3.2 通信协议设计
手机APP与硬件采用自定义JSON协议:
json复制{
"cmd": "set_param",
"target": "fan",
"value": 1,
"timestamp": 1634567890
}
数据加密采用AES-128 CBC模式,密钥通过SHA-256哈希派生。实测通信延迟:
- 局域网内:<200ms
- 4G网络:<800ms
3.3 控制算法优化
采用模糊PID复合控制算法(见图4):
- 湿度控制参数:
- Kp=2.5, Ki=0.1, Kd=0.8
- 死区设置:±3%RH
- 温度补偿系数:0.5℃/10%RH
特殊场景处理:
- 快速开门检测:3秒内湿度变化>10%则暂停控制
- 连续运行保护:风扇单次最长运行2小时强制休息15分钟
4. 系统测试与调优
4.1 环境适应性测试
模拟不同气候条件(测试数据取10次平均值):
| 测试场景 | 湿度稳定值 | 稳定时间 | 能耗 |
|---|---|---|---|
| 梅雨天气(85%RH) | 52%RH | 28min | 12Wh |
| 干燥冬季(30%RH) | 48%RH | - | 5Wh |
| 高温夏季(38℃) | 50%RH | 15min | 18Wh |
4.2 故障处理方案
常见问题排查表:
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 湿度持续偏高 | 风扇继电器粘连 | 更换MOSFET驱动电路 |
| WiFi频繁断开 | 天线阻抗不匹配 | 调整PCB天线匹配电容为1.2pF |
| 显示花屏 | 电源纹波过大 | 增加100μF钽电容滤波 |
| 消毒模块不启动 | UV LED开路 | 串联1N4148二极管保护 |
4.3 生产优化建议
- 结构设计:采用模数化箱体,预留传感器检修口
- 电源方案:改用POE供电可省去AC-DC模块
- 成本控制:批量生产时用ESP32替代STM32+ESP8266组合
5. 实际应用效果
在连续三个月的实地测试中,系统表现出色:
- 衣物霉变率下降92%(对比普通衣柜)
- 用户操作频次:平均每周仅需干预1.2次
- 系统稳定性:MTBF>2000小时
有个意外发现:系统对皮具养护特别有效,用户反馈皮鞋不再出现干裂现象。这得益于系统将湿度始终控制在皮革最佳存储区间(45-55%RH)。
后续计划增加衣物RFID识别功能,通过记录衣物存取频次,自动推荐穿着搭配。这个功能需要升级到STM32F4系列以处理更复杂的数据分析任务。