1. 项目背景与设计初衷
作为一名电子工程师,我经常遇到户外活动后衣物潮湿无处晾晒的困扰。特别是在雨季或野外考察时,传统烘干设备体积庞大且依赖固定电源。这促使我设计一款基于单片机的便携式温湿度检测烘干机,解决小型衣物快速烘干需求。
这款设备的核心价值在于:
- 便携性:整机重量控制在1kg以内,可轻松放入背包
- 低功耗:采用12V直流供电,兼容车载电源和移动电源
- 智能化:自动调节烘干参数,避免衣物损伤
- 安全性:多重保护机制,杜绝过热风险
在多次迭代后,最终方案选用STM32F103C8T6作为主控,搭配DHT22温湿度传感器和PTC加热片,实现了预期功能。下面将详细解析设计要点和实现过程。
2. 系统架构设计
2.1 整体框架设计
系统采用典型的嵌入式控制架构,分为感知层、控制层和执行层:
code复制[传感器数据] → [MCU处理] → [执行器控制]
↑ ↓
[用户交互] ← [状态显示]
各模块协同工作流程:
- 传感器采集环境参数
- MCU处理数据并做出控制决策
- 执行器调整工作状态
- 实时显示系统状态
- 接受用户指令输入
2.2 核心器件选型
主控MCU选型对比
| 型号 | 优点 | 缺点 | 选用理由 |
|---|---|---|---|
| STM32F103C8T6 | 性价比高,资源丰富 | 开发环境较复杂 | 性能满足且成本可控 |
| ATmega328P | 开发简单,生态完善 | 处理能力有限 | 性能不足 |
| ESP8266 | 自带WiFi功能 | 实时性较差 | 不需求联网功能 |
最终选择STM32F103C8T6,因其:
- 72MHz主频满足实时控制需求
- 内置ADC便于传感器数据采集
- 丰富的外设接口支持各模块连接
- 低功耗模式延长电池续航
温湿度传感器选型
对比DHT11、DHT22和SHT30后选用DHT22,因其:
- 测量范围:-40~80℃/0~100%RH
- 精度:±0.5℃/±2%RH
- 数字输出,抗干扰能力强
- 性价比高(约$3)
注意:DHT22需严格遵循时序要求,建议使用硬件中断方式读取数据
3. 硬件设计详解
3.1 电源管理电路设计
系统采用12V/2A直流输入,经两级转换:
- 第一级:LM2596降压至5V(风扇供电)
- 第二级:AMS1117-3.3V(MCU及传感器供电)
关键设计要点:
- 输入端口加入反接保护二极管
- 每路输出配置LC滤波电路
- 预留测试点便于调试
- 总开关采用自锁按键
实测功耗数据:
- 待机:0.5W
- 风扇工作:5W
- 加热模式:45W(最大)
3.2 加热控制电路
采用PTC加热片(40×40mm)配合MOSFET驱动:
c复制// 加热控制代码示例
void Heater_Ctrl(uint8_t state)
{
if(state) {
HAL_GPIO_WritePin(HEATER_GPIO_Port, HEATER_Pin, GPIO_PIN_SET);
// PID算法调节占空比
pwm_set_duty(HEATER_PWM_CH, calc_pid_output());
} else {
HAL_GPIO_WritePin(HEATER_GPIO_Port, HEATER_Pin, GPIO_PIN_RESET);
}
}
安全设计:
- 双重温度保护:软件限制+硬件温控开关(75℃断开)
- 加热片与外壳保持5mm间距
- 使用阻燃材料制作风道
3.3 风扇驱动电路
选用5010离心风扇(12V/0.15A),驱动方案:
- MOSFET:IRLZ44N
- 续流二极管:1N5819
- PWM频率:25kHz(避免可闻噪声)
实测风速:
| PWM占空比 | 风速(m/s) |
|---|---|
| 30% | 1.2 |
| 50% | 2.0 |
| 80% | 3.5 |
4. 软件设计实现
4.1 主程序流程图
plaintext复制开始
├─ 硬件初始化
├─ 外设自检
├─ 进入待机模式
└─ 主循环:
├─ 读取传感器
├─ 处理按键
├─ 更新显示
├─ 执行控制
└─ 安全检查
4.2 关键算法实现
温湿度控制PID算法
c复制typedef struct {
float Kp, Ki, Kd;
float err, last_err, integral;
} PID_Controller;
float PID_Compute(PID_Controller *pid, float setpoint, float input)
{
pid->err = setpoint - input;
pid->integral += pid->err;
float output = pid->Kp * pid->err
+ pid->Ki * pid->integral
+ pid->Kd * (pid->err - pid->last_err);
pid->last_err = pid->err;
return output;
}
参数整定经验:
- 先调Kp至系统出现轻微振荡
- 然后加入Ki消除静差
- 最后加Kd抑制超调
- 典型值:Kp=2.5, Ki=0.1, Kd=1.0
状态机设计
定义5个工作状态:
- STANDBY:待机
- SETTING:参数设置
- PREHEAT:预热
- WORKING:正常工作
- FAULT:故障保护
状态转换条件:
mermaid复制stateDiagram-v2
[*] --> STANDBY
STANDBY --> SETTING: 按键按下
SETTING --> PREHEAT: 启动命令
PREHEAT --> WORKING: 温度达标
WORKING --> STANDBY: 完成/停止
any --> FAULT: 异常发生
FAULT --> STANDBY: 复位
5. 制作与调试要点
5.1 结构组装指南
-
外壳加工:
- 使用2mm亚克力板激光切割
- 进风口开孔率≥30%
- 出风口加装导流罩
-
内部布局:
- 加热片位于风道中央
- 传感器避开热源直吹
- 电路板固定使用尼龙柱
-
线缆管理:
- 电源线用硅胶线(耐高温)
- 信号线加磁环防干扰
- 热缩管保护接头
5.2 常见问题排查
问题1:加热温度不稳定
可能原因:
- PID参数未调好
- 传感器位置不当
- 电源功率不足
解决方案:
- 用阶跃响应法重新整定PID
- 将传感器移至风道出口处
- 检查电源电压是否跌落
问题2:风扇异响
可能原因:
- PWM频率在人耳敏感范围
- 扇叶碰触外壳
- 轴承缺油
解决方法:
- 调整PWM频率至25kHz以上
- 加装橡胶减震垫
- 滴加润滑油
6. 实测性能数据
测试环境:25℃室温,放入300g含水率60%的棉质T恤
| 参数 | 数值 |
|---|---|
| 升温至50℃时间 | 3分20秒 |
| 烘干耗时 | 25分钟 |
| 最终含水率 | <5% |
| 整机功耗 | 0.45度电 |
对比传统烘干机:
- 体积缩小80%
- 能耗降低70%
- 噪音减少15dB
7. 使用与维护建议
-
操作流程:
- 装入衣物不超过容量的2/3
- 设置温度(棉质≤60℃,化纤≤50℃)
- 启动后勿遮挡进出风口
-
清洁保养:
- 每月清理风道灰尘
- 定期检查加热片氧化情况
- 长期不用时断开电池
-
安全注意事项:
- 禁止覆盖运行
- 远离易燃物品
- 儿童使用时需成人监护
8. 升级优化方向
根据半年使用反馈,后续可改进:
- 增加蓝牙连接手机APP
- 改用Type-C PD供电
- 添加衣物材质识别功能
- 优化风道设计提升热效率
这个项目从构思到实现历时3个月,最大的收获是认识到嵌入式系统开发中硬件可靠性的重要性。特别是在温控设备中,任何一个保护环节的疏忽都可能导致严重后果。建议后来者在类似项目中务必做好:
- 充分的FMEA分析
- 多层次的保护设计
- 严格的温升测试