基于STM32的智能空气净化器系统设计与实现
摘要:本文设计了一种基于STM32F103C8T6单片机的智能空气净化器系统,通过集成MQ-2烟雾传感器、PM2.5粉尘传感器、MQ-7一氧化碳传感器、MQ-135空气质量传感器及MS1100甲醛传感器,实现了对室内空气质量的实时监测与智能净化。系统具备声光报警、语音提示、OLED显示、蓝牙远程控制等功能,有效提升了室内空气质量管理的智能化水平。实验结果表明,该系统能够准确检测多种污染物浓度,并自动调节净化器工作状态,满足家庭及办公场所的空气净化需求。
关键词:STM32;空气净化器;传感器;智能控制;蓝牙通信
1. 引言
随着工业化和城市化的快速发展,室内空气污染问题日益严重。PM2.5、甲醛、一氧化碳等有害物质的超标排放,对人们的健康构成了严重威胁。传统的空气净化器功能单一,缺乏智能化控制,无法满足现代家庭对空气质量管理的需求。基于STM32单片机的智能空气净化器系统,通过集成多种传感器和智能控制算法,实现了对室内空气质量的实时监测与智能净化,为改善室内环境提供了有效的解决方案。
2. 系统设计目标与原理
2.1 设计目标
本系统旨在设计一种基于STM32F103C8T6单片机的智能空气净化器,实现对室内烟雾、PM2.5粉尘、一氧化碳、空气质量及甲醛浓度的实时监测,并在污染物浓度超标时自动启动净化设备。同时,系统支持手动控制、语音提示、OLED显示及蓝牙远程控制功能,提升用户体验。
2.2 系统原理
系统采用“监测-分析-控制”的闭环逻辑设计。STM32单片机通过多种传感器采集室内空气参数,经数据处理后与预设阈值比对。当参数超标时,驱动相应的净化模块工作,并通过OLED屏幕实时显示环境数据。同时,系统支持蓝牙通信,实现数据的远程上传与设备的远程控制。
3. 硬件架构设计
3.1 核心控制模块
采用STM32F103C8T6单片机作为主控制器,负责数据采集、逻辑判断与设备控制。关键资源配置如下:
- UART1:连接蓝牙模块(BT04A),实现数据上传与远程控制。
- I2C1:连接OLED屏幕,实时显示环境数据。
- GPIO:控制净化设备(继电器输出)、按键输入与状态指示灯。
- ADC1:预留模拟传感器接口,扩展监测参数。
3.2 传感器模块
- MQ-2烟雾传感器:检测室内烟雾浓度,输出模拟信号。
- PM2.5粉尘传感器:检测空气中PM2.5浓度,输出数字信号。
- MQ-7一氧化碳传感器:检测室内一氧化碳浓度,输出模拟信号。
- MQ-135空气质量传感器:检测室内空气质量,输出模拟信号。
- MS1100甲醛传感器:检测室内甲醛浓度,输出数字信号。
- DHT11温湿度传感器:检测环境温湿度,输出数字信号。
3.3 净化设备模块
- 风扇模块:通过继电器控制,调节风速(高/中/低三档,PWM控制)。
- 加湿器模块:通过继电器控制,调节湿度。
- 有源蜂鸣器:超标时发出声光报警。
3.4 显示与交互模块
- OLED屏幕:实时显示PM2.5、甲醛、温湿度等数值,超标参数以红色字体闪烁。
- 按键:支持模式切换、参数设置、手动启停净化设备。
- 状态指示灯:直观反映空气质量等级(绿/黄/红)。
3.5 蓝牙通信模块
- BT04A蓝牙模块:支持与手机APP配对,实现数据上传与远程控制。
3.6 电源模块
- 12V直流电源:供给风扇与继电器线圈。
- LM1117-5V转换器:将12V转换为5V,供给甲醛传感器、蓝牙模块等。
- AMS1117-3.3V转换器:将5V转换为3.3V,供给STM32、温湿度传感器及OLED屏幕。
4. 软件逻辑设计
4.1 开发环境与工具
软件基于Keil MDK开发,采用模块化架构,包含传感器数据采集、净化控制逻辑、显示与交互、蓝牙通信等核心模块。
4.2 传感器数据采集模块
c
void Sensor_Collect(void) { |
// 读取PM2.5数据 |
PM25_Value = PM25_Read(); |
// 读取温湿度数据 |
DHT11_Read(&Temp_Value, &Humi_Value); |
// 读取甲醛数据 |
HCHO_Value = MS1100_Read(); |
// 读取烟雾数据 |
Smoke_Value = MQ2_Read(); |
// 读取一氧化碳数据 |
CO_Value = MQ7_Read(); |
// 读取空气质量数据 |
AirQuality_Value = MQ135_Read(); |
// 数据滤波处理 |
PM25_Filter = Filter_SMA(PM25_Value, 5); |
HCHO_Filter = Filter_SMA(HCHO_Value, 5); |
// 其他传感器数据滤波类似 |
} |
4.3 净化控制逻辑模块
c
void Purify_Control(void) { |
if (Mode == AUTO) { // 自动模式 |
if (PM25_Filter > PM25_HIGH || HCHO_Filter > HCHO_HIGH || |
Smoke_Value > SMOKE_HIGH || CO_Value > CO_HIGH || |
AirQuality_Value > AIRQUALITY_HIGH) { |
Fan_SetSpeed(HIGH); // 高速净化 |
Relay_Control(HUMIDIFIER, ON); |
LED_State = RED; |
} else if (PM25_Filter > PM25_LOW || HCHO_Filter > HCHO_LOW) { |
Fan_SetSpeed(MEDIUM); // 中速净化 |
Relay_Control(HUMIDIFIER, OFF); |
LED_State = YELLOW; |
} else { |
Fan_SetSpeed(STOP); // 停机 |
Relay_Control(HUMIDIFIER, OFF); |
LED_State = GREEN; |
} |
} else { // 手动模式 |
// 根据用户指令控制设备 |
} |
} |
4.4 显示与交互模块
- OLED显示:分区域显示各项参数,格式如下:
第一行: PM2.5: 35μg/m³ 甲醛: 0.08mg/m³
第二行: 温度: 25.5℃ 湿度: 50% RH
第三行: 状态: 自动净化(高速)
- 按键处理:采用中断方式识别按键,短按切换功能,长按进入参数设置模式。
4.5 蓝牙通信模块
c
void Bluetooth_SendData(void) { |
// 数据打包格式: PM2.5(2字节) + 甲醛(2字节) + 温度(2字节) + 湿度(2字节) |
uint8_t data[9] = {0xAA, 0x01, |
(PM25_Filter >> 8) & 0xFF, PM25_Filter & 0xFF, |
(HCHO_Filter * 100) >> 8, (HCHO_Filter * 100) & 0xFF, |
(Temp_Value * 10) >> 8, (Temp_Value * 10) & 0xFF, |
0x55}; |
HAL_UART_Transmit(&huart1, data, sizeof(data), 100); |
} |
5. 系统测试与验证
5.1 测试环境搭建
搭建包含STM32开发板、传感器模块、净化设备模块及蓝牙通信模块的测试平台,模拟室内空气质量监测与净化场景。
5.2 功能测试
- 传感器数据采集测试:验证各传感器能否准确采集环境数据。
- 净化控制逻辑测试:验证系统能否根据污染物浓度自动调节净化设备工作状态。
- 显示与交互测试:验证OLED屏幕能否实时显示环境数据,按键能否正确切换模式与设置参数。
- 蓝牙通信测试:验证系统能否通过蓝牙将数据上传至手机APP,并接收远程控制指令。
5.3 性能测试
- 净化效率测试:在不同污染物浓度下,测试系统的净化效率。
- 稳定性测试:长时间运行系统,验证其稳定性与可靠性。
6. 结论与展望
6.1 结论
本文设计了一种基于STM32单片机的智能空气净化器系统,通过集成多种传感器和智能控制算法,实现了对室内空气质量的实时监测与智能净化。实验结果表明,该系统能够准确检测多种污染物浓度,并自动调节净化器工作状态,满足家庭及办公场所的空气净化需求。
6.2 展望
未来工作可进一步优化系统算法,提高净化效率与稳定性;增加更多传感器类型,扩展监测参数范围;开发更加友好的用户界面,提升用户体验。