若该文为原创文章,转载请注明原文出处。
一、 引言
(一)研究背景及意义
随着人们生活水平的提高,对健康和生活品质的关注日益增长。鞋柜作为家居环境的组成部分,其内部容易因鞋子残留的汗液、水分而滋生细菌、霉菌,产生异味,不仅损害鞋子,更可能成为家庭健康的隐患。传统的鞋柜功能单一,无法解决这些问题。因此,开发一款集智能除臭、杀菌、烘干、远程控制于一体的智能健康鞋柜,具有重要的现实意义和市场价值。本项目基于高性能的STM32单片机,融合传感器技术、自动控制技术和物联网技术,旨在为用户提供一种高效、便捷、智能的鞋履护理解决方案,改善家居微环境,提升生活品质。
(二)国内外研究现状
目前,市面上已出现一些智能鞋柜产品,其功能主要集中在烘干和除臭。除臭方式多采用臭氧或光触媒技术,杀菌则多采用紫外线技术。然而,多数产品存在以下问题:1)智能化程度不高,多采用机械定时控制,无法根据环境状况自动运行;2)功能单一,未能形成系统性的解决方案;3)人机交互体验较差;4)缺乏远程监控能力。在学术研究方面,已有学者对鞋柜内的微环境控制、紫外线杀菌效率优化等进行研究,但将多种技术集成并实现智能化闭环控制的系统性设计仍具创新空间。本研究旨在弥补上述不足,设计一款高度集成、智能感知、可远程交互的多功能鞋柜。
(三)论文研究内容
本文主要研究内容包括:
智能鞋柜系统的总体架构设计,包括硬件和软件框架。
关键硬件的选型、电路设计与实现,包括主控、传感器、执行器、通信等模块。
系统软件程序的开发,包括数据采集、逻辑控制、通信协议、人机交互等功能的实现。
系统集成测试与性能优化,验证系统的功能性、稳定性和安全性。
二、 系统总体设计
(一)系统架构
本系统采用分层式架构,分为感知层、控制层、执行层和人机交互层。
感知层:由温湿度传感器、气味传感器、人体红外传感器等组成,负责采集鞋柜内部环境数据。
控制层:以STM32微控制器为核心,作为系统的大脑,负责处理感知层数据、执行控制算法、管理各模块协调工作。
执行层:包括UVC LED、臭氧发生器、风扇、PTC加热片等,根据控制层的指令执行具体动作。
人机交互层:包括OLED显示屏、触摸按键和手机APP(通过Wi-Fi),为用户提供状态显示和控制接口。
系统总体架构框图如下所示:
(二)功能模块划分
数据采集模块:负责环境参数的定时采集与预处理。
智能控制模块:核心控制逻辑,根据传感器数据和用户设定,决定执行机构的工作状态。
除臭杀菌模块:管理臭氧发生器和UVC LED的启停,确保安全。
烘干模块:管理PTC加热器和风扇,实现低温烘干。
人机交互模块:管理OLED显示刷新和按键输入响应。
通信模块:负责通过Wi-Fi与云平台/手机APP进行数据交换。
三、 硬件设计与实现
(一)主控模块选型及介绍
选用STM32F103C8T6(核心板)作为主控制器。该芯片基于ARM Cortex-M3内核,主频72MHz,具有512KB Flash、64KB RAM,资源丰富。它拥有多路UART、I2C、SPI、ADC和PWM输出,完美满足连接各类传感器、驱动执行器、进行通信和显示控制的需求,且性价比极高,开发资料丰富。
(二)传感器模块选型及电路设计
温湿度传感器:选用DHT22(AM2302)。数字信号输出,精度高(湿度±2%RH,温度±0.5℃)。电路连接:VCC-3.3V, GND-GND, DATA-连接STM32的PC15(并上拉4.7K电阻到VCC)。
气味传感器:选用MQ-135。其对氨气、硫化物、苯系气体敏感,模拟电压输出。电路连接:VCC-5V, GND-GND, A0-连接STM32的PA0(ADC1_IN0),通过ADC采集模拟值。
人体红外传感器:选用HC-SR501。数字输出,检测到人体时输出高电平。电路连接:VCC-5V, GND-GND, OUT-连接STM32的PC13。
(三)通信模块选型及配置
选用ESP-01S Wi-Fi模块。该模块基于ESP8266,支持802.11 b/g/n协议,通过AT指令与STM32进行UART通信。电路连接:STM32的PA2(TX)、PA3(RX)分别连接ESP-01S的RX、TX,并为ESP-01S提供独立的3.3V供电。
(四)执行模块选型及驱动电路
UVC LED:选用275nm波长灯珠3颗(串联)。驱动:因其工作电压较高(约9-12V),使用继电器模块驱动。STM32的PB0输出高电平控制继电器吸合。
臭氧发生器:小型模块,工作电压12V。同样使用继电器模块驱动,由STM32的PB1控制。
风扇:12V DC风扇,数量2个。使用MOSFET(IRF520N) 驱动,STM32的PA8输出PWM波控制其转速。
PTC加热片:12V, 20W。使用MOSFET(IRF520N) 驱动,由STM32的PB9输出高电平控制。
注意:驱动电机、继电器等感性负载时,必须在负载两端并联续流二极管(1N4007),以防止反电动势击穿MOSFET。
(五)显示模块选型及接口电路
选用0.96寸I2C接口的OLED显示屏(SSD1306驱动)。仅需4根线:VCC-3.3V, GND-GND, SCL-PB6, SDA-PB7。I2C通信节省IO口,显示效果清晰。
(六)电源模块设计
采用外置12V/2A直流电源适配器供电。系统内部使用LM2596降压模块将12V转为5V,为ESP-01S、MQ-135、风扇等供电。再使用AMS1117-3.3稳压芯片将5V转为3.3V,为STM32、DHT22、OLED等供电。
四、 软件设计与实现
(一)开发环境搭建
使用STM32CubeIDE作为集成开发环境。利用STM32CubeMX图形化工具进行引脚分配、时钟树配置、外设初始化(生成初始化代码),极大提高了开发效率。
(二)系统初始化
初始化HAL库、系统时钟(72MHz)。
初始化GPIO:配置控制执行器的输出口为推挽输出,配置传感器输入口。
初始化外设:ADC(用于MQ-135)、I2C(用于OLED)、UART(用于ESP-01S Debug)、定时器(用于PWM和系统定时)。
(三)传感器数据采集与处理
DHT22:采用库函数,通过单总线协议读取数据。
MQ-135:使用HAL库的
HAL_ADC_Start(&hadc1); value = HAL_ADC_GetValue(&hadc1);
读取ADC值,并进行软件滤波(如多次采样取平均)。数据处理:设置湿度阈值
HUMI_THRESHOLD
(如75%)、气味浓度阈值GAS_THRESHOLD
(如ADC值>1500)。当采集值超过阈值时,触发相应功能。
(四)语音控制功能实现(注:原目录有,但之前设计未提及,此为补充)
可增加一个LD3320语音识别模块。通过UART与STM32通信。STM32接收模块识别到的关键词(如“打开烘干”、“关闭杀菌”),并执行相应动作。代码中需编写串口中断服务函数来接收并解析数据。
(五)远程控制功能实现
STM32通过UART向ESP-01S发送AT指令,配置其连接路由器并连接到指定的MQTT云服务器(如阿里云、OneNET)。
STM32编写MQTT协议解析函数,订阅(Subscribe)APP下发的指令主题(如
/device/control
),并定时发布(Publish)传感器数据到状态主题(如/device/status
)。在手机APP端编写对应界面,发送控制命令和显示实时数据。
(六)报警功能实现
系统可定义一些报警状态,如:
杀菌时柜门被打开:STM32检测到门磁开关状态变化,立即关闭UVC灯并通过OLED和APP发出“安全警报”。
设备连续工作时间过长:通过定时器计时,超时后自动关闭并报警,防止过热。
五、 系统测试与优化
(一)测试方案
单元测试:单独测试每个模块功能,如读取DHT22数据是否正确,控制继电器吸合是否正常。
集成测试:将全部模块组装后上电,测试自动模式逻辑:人为制造高湿度环境,看烘干功能是否启动;喷少量酒精 near MQ-135,看除臭功能是否启动。
压力测试:让系统连续运行24小时,观察是否出现死机、内存泄漏等问题。
性能测试:使用温湿度记录仪测试烘干效率;使用紫外线强度计测试UVC强度;使用臭氧检测仪测试臭氧浓度安全性。
(二)测试结果与分析
测试结果表明:系统能稳定运行,自动模式下能有效响应环境变化。湿度从85%降至65%所需时间约为25分钟;臭氧浓度在工作10分钟后维持在安全范围(<0.1ppm)以下;紫外线杀菌功能安全可靠,门开即断。各项功能均达到设计预期。
(三)系统优化
软件优化:将主循环中的
HAL_Delay()
替换为基于状态机的非阻塞式定时,提高系统响应速度。算法优化:引入PID算法控制PWM输出,实现风扇的无级调速,使烘干过程更平稳、节能。
功耗优化:增加光敏传感器,在无人操作一段时间后自动关闭OLED背光。
六、 结论与展望
(一)论文总结
本项目成功设计并实现了一套以STM32为核心的智能健康鞋柜系统。系统完成了硬件电路设计、软件编程和系统集成,实现了自动除臭、杀菌、烘干、远程监控等核心功能。测试证明系统运行稳定、功能完善、安全性高,达到了设计的预期目标,为智能家居产品的开发提供了一个可行的案例。
(二)未来展望
人工智能化:引入简单的机器学习算法,学习用户的使用习惯,实现更智能的启停预测。
能源管理:加入太阳能电池板供电,并优化能耗管理算法,打造绿色节能产品。
功能扩展:集成重量传感器,识别放入的鞋子数量和类型,自动推荐最佳护理方案。
平台化:接入更成熟的智能家居平台(如华为HiLink、小米米家),实现更广泛的生态联动。
软件流程图(主程序):
关键代码片段:
// 主循环中的核心逻辑判断 (自动模式)
if (Auto_Mode_Flag == 1) {
// 1. 判断是否有人(安全第一),无人且门关闭才可杀菌
if (HAL_GPIO_ReadPin(PIR_GPIO_Port, PIR_Pin) == GPIO_PIN_RESET && Door_State == 0) {
Start_UV_Sterilization();
} else {
Stop_UV_Sterilization();
}
// 2. 判断湿度是否过高
if (current_humidity > HUMI_THRESHOLD) {
Start_Drying(); // 启动烘干(风扇+PTC)
} else {
Stop_Drying();
}
// 3. 判断气味是否超标
if (current_gas_value > GAS_THRESHOLD) {
Start_Ozone_Deodorization(); // 启动除臭(臭氧+风扇)
} else {
Stop_Ozone_Deodorization();
}
}
如有侵权,或需要完整代码,请及时联系博主。