1. 项目概述与核心需求解析
作为一名嵌入式系统开发者,我最近完成了一个基于STM32单片机的智能油烟机控制系统项目。这个项目的初衷源于对传统油烟机使用体验的不满——每次炒菜时手动开关的滞后性、固定档位无法匹配实际油烟量的问题实在让人头疼。
现代厨房需要更智能的解决方案。我们设计的这套系统能够实时感知油烟浓度,自动调节排风力度,就像给油烟机装上了"智能大脑"。核心指标上,系统实现了0-50mg/m³的油烟检测范围,响应速度控制在2秒以内,并且通过三档风速调节(800r/min、1500r/min、2200r/min)来应对不同烹饪场景。
关键设计考量:家用电器必须兼顾性能与安全。我们在系统中集成了多重保护机制,包括电机过热保护(>80℃触发)、燃气泄漏检测(>0.5%LEL报警)以及运行超时提醒(>1小时提示),确保使用安全无忧。
2. 硬件系统深度剖析
2.1 主控芯片选型
经过多方对比,我们最终选择了STM32F103C8T6作为主控芯片。这款芯片的性价比在业内是有口皆碑的——72MHz主频的Cortex-M3内核,64KB Flash+20KB RAM的存储配置,完全能够满足我们的需求。更重要的是,它丰富的外设资源(12位ADC、定时器、PWM输出等)让系统设计变得游刃有余。
2.2 传感器模块设计
油烟检测是整个系统的"嗅觉器官"。我们采用了MQ-2气体传感器,这款半导体传感器的优势在于:
- 对油烟、液化气、丙烷等多种气体都有良好响应
- 成本低廉(市场价约15-20元)
- 模拟量输出便于ADC采集
实际安装时有个细节需要注意:传感器必须安装在进风口附近,但又要避免直接被油烟喷溅。我们通过3D打印了一个带防溅罩的支架,既保证了检测灵敏度,又延长了传感器寿命。
2.3 电机驱动方案
排烟电机选用的是三相无刷电机(200W),相比传统有刷电机,它具有:
- 寿命更长(无电刷磨损)
- 效率更高(实测能效提升约15%)
- 噪音更低(约降低5-8dB)
驱动电路采用IR2104半桥驱动器配合MOSFET的方案。这里有个关键点:PWM频率选择。经过测试,我们将频率设定在16kHz,这个频段既避开了人耳敏感区(降低可闻噪音),又能保证电机运行平稳。
3. 软件系统实现细节
3.1 主程序架构
系统软件采用模块化设计,主程序流程图如下:
c复制void main() {
hardware_init(); // 硬件初始化
while(1) {
read_sensors(); // 读取传感器数据
process_data(); // 数据处理
control_logic(); // 控制逻辑
update_ui(); // 更新界面
safety_check(); // 安全检查
}
}
这种轮询架构虽然简单,但对于我们的应用场景已经足够。每个循环周期控制在100ms左右,既保证了实时性,又不会给MCU带来太大负担。
3.2 油烟浓度算法
传感器原始数据需要经过一系列处理:
- 均值滤波:连续采集5次取平均
- 温度补偿:根据环境温度修正读数
- 阈值判断:转换为浓度等级
c复制#define LOW_THRESHOLD 10 // mg/m³
#define MID_THRESHOLD 25
#define HIGH_THRESHOLD 40
uint8_t get_smoke_level(float concentration) {
if(concentration < LOW_THRESHOLD) return 0;
else if(concentration < MID_THRESHOLD) return 1;
else if(concentration < HIGH_THRESHOLD) return 2;
else return 3;
}
3.3 PID速度控制
电机转速控制采用增量式PID算法,参数整定过程很有意思:
- 先设I=D=0,慢慢增大P直到出现轻微震荡
- 然后加入I项消除静差
- 最后加入D项抑制超调
经过反复调试,最终参数确定为:
- Kp = 0.8
- Ki = 0.05
- Kd = 0.1
实测转速控制精度能达到±30r/min,完全满足需求。
4. 人机交互设计
4.1 触摸屏界面
我们选用了4.3寸TFT触摸屏,界面布局遵循"一眼可见"原则:
- 顶部:实时显示油烟浓度(柱状图+数字)
- 中部:当前风速(三档图标高亮显示)
- 底部:模式切换按钮(自动/手动/定时)
一个实用技巧:在触摸检测代码中加入200ms的防抖延时,有效避免了误触问题。
4.2 实体按键设计
虽然触摸屏很便捷,但我们还是保留了三个实体按键:
- 急停按钮(红色自锁式)
- 档位+/-按钮(带背光)
- 模式切换按钮
这种"双轨制"设计确保了在触摸屏失灵时,系统仍能基本运作,提高了可靠性。
5. 系统测试与优化
5.1 性能测试数据
我们在模拟厨房环境中进行了全面测试,部分关键数据如下:
| 测试项目 | 指标要求 | 实测结果 |
|---|---|---|
| 响应时间 | ≤2s | 1.8s |
| 排烟效率 | 提升20% | 提升23% |
| 待机功耗 | ≤1W | 0.78W |
| 运行噪音 | ≤65dB | 62dB |
| 温度稳定性 | ≤80℃ | 68℃ |
5.2 遇到的典型问题及解决
-
传感器污染问题:
- 现象:使用2周后检测灵敏度下降约30%
- 解决方案:增加每周一次的自动加热清洁(400℃维持10秒)
- 效果:灵敏度恢复至初始值的95%以上
-
电机共振噪音:
- 现象:中档转速(1500r/min)时出现明显嗡嗡声
- 排查:通过FFT分析发现与机箱固有频率重合
- 解决:在电机支架加装硅胶减震垫+微调PWM频率
- 效果:噪音降低8dB
-
触摸屏误触:
- 现象:油污环境下偶尔出现误触发
- 优化:升级为防油污涂层+调整触摸阈值
- 效果:误触率降低至0.1%以下
6. 生产注意事项
如果你打算批量生产这个系统,有几个关键点需要特别注意:
-
EMC设计:
- 电机驱动电路必须做好屏蔽
- 电源输入端要加装磁环和滤波电容
- PCB布局时模拟/数字地要分开
-
防水防油设计:
- 所有接缝处要加密封圈
- 电路板喷涂三防漆
- 按键/接口采用防水设计
-
量产测试:
- 建议开发专用测试治具
- 重点测试项目:气密性、绝缘性、功能测试
- 老化测试时间不少于72小时
这个项目从构思到完成历时3个月,期间遇到了不少挑战,但最终的成果令人满意。在实际使用中,最大的惊喜是电费账单——相比传统油烟机,这个智能系统每月能节省约15%的用电量。