基于STM32的智能衣柜系统设计与实现
摘要
为解决传统衣柜通风不良、温湿度失衡、衣物易受潮发霉、消毒不及时等问题,本文设计了一款基于STM32F103C8T6单片机的多功能智能衣柜系统。该系统集成温湿度检测、空气质量监测、光照感应、柜门状态识别等多种传感模块,通过继电器驱动加热、通风、消毒、照明等执行机构,实现衣柜内环境的自动调节与智能控制。同时支持手动/自动模式切换、蓝牙APP远程控制、参数阈值自定义调节等功能,可通过OLED屏幕实时显示环境数据与系统状态。本文详细阐述系统的硬件电路设计、软件逻辑架构、功能模块实现及系统测试过程,测试结果表明,该智能衣柜系统运行稳定、响应迅速、控制精度满足日常使用需求,能有效改善衣物储存环境,提升生活便捷性与智能化水平。
关键词:STM32F103C8T6;智能衣柜;环境监测;自动控制;蓝牙远程控制

第一章 引言
1.1 研究背景与意义
随着智能家居产业的快速发展,智能化产品逐渐渗透到日常生活的各个场景,传统家具的智能化升级成为趋势。衣柜作为家庭储存衣物的核心家具,其功能仍停留在基础收纳层面,难以满足现代用户对衣物储存环境的高品质需求。在潮湿季节,衣柜内温湿度失衡易导致衣物受潮、发霉、产生异味;长期存放的衣物易滋生细菌、螨虫,影响人体健康;传统衣柜缺乏主动通风、消毒、温度调节功能,需人工频繁打理,操作繁琐。
基于此,本文设计一款集环境监测、自动调节、远程控制、模式切换于一体的智能衣柜系统,通过传感器实时采集衣柜内温湿度、空气质量、光照强度等环境参数,结合STM32单片机的逻辑判断与控制能力,自动触发加热、通风、消毒、照明等功能,同时支持蓝牙APP远程控制与手动参数调节,实现衣物储存环境的智能化管理。该系统不仅能有效解决传统衣柜的痛点,提升衣物储存的安全性与舒适性,还能契合智能家居的发展趋势,具有较高的实用价值与推广前景。
1.2 国内外研究现状
在国外,智能家居产业起步较早,智能衣柜相关技术较为成熟。部分品牌推出的智能衣柜产品已实现温湿度调控、紫外线消毒、衣物护理等功能,且支持与家庭智能网关联动,实现多设备协同控制。例如,韩国某品牌智能衣柜集成了蒸汽护理、UV消毒、除湿通风功能,通过手机APP可远程设置工作模式与参数,但其产品价格较高,功能针对性较强,难以普及到普通家庭。
在国内,随着消费升级与智能家居概念的普及,智能衣柜逐渐成为研究热点。国内企业与科研机构多聚焦于性价比与功能集成化,推出的产品多以温湿度检测、消毒、通风为核心功能,部分产品加入了蓝牙或Wi-Fi远程控制模块。但现有产品仍存在一些不足:部分系统控制精度较低,环境参数调节响应滞后;功能模块兼容性较差,手动与自动模式切换逻辑复杂;部分产品缺乏空气质量监测与主动报警功能,难以全面保障衣物储存环境安全。因此,研发一款功能全面、控制精准、操作便捷、性价比高的智能衣柜系统具有重要的现实意义。
1.3 本文主要研究内容与结构安排
1.3.1 主要研究内容
本文以STM32F103C8T6单片机为核心,设计一款多功能智能衣柜系统,具体研究内容如下:
- 系统总体方案设计:明确系统功能需求,划分硬件与软件模块,搭建系统总体架构,确定各模块的协同工作逻辑。
- 硬件电路设计:基于STM32F103C8T6单片机,设计传感器模块(温湿度、空气质量、光敏、光电红外)、执行器模块(加热、通风、消毒、照明、步进电机)、显示模块(OLED)、通信模块(蓝牙)、按键控制模块的接口电路与驱动电路,确保各模块稳定工作。
- 软件逻辑设计:基于Keil MDK开发环境,设计系统主程序、各功能模块子程序(环境参数采集、阈值判断、模式切换、远程控制、定时任务),实现自动模式下的环境自适应调节与手动模式下的精准控制,优化程序流程,提升系统响应速度。
- 系统集成与测试:搭建硬件实验平台,进行软件程序烧录与调试,对系统的环境监测精度、功能实现效果、远程控制稳定性、模式切换可靠性进行测试,分析测试结果并优化系统性能。
1.3.2 论文结构安排
本文共分为7章,各章节内容安排如下:
第1章 引言:阐述研究背景与意义,分析国内外研究现状,明确本文研究内容与论文结构。
第2章 系统总体设计:明确系统功能需求与设计目标,划分硬件与软件模块,搭建系统总体架构,设计各模块协同工作流程。
第3章 系统硬件电路设计:详细介绍各硬件模块的选型依据、接口电路设计、驱动电路原理,绘制整体电路原理图。
第4章 系统软件设计:阐述软件开发环境与开发工具,设计系统主程序流程与各功能模块子程序逻辑,说明关键功能的实现方法。
第5章 系统集成与测试:搭建测试平台,制定测试方案,对系统各项功能与性能进行测试,分析测试结果。
第6章 系统优化与展望:总结系统存在的不足,提出针对性的优化方案,对未来智能衣柜的发展方向进行展望。
第7章 结论:概括全文研究成果,总结系统设计的核心价值与应用前景。
1.4 本章小结
本章围绕智能衣柜的研究背景与意义展开,分析了国内外智能衣柜的研究现状与现有产品的不足,明确了本文的研究内容与论文结构,为后续系统的总体设计、硬件与软件开发奠定了基础。
第二章 系统总体设计
2.1 系统功能需求分析
基于用户需求与市场调研,本文设计的智能衣柜系统需实现以下功能,涵盖环境监测、自动控制、手动控制、远程控制、参数调节等多个维度:
2.2 系统设计目标
为确保系统满足实际使用需求,设定以下设计目标:
- 监测精度:温湿度检测误差≤±1℃、±5%RH;空气质量检测能准确识别超标状态;光照强度检测可区分强光、弱光、无光环境。
- 控制响应:传感器采集周期≤1s,执行机构响应延迟≤2s,模式切换与参数调节实时生效。
- 稳定性:系统连续运行24小时无故障,蓝牙通信距离≥5m,数据传输无丢失、无延迟。
- 操作性:按键布局合理,操作简洁;OLED屏幕显示清晰,参数直观;手机APP界面友好,远程控制便捷。
- 安全性:UV消毒灯仅在柜门关闭时工作,开门自动关闭;加热片、UV灯等执行机构通过继电器隔离驱动,避免短路风险。
2.3 系统总体架构设计
本系统采用“核心控制+传感采集+执行驱动+通信交互+显示控制”的架构,以STM32F103C8T6单片机为核心,各模块协同工作,系统总体架构分为硬件层与软件层,具体如下:
2.3.1 硬件层架构
硬件层分为核心控制模块、传感模块、执行器模块、显示模块、通信模块、按键控制模块、电源模块,各模块功能如下:
- 核心控制模块:以STM32F103C8T6为核心,负责接收各传感器采集的数据,执行逻辑判断与控制指令,协调各模块工作,处理蓝牙通信数据与按键指令。
- 传感模块:包括DHT11、MQ-135、光敏传感器、光电红外传感器,负责采集温湿度、空气质量、光照强度、柜门状态等环境参数,将模拟信号或数字信号传输至核心控制模块。
- 执行器模块:包括加热片、风扇、UV消毒灯、LED灯、步进电机、有源蜂鸣器,通过继电器或驱动电路接收核心控制模块的指令,执行相应动作(加热、通风、消毒、照明、升降、报警)。
- 显示模块:采用OLED屏幕,实时显示环境参数(温湿度、空气质量、光照强度)、系统状态(工作模式、执行机构状态)、时间与定时信息。
- 通信模块:采用BT04A蓝牙模块,实现核心控制模块与手机APP的数据交互,上传环境参数,接收远程控制指令。
- 按键控制模块:设置多个功能按键,用于模式切换、参数调节、手动控制执行机构,实现本地操作。
- 电源模块:为整个系统提供稳定电源,将220V交流电转换为5V、3.3V直流电,满足各模块供电需求。
2.3.2 软件层架构
软件层基于嵌入式C语言开发,采用模块化设计思想,分为主程序模块、传感采集模块、逻辑控制模块、显示驱动模块、蓝牙通信模块、按键处理模块、定时任务模块,各模块功能如下:
- 主程序模块:负责系统初始化(GPIO、RTC、串口、ADC等),调用各功能模块子程序,实现系统整体流程控制。
- 传感采集模块:负责驱动各传感器工作,采集环境参数,对采集的数据进行滤波、校准处理,确保数据准确性。
- 逻辑控制模块:根据预设阈值与传感器数据,判断是否触发执行机构动作;处理模式切换指令,实现自动/手动模式下的控制逻辑切换;响应手动与远程控制指令,驱动执行器工作。
- 显示驱动模块:驱动OLED屏幕工作,将环境参数、系统状态、时间信息等格式化显示,支持参数实时刷新。
- 蓝牙通信模块:配置蓝牙模块参数,实现数据收发,将环境参数上传至APP,解析APP下发的远程控制指令并传输至核心控制模块。
- 按键处理模块:识别按键动作(短按、长按),解析按键指令,执行模式切换、参数调节、手动控制等操作,防止按键误触发。
- 定时任务模块:基于RTC实现实时时间同步,执行UV消毒定时任务,控制各执行机构的工作时长(如加热、消毒时长限制)。
2.4 系统工作流程设计
2.4.1 系统启动流程
系统通电后,首先进行初始化操作,包括STM32单片机GPIO、RTC、ADC、串口等外设初始化,蓝牙模块、OLED屏幕初始化,传感器初始化,参数初始化(加载默认温湿度阈值、消毒定时时间、报警阈值等)。初始化完成后,OLED屏幕显示系统启动界面,随后进入自动模式,传感器开始采集环境参数,系统根据参数与预设阈值判断是否触发执行机构动作,同时将参数上传至OLED屏幕与蓝牙APP,进入正常工作状态。
2.4.2 自动模式工作流程
自动模式下,系统自主完成环境监测与调节,流程如下:
2.4.3 手动模式工作流程
通过按键切换至手动模式后,系统停止自动调节功能,用户可通过按键或蓝牙APP控制各执行机构,流程如下:
2.5 本章小结
本章明确了系统的功能需求与设计目标,搭建了硬件层与软件层的总体架构,划分了各功能模块,设计了系统启动流程、自动模式与手动模式工作流程,为后续硬件电路设计与软件程序开发提供了整体框架与指导依据。
第三章 系统硬件电路设计
3.1 核心控制模块电路设计
3.1.1 核心芯片选型
本系统选用STM32F103C8T6单片机作为核心控制芯片,该芯片属于ST公司的STM32F1系列,基于ARM Cortex-M3内核,主频最高72MHz,具备丰富的外设资源与优异的性能,性价比高,适合嵌入式智能控制场景。其主要参数如下:
- Flash容量64KB,RAM容量20KB,可满足系统程序存储与数据处理需求。
- 具备3个16位定时器、2个ADC(12位精度)、多个UART、SPI、I2C通信接口,可连接蓝牙模块、OLED屏幕、传感器等外设。
- 工作电压3.3V,功耗低,适合便携式智能设备;封装为LQFP48,体积小,便于电路板布局。
相较于其他单片机(如51单片机、Arduino),STM32F103C8T6运算速度更快、外设资源更丰富,能同时处理多个传感器数据与执行机构控制指令,满足系统多任务协同工作的需求。
3.1.2 STM32最小系统电路设计
STM32F103C8T6最小系统电路是保障芯片正常工作的基础,包括电源电路、复位电路、时钟电路,具体设计如下:
(1)电源电路
系统采用5V外部电源供电,通过AMS1117-3.3V稳压器将5V电压转换为3.3V,为STM32单片机及其他3.3V外设(蓝牙模块、OLED屏幕)供电。电源电路中加入10μF与0.1μF电容,用于滤波,稳定输出电压,防止电压波动对芯片造成影响。AMS1117-3.3V稳压器具备过流保护、过热保护功能,可提升电源电路的可靠性。
(2)复位电路
采用上电复位与手动复位相结合的复位电路,复位引脚(NRST)通过10KΩ电阻接3.3V电源,通过0.1μF电容接地,同时连接一个手动复位按键至地。上电时,电容充电,NRST引脚保持低电平一段时间,实现上电复位;按下手动复位按键时,NRST引脚接地,产生低电平,实现手动复位,复位后系统重新初始化并开始运行。
(3)时钟电路
STM32F103C8T6单片机需外部晶振提供时钟信号,分为高速外部晶振(HSE)与低速外部晶振(LSE)。HSE选用8MHz晶振,通过两个22pF电容接地,为系统提供高速时钟信号,经倍频后可达到72MHz主频;LSE选用32.768KHz晶振,配合两个22pF电容,为RTC实时时钟提供时钟信号,确保时间计时准确。
3.2 传感模块电路设计
3.2.1 DHT11温湿度传感器电路
DHT11是一款低成本、高精度的数字温湿度传感器,采用单总线通信方式,仅需一根数据线即可实现与STM32单片机的数据传输,接口简单,适合嵌入式系统使用。其测量范围为温度0~50℃(误差±1℃),湿度20%~90%RH(误差±5%RH),满足衣柜内温湿度检测需求。
DHT11引脚包括VCC、GND、DATA,电路设计如下:VCC引脚接5V电源(兼容3.3V),GND引脚接地,DATA引脚通过10KΩ上拉电阻接3.3V,再连接至STM32单片机的GPIO引脚(如PA0)。上拉电阻用于保证总线空闲时为高电平,确保通信稳定性。DATA引脚为双向I/O口,STM32通过该引脚发送起始信号,DHT11响应后发送温湿度数据,单片机接收并解析数据。
3.2.2 MQ-135空气质量传感器电路
MQ-135传感器是一款半导体空气质量传感器,可检测甲醛、CO、苯、烟雾等有害气体,适合用于衣柜内空气质量监测。该传感器输出模拟信号,需通过ADC转换为数字信号后传输至STM32单片机,其工作电压为5V,加热电压为5V,加热后传感器才能稳定工作。
电路设计如下:MQ-135的VCC引脚接5V电源,GND引脚接地,HEATER引脚接5V电源(加热引脚),AOUT引脚(模拟输出)通过1KΩ电阻连接至STM32单片机的ADC输入引脚(如PA1),同时通过0.1μF电容滤波,减少信号干扰。为保护传感器,加热回路中可串联一个限流电阻,防止电流过大烧毁传感器。STM32通过ADC采集AOUT引脚的模拟电压,根据电压值判断空气质量是否超标(电压越高,有害气体浓度越高)。
3.2.3 光敏传感器电路
光敏传感器采用光敏电阻与分压电路组成,用于采集衣柜内光照强度,输出模拟信号。光敏电阻的阻值随光照强度变化而变化,光照越强,阻值越小;光照越弱,阻值越大,通过分压电路可将阻值变化转换为电压变化,再通过ADC转换为数字信号。
电路设计如下:光敏电阻一端接3.3V电源,另一端与10KΩ定值电阻串联后接地,串联节点连接至STM32单片机的ADC输入引脚(如PA2),同时并联一个0.1μF电容滤波。光照强度变化时,光敏电阻阻值变化,导致串联节点电压变化,STM32通过ADC采集该电压值,解析得到光照强度信息,判断是否需要开启LED灯。
3.2.4 光电红外传感器电路
光电红外传感器采用反射式红外传感器,用于检测柜门状态(开启/关闭),输出数字信号(高电平/低电平),接口简单,响应迅速。当柜门关闭时,红外光被柜门反射,传感器接收反射光,输出低电平;当柜门开启时,红外光无法反射,传感器输出高电平。
电路设计如下:传感器VCC引脚接5V电源,GND引脚接地,OUT引脚(输出)连接至STM32单片机的GPIO引脚(如PA3)。为防止传感器输出信号干扰单片机,可在OUT引脚与GPIO引脚之间串联一个1KΩ限流电阻。STM32通过检测OUT引脚的电平状态,判断柜门是否关闭,为UV消毒灯、LED灯的控制提供依据。
3.3 执行器模块电路设计
3.3.1 继电器驱动电路
加热片、风扇、UV消毒灯、LED灯等执行机构工作电压多为220V交流电或12V直流电,而STM32单片机GPIO引脚输出电压为3.3V,无法直接驱动这些执行机构,需通过继电器实现电平转换与隔离驱动,防止高压电路对单片机造成损坏。
本系统选用5V继电器,采用NPN三极管(S8050)驱动继电器工作,电路设计如下:STM32单片机GPIO引脚(如PB0)通过1KΩ限流电阻连接至S8050三极管基极,三极管发射极接地,集电极连接至继电器线圈一端,继电器线圈另一端接5V电源。为保护三极管与单片机,在继电器线圈两端反向并联一个续流二极管(1N4007),用于吸收线圈断电时产生的反向电动势。继电器的常开触点连接执行机构与220V/12V电源,当单片机输出高电平时,三极管导通,继电器线圈通电,常开触点闭合,执行机构工作;输出低电平时,三极管截止,继电器断电,执行机构停止工作。每个执行机构对应一个继电器驱动电路,确保独立控制。
3.3.2 各执行机构具体电路
(1)加热片与风扇电路
加热片选用12V低压加热片,功率50W,适合衣柜内低温加热;风扇选用12V直流风扇,用于通风散热、降低湿度。两者均通过继电器驱动,继电器常开触点一端接12V电源,另一端接加热片/风扇,加热片/风扇另一端接地。当继电器闭合时,12V电源接通,加热片/风扇工作;断开时停止工作。为防止过载,电路中可串联一个保险丝(1A)。
(2)UV消毒灯与LED灯电路
UV消毒灯选用12V低压UV-C消毒灯,波长254nm,具备杀菌消毒功能;LED灯模块选用12V大功率LED灯,提供照明。两者通过继电器驱动,电路设计与加热片一致,需注意UV消毒灯仅在柜门关闭时开启,通过光电红外传感器信号联动控制,确保用户安全。
(3)有源蜂鸣器电路
有源蜂鸣器内置振荡电路,通电即可发出报警声音,工作电压5V,无需额外驱动电路。电路设计如下:STM32单片机GPIO引脚(如PB1)通过1KΩ限流电阻连接至有源蜂鸣器正极,蜂鸣器负极接地。当空气质量超标时,单片机输出高电平,蜂鸣器通电报警;恢复正常后,输出低电平,报警停止。
(4)步进电机驱动电路
步进电机用于驱动挂衣架升降,选用42步进电机,工作电压12V,扭矩适中,精度高,适合精准升降控制。步进电机需通过驱动模块(如ULN2003)驱动,ULN2003是一款高耐压、大电流达林顿管阵列,可直接驱动步进电机,且能与STM32单片机直接接口。
电路设计如下:ULN2003的VCC引脚接5V电源,GND引脚接地,IN1~IN4引脚分别连接至STM32单片机的GPIO引脚(如PB2~PB5),OUT1~OUT4引脚连接至步进电机的四相绕组。步进电机的VCC引脚接12V电源,GND引脚接地。STM32通过IN1~IN4引脚输出脉冲信号,控制ULN2003驱动步进电机转动,通过改变脉冲频率调节电机转速,通过改变脉冲顺序控制电机正反转(实现挂衣架升降),通过控制脉冲数量控制升降高度,确保升降到位后精准停止。
3.4 显示与通信模块电路设计
3.4.1 OLED屏幕电路
本系统选用0.96英寸OLED屏幕,分辨率128×64,采用I2C通信方式,接口简单,功耗低,显示清晰,可显示多行文本与图形,适合用于环境参数与系统状态显示。OLED屏幕工作电压3.3V,兼容STM32单片机的I2C接口。
电路设计如下:OLED屏幕的VCC引脚接3.3V电源,GND引脚接地,SDA引脚(数据线)连接至STM32单片机的I2C1_SDA引脚(如PB7),SCL引脚(时钟线)连接至STM32单片机的I2C1_SCL引脚(如PB6)。为提高通信稳定性,SDA与SCL引脚可分别通过4.7KΩ上拉电阻接3.3V。STM32通过I2C总线发送控制指令与显示数据,驱动OLED屏幕显示温湿度、空气质量、光照强度、时间、工作模式、执行机构状态等信息,实现数据实时刷新。
3.4.2 BT04A蓝牙模块电路
BT04A是一款基于HC-04蓝牙模块的无线通信模块,支持蓝牙2.0协议,采用UART通信方式,可实现与手机APP的数据交互,工作电压3.3V,通信距离可达10m,满足家庭场景下的远程控制需求。
电路设计如下:BT04A的VCC引脚接3.3V电源,GND引脚接地,TXD引脚(发送端)连接至STM32单片机的UART1_RX引脚(如PA10),RXD引脚(接收端)连接至STM32单片机的UART1_TX引脚(如PA9)。为实现双向通信,需确保TXD与RXD交叉连接。BT04A默认波特率为9600bps,可通过AT指令配置波特率、设备名称等参数,STM32通过UART接口与蓝牙模块收发数据,将环境参数上传至手机APP,接收APP下发的远程控制指令。
3.5 按键控制模块电路设计
本系统设置6个功能按键,分别为模式切换键、确认键、加键、减键、菜单键、返回键,用于实现模式切换、参数调节、菜单导航等功能。按键采用独立按键设计,接口简单,抗干扰能力强。
电路设计如下:每个按键一端连接至STM32单片机的GPIO引脚(如PC0~PC5),另一端接地,同时每个GPIO引脚通过10KΩ上拉电阻接3.3V。无按键按下时,GPIO引脚为高电平;按键按下时,GPIO引脚接地,变为低电平。STM32通过检测GPIO引脚的电平变化,识别按键动作,为防止按键抖动(机械按键按下与松开时电平不稳定),软件中需加入延时消抖处理,确保按键指令准确识别。
3.6 电源模块电路设计
系统各模块供电需求不同,需设计多输出电压的电源模块,将220V交流电转换为5V、3.3V、12V直流电,具体设计如下:
- 220V转12V:选用12V/1A开关电源模块,将220V交流电转换为12V直流电,为加热片、风扇、UV消毒灯、LED灯、步进电机供电。
- 12V转5V:通过LM7805稳压器将12V电压转换为5V直流电,为继电器、有源蜂鸣器、MQ-135传感器加热回路供电。LM7805具备过流、过热保护功能,输出电流可达1.5A,满足供电需求。
- 5V转3.3V:通过AMS1117-3.3V稳压器将5V电压转换为3.3V直流电,为STM32单片机、蓝牙模块、OLED屏幕、DHT11传感器、光敏传感器、光电红外传感器供电。
各电源输出端均加入电容滤波电路,确保输出电压稳定,减少电压波动对各模块的影响。
3.7 系统整体电路原理图
基于上述各模块电路设计,绘制系统整体电路原理图,将核心控制模块、传感模块、执行器模块、显示模块、通信模块、按键控制模块、电源模块整合,确保各模块接口匹配、布线合理,避免信号干扰。整体电路原理图以STM32F103C8T6为核心,各模块通过GPIO、ADC、UART、I2C等接口与单片机连接,实现数据传输与控制指令交互。
3.8 本章小结
本章详细设计了系统各硬件模块的电路,包括核心控制模块的最小系统电路、各传感模块的接口电路、执行器模块的驱动电路、显示与通信模块的接口电路、按键控制模块电路及电源模块电路,明确了各模块的选型依据与电路原理,绘制了整体电路原理图,为系统硬件搭建与后续软件开发提供了硬件基础。
第四章 系统软件设计
4.1 软件开发环境与工具
4.1.1 开发环境
本系统软件基于Keil MDK-ARM V5开发环境开发,Keil MDK是一款针对ARM Cortex-M系列单片机的集成开发环境,支持C语言、汇编语言编程,具备代码编辑、编译、链接、调试等功能,集成了丰富的库文件与工具链,可快速实现嵌入式程序开发与调试。
4.1.2 开发工具与资源
- 编译器:ARM Compiler 5,支持C99标准,编译效率高,生成的代码体积小、运行速度快。
- 调试工具:ST-Link V2仿真器,通过SWD接口与STM32单片机连接,实现程序下载、在线调试、断点设置、变量监控等功能,便于排查程序错误。
- 库文件:STM32F103系列标准外设库,提供了GPIO、ADC、UART、I2C、RTC等外设的驱动函数,简化程序开发流程,提高开发效率。
- APP开发工具:蓝牙调试助手APP(手机端),用于接收蓝牙传输的环境参数,发送远程控制指令,无需额外开发专用APP,降低开发成本。
4.2 系统软件总体设计
系统软件采用模块化设计思想,以主程序为核心,调用各功能模块子程序,实现系统的整体功能。软件总体流程如下:系统通电初始化完成后,进入自动模式,循环采集环境参数,解析按键与蓝牙指令,根据工作模式与参数阈值控制执行机构动作,更新OLED屏幕显示,实现各功能的协同工作。
软件模块分为主程序模块、传感采集模块、逻辑控制模块、显示驱动模块、蓝牙通信模块、按键处理模块、定时任务模块,各模块相互独立又相互协作,通过函数调用实现数据交互与指令传递,便于程序的编写、调试、修改与扩展。
4.3 主程序设计
主程序是系统软件的核心,负责统筹各功能模块的工作,实现系统的整体流程控制,主程序流程如下:
- 调用传感采集模块子程序,采集温湿度、空气质量、光照强度、柜门状态数据,对数据进行滤波、校准处理。
- 调用蓝牙通信模块子程序,将采集的环境参数上传至手机APP,接收APP下发的指令并解析。
- 调用按键处理模块子程序,检测按键动作,解析按键指令(模式切换、参数调节、手动控制)。
- 调用逻辑控制模块子程序,根据工作模式、环境参数、用户指令,判断是否触发执行机构动作,驱动相应执行器工作。
- 调用显示驱动模块子程序,更新OLED屏幕显示的环境参数、系统状态、执行机构工作状态。
- 调用定时任务模块子程序,检查是否到达UV消毒定时时间,执行定时消毒任务;控制各执行机构的工作时长,防止长时间工作导致故障。
主程序通过无限循环实现任务的持续执行,各子程序执行周期短,确保系统响应迅速,满足实时控制需求。
4.4 各功能模块子程序设计
4.4.1 传感采集模块子程序
传感采集模块子程序负责驱动各传感器工作,采集环境参数,对数据进行处理,确保数据准确性,子程序流程如下:
4.4.2 逻辑控制模块子程序
逻辑控制模块子程序是系统功能实现的核心,根据工作模式、环境参数、用户指令,驱动执行机构动作,分为自动模式控制与手动模式控制,子程序流程如下:
(1)自动模式控制
(2)手动模式控制
4.4.3 显示驱动模块子程序
显示驱动模块子程序负责驱动OLED屏幕工作,将环境参数、系统状态等信息格式化显示,子程序流程如下:
显示数据每1秒刷新一次,确保信息实时准确,同时避免频繁刷新导致屏幕闪烁。
4.4.4 蓝牙通信模块子程序
蓝牙通信模块子程序负责STM32单片机与手机APP的数据交互,实现环境参数上传与远程指令接收,子程序流程如下:
网硕互联帮助中心







评论前必须登录!
注册