基于STM32的机智云版智能厨房安全系统(完整项目)
本文设计了一款基于STM32F103C8T6单片机的智能厨房安全系统,通过多传感器融合检测厨房环境参数,实现自动联动控制与远程监控功能。系统整合温湿度、烟雾、一氧化碳、火焰和人体检测模块,采用OLED实时显示数据,通过ESP8266模块接入机智云平台实现手机APP远程交互。测试表明,该系统能准确识别各类安全隐患并自动触发相应处置措施,支持手动/自动模式切换和参数阈值调节,具有响应快速、运行稳定、操
基于STM32的机智云版智能厨房安全系统设计
摘要
厨房作为家庭生活中高频使用的场景,其安全问题直接关系到人们的生命财产安全。传统厨房安全防护多依赖人工监测,存在响应滞后、监测不全面、无法远程管控等弊端,难以有效应对燃气泄漏、火灾、温湿度异常等安全隐患。本文设计了一款基于STM32F103C8T6单片机的机智云版智能厨房安全系统,整合多参数检测、OLED实时显示、自动/手动控制、机智云APP远程交互等核心功能,实现厨房安全的全方位监测与智能化管控。该系统以STM32F103C8T6为核心控制单元,通过各类传感器采集厨房环境温湿度、烟雾浓度、一氧化碳浓度、火焰信号及人体信号,借助OLED屏幕实时呈现关键参数,通过ESP8266 WIFI模块接入机智云平台,实现手机APP远程查看环境数据、下发控制指令及修改参数阈值。系统支持自动与手动模式切换,自动模式下可根据检测参数自动触发风扇、水泵、舵机(模拟阀门)、LED灯及蜂鸣器的联动动作,手动模式下可通过按键直接控制执行设备。测试结果表明,该系统运行稳定、检测精准、响应迅速,各项功能均满足设计要求,操作便捷、可靠性高,能够有效防范厨房各类安全隐患,提升厨房安全管理的智能化水平,具有较高的实际应用价值与推广前景。
关键词:STM32F103C8T6;智能厨房安全;机智云APP;WIFI通信;多传感器检测;自动控制

第一章 绪论
1.1 研究背景与意义
随着居民生活水平的提升,厨房的功能日益丰富,但同时也成为家庭安全事故的高发区域。厨房中燃气泄漏(一氧化碳超标)、火灾、温湿度异常等安全隐患,极易引发中毒、爆炸、火灾等严重事故,威胁人们的生命财产安全。据统计,家庭火灾中近40%源于厨房操作不当或设备故障,其中燃气泄漏、烹饪过热引发的火灾占比最高;而一氧化碳中毒事故中,厨房燃气不完全燃烧是主要诱因。
传统厨房安全防护手段较为单一,多采用独立的燃气报警器、烟雾报警器等设备,仅能实现单一隐患的报警提醒,无法实现多参数综合监测,且缺乏自动联动控制与远程管控功能。当用户不在家时,无法实时掌握厨房环境状态,也无法远程处理突发安全隐患,往往导致事故扩大。基于此,本文设计一款基于STM32的机智云版智能厨房安全系统,结合嵌入式技术、传感器技术、WIFI通信技术与云平台技术,实现厨房多安全参数的实时监测、自动联动控制与远程管控,能够有效弥补传统防护手段的不足,及时预警并处置安全隐患,保障厨房使用安全,具有重要的理论研究意义与实际应用价值。

1.2 国内外研究现状
国外智能厨房安全系统产业起步较早,技术体系较为成熟,产品多集成了多参数检测、自动联动控制、远程监控等功能,部分高端产品还支持语音控制、AI异常识别等特性,通过WIFI或蓝牙接入云平台,实现手机APP远程管控。国外产品检测精度高、运行稳定,但价格昂贵,且部分功能与国内厨房使用场景适配性不足,难以在普通家庭中普及。
国内智能厨房安全设备市场近年来发展迅速,众多企业与科研机构纷纷布局相关产品,产品性价比不断提升,功能逐渐完善。目前国内产品多以STM32系列单片机为控制核心,结合各类传感器与无线通信模块,实现基本的检测与报警功能,但部分产品存在检测参数单一、联动逻辑不完善、远程通信不稳定、与云平台兼容性差等问题,且缺乏灵活的模式切换与阈值调节功能,难以满足不同用户的个性化需求。机智云作为国内领先的物联网云平台,具有操作便捷、兼容性强、开发成本低等优势,将其与STM32单片机结合,设计一款适配国内厨房场景、功能全面的智能安全系统,具有广阔的市场前景。

1.3 研究内容与目标
本文的主要研究内容是设计一款基于STM32F103C8T6的机智云版智能厨房安全系统,具体包括系统总体方案设计、硬件选型与电路设计、软件逻辑设计、系统调试与测试等方面,实现预设的所有功能,确保系统运行稳定、操作便捷,且不包含任何代码实现。
研究目标如下:
- 完成系统硬件选型与电路设计,严格按照给定的元器件清单选用适配的元器件,确保各模块协同工作,实现厨房环境温湿度、烟雾浓度、一氧化碳浓度、火焰信号、人体信号的精准采集;
- 设计合理的软件逻辑,实现自动模式与手动模式的顺畅切换,自动模式下完成各类安全隐患的自动识别与联动控制,手动模式下实现按键控制执行设备的开关;
- 实现ESP8266 WIFI模块与机智云平台的稳定连接,完成环境数据上报与控制指令下发,实现手机APP远程查看环境信息、控制执行设备及修改参数阈值;
- 通过OLED屏幕实时、清晰地显示各类环境参数、系统工作模式及设备运行状态,支持通过按键调节各检测参数的阈值;
- 通过系统调试与测试,确保系统运行稳定、检测精准、响应迅速,各项功能均能正常实现,满足用户的实际使用需求。
1.4 论文结构安排
本文共分为6章,具体结构安排如下:
- 第一章为绪论,阐述研究背景与意义、国内外研究现状、研究内容与目标以及论文结构安排;
- 第二章为系统总体方案设计,介绍系统的整体架构、设计原则以及功能模块划分,明确各模块的核心功能与工作逻辑;
- 第三章为系统硬件设计,详细介绍各元器件的选型依据、各功能模块的电路设计以及硬件整体连接关系;
- 第四章为系统软件设计,阐述软件设计思路、主程序流程以及各功能模块的逻辑实现,重点说明ESP8266 WIFI模块与机智云APP的接入方法(不包含代码);
- 第五章为系统调试与测试,介绍调试环境、调试过程以及各项功能的测试结果与分析,验证系统的可行性与稳定性;
- 第六章为总结与展望,总结本文的研究成果,分析系统存在的不足,并对未来的改进方向进行展望。
第二章 系统总体方案设计
2.1 系统整体架构
本智能厨房安全系统以STM32F103C8T6单片机为核心控制单元,采用分层设计理念,分为硬件层、软件层与WIFI通信层三个部分,整体架构如图2-1所示(此处可插入架构图,论文中可预留图位)。
硬件层是系统的基础,主要包括主控单元、多参数检测模块、显示模块、执行模块、按键模块、WIFI通信模块、报警模块,负责环境参数采集、指令执行、数据显示、WIFI传输、报警提醒;软件层运行于STM32单片机中,负责处理传感器采集的数据、解析用户按键指令与机智云APP下发的指令,控制执行模块动作,实现模式切换、阈值调节、自动联动控制等功能,并与WIFI模块进行数据交互;WIFI通信层采用ESP8266 WIFI模块,负责实现单片机与机智云平台的无线通信,完成环境数据上报与控制指令下发,为用户提供远程监测与控制入口,通过机智云APP实现手机与系统的联动。
2.2 系统设计原则
为确保系统的实用性、可靠性、经济性与可扩展性,结合厨房安全监测的使用场景与用户需求,本次设计遵循以下原则:
- 实用性原则:贴合厨房实际安全需求,实现多参数检测、自动联动、手动控制、远程管控等核心功能,操作简洁易懂,无需专业知识即可上手使用,适配普通家庭厨房场景;
- 可靠性原则:选用性能稳定、口碑良好的元器件,优化电路设计与软件逻辑,减少故障发生,确保系统长期稳定运行,尤其保证检测精度与联动控制的可靠性,避免误报警、漏报警;
- 经济性原则:在满足功能需求与性能要求的前提下,选用低成本、高性价比的元器件,降低系统整体成本,便于批量推广与普通家庭使用;
- 可扩展性原则:系统设计预留一定的接口,便于后续增加功能模块(如语音报警、视频监控等),适应不同用户的个性化需求与智能厨房设备的发展趋势;
- 兼容性原则:确保ESP8266 WIFI模块与机智云平台、手机APP的良好兼容性,保证远程通信稳定,数据传输顺畅。
2.3 系统功能模块划分
根据系统的设计目标与功能需求,结合给定的元器件清单,将系统划分为以下8个功能模块,各模块协同工作,实现智能厨房安全系统的全部预设功能:
- 主控模块:以STM32F103C8T6单片机为核心,是系统的“大脑”,负责接收各模块的反馈信号,解析按键指令与机智云APP指令,控制执行模块动作,处理检测数据,实现各模块的协同工作;
- 多参数检测模块:由DHT11温湿度传感器、MQ2烟雾传感器、MQ7一氧化碳传感器、火焰传感器、光电红外传感器组成,负责采集厨房环境温湿度、烟雾浓度、一氧化碳浓度、火焰信号、人体信号,为系统控制提供数据支撑;
- 显示模块:采用OLED屏幕,负责实时显示当前厨房环境温湿度、烟雾浓度、一氧化碳浓度、系统工作模式、各参数阈值、执行设备运行状态等信息,方便用户现场查看;
- 执行模块:由继电器、水泵、风扇模块、舵机、LED灯组成,继电器用于控制水泵、风扇的启停,舵机用于模拟阀门的开关,LED灯用于厨房照明,根据系统指令实现相应动作;
- 按键模块:负责实现模式切换(自动/手动)、进入设置界面、参数阈值调节(加/减)、手动控制水泵、风扇、LED灯、舵机(阀门)的开关等操作,是用户与系统现场交互的主要方式;
- WIFI通信模块:采用ESP8266 WIFI模块,负责实现单片机与机智云平台的无线通信,上传厨房环境数据,接收机智云APP下发的控制指令,实现远程监测与控制;
- 报警模块:由有源蜂鸣器组成,当系统检测到安全隐患(温度超标、烟雾超标、一氧化碳超标、火焰信号)时,自动发出报警声音,提醒用户及时处理;
- 电源模块:为整个系统提供稳定的供电,确保各模块正常工作,采用5V电源输入,通过稳压芯片转换为3.3V,为单片机、OLED屏幕、传感器等模块供电。
2.4 系统工作流程
系统上电后,首先完成各模块的初始化,包括单片机外设、传感器、OLED屏幕、ESP8266 WIFI模块等的初始化;初始化完成后,OLED屏幕显示系统启动信息,ESP8266模块自动连接指定WIFI并接入机智云平台,系统默认进入自动模式,开始实时采集厨房环境参数并在OLED屏幕显示,同时将数据上传至机智云APP。
自动模式下,系统实时分析采集到的环境参数,根据预设阈值触发相应的联动动作:检测到人体信号时,自动开启LED灯;温度高于阈值时,开启风扇并启动蜂鸣器报警;烟雾浓度或一氧化碳浓度超过阈值时,开启风扇、关闭阀门(舵机动作)并启动蜂鸣器报警;检测到火焰信号时,关闭阀门、开启水泵并启动蜂鸣器报警。
用户可通过按键切换至手动模式,手动模式下,系统停止自动联动控制,用户可通过按键直接控制水泵、风扇、LED灯、舵机(阀门)的开关;同时,用户可通过按键进入设置界面,调节各检测参数的阈值,调节后的阈值实时同步至OLED屏幕与机智云APP。
用户可通过手机机智云APP,实时查看厨房环境参数、系统工作模式及设备运行状态,也可下发控制指令,切换系统模式、控制执行设备开关、修改参数阈值,指令下发后,系统立即响应并执行相应动作,同时将执行结果反馈至APP。
第三章 系统硬件设计
3.1 硬件选型
硬件选型是系统设计的基础,结合系统功能需求、性能要求与经济性原则,严格按照给定的元器件清单进行选型,确保各元器件适配性良好、性能稳定,具体选型如下:
3.1.1 主控单元:STM32F103C8T6单片机
STM32F103C8T6是ST公司推出的一款基于ARM Cortex-M3内核的32位微控制器,主频最高可达72MHz,拥有丰富的IO接口、ADC接口、UART接口等,能够满足系统多传感器数据采集、多设备控制、WIFI通信等需求。该单片机体积小、功耗低、性能稳定、性价比高,广泛应用于嵌入式系统设计中,非常适合作为本智能厨房安全系统的主控单元。其最小系统需满足供电、时钟、复位等基本需求,供电电压为3.3V,采用外部8MHz晶体振荡器提供时钟信号,配置复位按键实现系统复位功能,同时设置正确的启动模式,确保单片机正常工作。
3.1.2 多参数检测模块元器件
- DHT11温湿度传感器:采用单总线通信方式,能够同时采集厨房环境的温度与湿度,测量范围为温度0-50℃、湿度20%-90%RH,精度满足厨房环境监测需求,接线简单、成本低廉。该传感器通过DATA引脚与单片机进行串行单向数据传输,一次通讯时间约4ms,数据格式包含湿度、温度数据与校验和,确保数据采集的准确性。
- MQ2烟雾传感器:专门用于检测空气中的烟雾浓度,同时可检测可燃气体(如天然气、液化气)浓度,采用模拟信号输出,通过ADC接口与单片机连接,输出电压随烟雾浓度升高而增大。该传感器灵敏度可调,响应迅速,抗干扰能力强,适合厨房烟雾与可燃气体检测场景。
- MQ7一氧化碳传感器:用于检测厨房中一氧化碳的浓度,采用模拟信号输出,通过ADC接口与单片机连接,输出电压随一氧化碳浓度升高而增大,能够准确检测燃气不完全燃烧产生的一氧化碳,避免中毒事故。该传感器测量精度高、稳定性好,适合家庭厨房使用。
- 火焰传感器:采用红外检测原理,能够检测火焰产生的红外信号,当检测到火焰时,输出低电平信号,无火焰时输出高电平信号,通过GPIO接口与单片机连接,响应迅速,能够及时发现厨房火灾隐患。
- 光电红外传感器:采用漫反射式红外传感器,当有人体靠近时,传感器输出低电平信号,无人靠近时输出高电平信号,通过GPIO接口与单片机连接,实现人体信号的检测,为LED灯自动开启提供依据。该传感器检测距离可调,抗干扰能力强,适合厨房人体感应场景。
3.1.3 显示模块:OLED屏幕
选用0.96英寸OLED屏幕,采用I2C通信方式,具有分辨率高、功耗低、响应快、视角广、显示清晰等优点,能够实时显示厨房环境温湿度、烟雾浓度、一氧化碳浓度、系统工作模式、各参数阈值、执行设备运行状态等信息。该屏幕体积小、重量轻,便于安装在厨房控制面板上,方便用户现场查看系统状态与相关参数,无需额外驱动电路,接线简单,与STM32单片机适配性良好。
3.1.4 执行模块元器件
- 继电器:选用5V继电器模块,共4路,分别用于控制水泵、风扇、LED灯、舵机的电源开关,通过GPIO接口与单片机连接,单片机输出控制信号控制继电器的吸合与断开,进而控制执行设备的启停。继电器能够实现弱电控制强电,保护单片机,确保执行设备稳定工作。
- 水泵:选用小型直流水泵,工作电压为5V,通过继电器与单片机连接,由继电器控制其启停,用于火灾发生时喷水灭火,体积小、功耗低、出水稳定,适合厨房火灾应急处置。
- 风扇模块:选用小型散热风扇,工作电压为5V,通过继电器与单片机连接,由继电器控制其启停,用于厨房通风换气,降低室内温度、烟雾浓度与一氧化碳浓度,缓解安全隐患。
- 舵机:选用SG90舵机,工作电压为5V,通过GPIO接口与单片机连接,用于模拟厨房燃气阀门的开关,舵机旋转一定角度实现阀门的开启与关闭,控制精度高、响应迅速,能够在燃气泄漏时及时关闭阀门,阻止隐患扩大。
- LED灯:选用普通LED灯,工作电压为3.3V,通过继电器与单片机连接,用于厨房照明,当检测到人体信号或用户手动控制时开启,亮度适中,能耗低,适合厨房使用。
3.1.5 按键模块:独立按键
选用6个独立按键,分别用于模式切换(自动/手动)、进入设置界面、参数阈值调节(加/减)、手动控制水泵开关、手动控制风扇开关、手动控制LED灯与舵机(阀门)开关,通过GPIO接口与单片机连接。按键采用高有效方式连接,无需额外添加下拉电阻,可通过软件配置单片机内部下拉电阻,实现按键信号的精准检测,操作简单、可靠,能够满足用户现场操作的需求。
3.1.6 WIFI通信模块:ESP8266模块
选用ESP8266 WIFI模块(如ESP-01S),支持WIFI 802.11 b/g/n协议,采用UART通信方式与单片机连接,能够实现与机智云平台的稳定无线通信,上传厨房环境数据,接收机智云APP下发的控制指令。该模块体积小、功耗低、通信距离远(可达10米),配置简单,能够快速接入机智云平台,是实现远程控制的核心元器件。
3.1.7 报警模块:有源蜂鸣器
选用有源蜂鸣器,工作电压为3.3V,通过GPIO接口与单片机连接,当系统检测到安全隐患(温度超标、烟雾超标、一氧化碳超标、火焰信号)时,单片机输出控制信号,触发蜂鸣器发出连续的报警声音,提醒用户及时处理安全隐患。该蜂鸣器无需额外驱动电路,响应迅速,音量可调,适合家庭厨房报警场景。
3.1.8 电源模块:稳压模块
选用LM1117低压差线性调整器作为稳压芯片,将5V直流电源转换为3.3V稳定电压,为STM32单片机、OLED屏幕、传感器、ESP8266模块等需3.3V供电的模块供电;同时保留5V电源输出,为继电器、水泵、风扇、舵机等需5V供电的模块供电。电源模块配置100nF旁路电容,滤除电源噪声,保证供电稳定性,避免电压波动影响系统运行。
3.2 硬件电路设计
系统硬件电路主要包括主控单元电路、多参数检测模块电路、显示模块电路、执行模块电路、按键模块电路、WIFI通信模块电路、报警模块电路、电源模块电路,各电路相互独立又相互关联,通过导线连接形成完整的硬件系统,电路设计遵循简洁、可靠、抗干扰的原则,确保各模块稳定工作。
3.2.1 主控单元电路
STM32F103C8T6单片机最小系统电路包括供电电路、时钟电路、复位电路与启动模式配置电路。供电电路采用LM1117稳压芯片,将5V输入电压转换为3.3V稳定电压,为单片机供电,同时在供电引脚旁配置100nF旁路电容,滤除电源噪声;时钟电路采用外部8MHz晶体振荡器,搭配两个22pF匹配电容与1MΩ反馈电阻,为单片机提供稳定的时钟信号;复位电路采用轻触按键复位,利用单片机内部上拉电阻,无需额外添加上拉电阻,按下按键时实现系统复位;启动模式配置电路通过两个10kΩ电阻将BOOT0与BOOT1引脚下拉到地,默认设置为主Flash存储器启动模式,确保单片机上电后正常加载程序。
3.2.2 多参数检测模块电路
多参数检测模块各传感器电路设计如下:
- DHT11温湿度传感器:VCC引脚接3.3V电源,GND引脚接地,DATA引脚通过10kΩ上拉电阻连接到单片机的GPIO引脚,实现温湿度数据的采集,上拉电阻用于保证数据传输的稳定性;
- MQ2烟雾传感器与MQ7一氧化碳传感器:两个传感器的VCC引脚接5V电源,GND引脚接地,AO引脚(模拟输出)分别连接到单片机的两个ADC接口,通过检测模拟电压信号的变化,实现烟雾浓度与一氧化碳浓度的采集,传感器的VCC引脚旁配置电容,保证供电稳定;
- 火焰传感器:VCC引脚接3.3V电源,GND引脚接地,DO引脚(数字输出)连接到单片机的GPIO引脚,输出低电平表示检测到火焰,高电平表示无火焰,实现火焰信号的检测;
- 光电红外传感器:VCC引脚接3.3V电源,GND引脚接地,OUT引脚连接到单片机的GPIO引脚,输出低电平表示有人体靠近,高电平表示无人靠近,实现人体信号的检测。
3.2.3 显示模块电路
OLED屏幕采用I2C通信方式,其SDA引脚与SCL引脚分别连接到单片机的两个GPIO引脚,VCC引脚接3.3V电源,GND引脚接地,无需额外驱动电路,通过I2C通信协议,单片机向OLED屏幕发送显示指令与数据,实现各类信息的实时显示,接线简单、功耗低。
3.2.4 执行模块电路
执行模块电路包括继电器控制电路、水泵控制电路、风扇控制电路、舵机控制电路、LED灯控制电路:
- 继电器控制电路:4路继电器模块的VCC引脚接5V电源,GND引脚接地,IN1-IN4引脚分别连接到单片机的四个GPIO引脚,单片机输出高电平时,继电器吸合,对应执行设备通电工作;输出低电平时,继电器断开,执行设备停止工作;
- 水泵、风扇、LED灯控制电路:水泵、风扇、LED灯的正极分别连接到对应继电器的常开端,负极接地,通过继电器的吸合与断开,实现设备的启停控制;
- 舵机控制电路:舵机的VCC引脚接5V电源,GND引脚接地,信号线连接到单片机的GPIO引脚,单片机通过输出PWM脉冲信号,控制舵机的旋转角度,实现阀门的开启与关闭(如旋转0°为开启,旋转90°为关闭)。
3.2.5 按键模块电路
六个独立按键的一端分别连接到单片机的六个GPIO引脚,另一端共同接地,通过软件配置单片机内部下拉电阻,当按键按下时,GPIO引脚检测到高电平信号,单片机通过检测电平变化识别按键操作,实现模式切换、阈值调节、手动控制等功能,电路设计简洁、可靠,无需额外添加电阻元件。
3.2.6 WIFI通信模块电路
ESP8266 WIFI模块的VCC引脚接3.3V电源,GND引脚接地,TXD引脚连接到单片机的RX引脚,RXD引脚连接到单片机的TX引脚,通过UART通信协议,实现单片机与模块之间的数据交互,进而实现与机智云平台的通信。需注意模块与单片机的共地,避免通信干扰,同时在模块电源引脚旁配置100nF旁路电容,保证模块供电稳定。
3.2.7 报警模块电路
有源蜂鸣器的VCC引脚接3.3V电源,GND引脚通过GPIO引脚接地,当单片机输出低电平信号时,蜂鸣器形成回路,发出提醒声音;输出高电平时,蜂鸣器停止工作。电路中串联一个220Ω限流电阻,保护蜂鸣器与单片机IO口。
3.2.8 电源模块电路
电源模块采用5V直流电源输入,通过LM1117稳压芯片将5V电压转换为3.3V,输出端配置100nF旁路电容滤除噪声,为单片机、传感器、OLED屏幕、ESP8266模块等供电;同时保留5V电源输出端,为继电器、水泵、风扇、舵机等设备供电,电源输入端配置保险丝,防止短路损坏元器件。
3.3 硬件连接总览
系统硬件连接采用模块化设计,各模块通过导线与STM32F103C8T6单片机的对应引脚连接,确保各模块能够正常通信与工作,具体连接关系如下(可根据实际引脚分配调整,均选用单片机空闲IO口与ADC接口):
- DHT11温湿度传感器:DATA → PA0
- MQ2烟雾传感器:AO → PA1(ADC接口)
- MQ7一氧化碳传感器:AO → PA2(ADC接口)
- 火焰传感器:DO → PA3
- 光电红外传感器:OUT → PA4
- OLED屏幕:SDA → PB0,SCL → PB1
- 继电器模块:IN1(水泵)→ PB2,IN2(风扇)→ PB3,IN3(LED灯)→ PB4,IN4(舵机)→ PB5
- 按键:K1(模式切换)→ PC0,K2(进入设置)→ PC1,K3(加)→ PC2,K4(减)→ PC3,K5(水泵/风扇)→ PC4,K6(LED/舵机)→ PC5
- ESP8266 WIFI模块:TXD → PC6,RXD → PC7
- 有源蜂鸣器:GND → PD0
- 舵机:信号线 → PD1
- 水泵、风扇、LED灯:通过对应继电器连接到5V电源与GND
硬件连接完成后,需对各模块进行绝缘处理,避免引脚短路,确保系统硬件的安全性与可靠性;同时检查各元器件的接线是否正确,避免接反电源导致元器件损坏。
第四章 系统软件设计
4.1 软件设计思路
系统软件设计采用模块化设计思想,以STM32F103C8T6单片机为核心,按照功能模块划分软件模块(多参数检测模块、显示模块、模式切换与控制模块、阈值调节模块、WIFI通信模块、报警模块),各模块独立设计、协同工作,便于软件的调试、修改与扩展,且不包含任何代码实现,仅阐述逻辑设计。
软件设计的核心思路是:系统上电后,首先完成各模块的初始化,包括单片机IO口、ADC、UART、I2C等外设的初始化,以及各传感器、OLED屏幕、ESP8266 WIFI模块等的初始化;初始化完成后,OLED屏幕显示系统启动信息,ESP8266模块自动连接WIFI并接入机智云平台,系统默认进入自动模式,LED灯处于关闭状态,风扇、水泵、舵机(阀门)处于初始状态(风扇关闭、水泵关闭、阀门开启);在主循环中,系统实时采集各检测参数(温湿度、烟雾浓度、一氧化碳浓度、火焰信号、人体信号),对采集到的数据进行处理与校准;然后判断当前工作模式(自动模式或手动模式),根据模式解析按键指令与机智云APP指令,控制执行模块动作,同时将检测数据上传到机智云平台,通过OLED屏幕显示相关信息;当自动模式下检测到安全隐患时,启动相应的联动控制与报警功能;循环执行上述流程,确保系统持续稳定运行。
4.2 主程序设计
主程序是系统软件的核心,负责统筹各模块的工作,协调各模块之间的数据交互与指令执行,其流程如下,不包含任何代码:
1. 系统上电,初始化系统时钟、单片机外设(IO口、ADC、UART、I2C);
2. 初始化各功能模块:多参数检测模块(DHT11、MQ2、MQ7、火焰传感器、光电红外传感器)、OLED显示模块、ESP8266 WIFI模块、按键模块、执行模块、报警模块;
3. OLED屏幕显示系统启动信息(如“智能厨房安全系统启动中...”),ESP8266模块启动并连接预设WIFI,接入机智云平台,连接成功后在OLED屏幕显示“机智云连接成功”,延迟2秒后切换到正常显示界面;
4. 系统进入主循环,首先调用检测模块函数,采集各参数(温湿度、烟雾浓度、一氧化碳浓度、火焰信号、人体信号),对数据进行校准与处理,转换为可显示、可判断的实际数值(如烟雾浓度、一氧化碳浓度转换为ppm单位);
5. 调用显示模块函数,将处理后的检测参数、当前系统模式、各参数阈值、执行设备运行状态等信息显示在OLED屏幕上,实时更新;
6. 检测按键信号,解析按键指令,实现模式切换、阈值调节、进入设置界面、手动控制执行设备等功能;
7. 检测ESP8266 WIFI模块与机智云平台的连接状态,若连接正常,将检测参数上传到机智云平台,供手机APP查看,并接收APP下发的控制指令,解析后执行相应动作;若未连接,在OLED屏幕显示“机智云连接失败”,模块自动重新连接;
8. 根据当前工作模式执行相应的控制逻辑:自动模式下,根据检测参数与预设阈值,触发联动控制与报警功能;手动模式下,根据按键指令或远程指令控制执行设备的动作;
9. 循环执行步骤4-8,确保系统持续稳定运行,实时响应各类指令与状态变化。
4.3 各功能模块软件设计
4.3.1 多参数检测模块软件设计
检测模块软件主要负责采集各传感器的输出信号,并对信号进行处理、校准,得到实际的检测参数,为系统控制提供数据支撑,各传感器的软件处理逻辑如下,不包含代码:
- DHT11温湿度传感器:通过GPIO引脚向传感器发送启动信号(拉低总线18ms以上,再拉高20-40us),等待传感器响应后,接收传感器输出的40bit数据,对数据进行校验(前32bit数据的校验和与后8bit校验和一致则数据有效),解析后得到温度与湿度的实际数值;
- MQ2烟雾传感器与MQ7一氧化碳传感器:通过ADC接口采集传感器的模拟输出电压信号,将模拟信号转换为数字信号(0-4095),再通过校准公式转换为实际的浓度值(ppm),设定浓度阈值,用于判断是否存在安全隐患;
- 火焰传感器:通过GPIO接口采集传感器的输出电平信号,检测到低电平时,判定为检测到火焰;检测到高电平时,判定为无火焰,设置防抖处理,避免误检测;
- 光电红外传感器:通过GPIO接口采集传感器的输出电平信号,检测到低电平时,判定为有人体靠近;检测到高电平时,判定为无人靠近,设置防抖处理,避免误检测。
软件设置定时采集机制,每隔1秒采集一次各检测参数,确保数据的实时性,同时对采集到的数据进行异常判断,若数据超出传感器的测量范围,则视为无效数据,采用上一次的有效数据替代,提升数据采集的可靠性。
4.3.2 显示模块软件设计
显示模块软件负责控制OLED屏幕显示相关信息,采用I2C通信协议,实现字符、数字、字符串的显示,显示界面分为正常显示界面与设置界面,不包含代码:
正常显示界面:实时显示当前时间、厨房温度(℃)、湿度(%RH)、烟雾浓度(ppm)、一氧化碳浓度(ppm)、系统工作模式(自动/手动)、各参数阈值(温度、烟雾、一氧化碳)、执行设备运行状态(水泵、风扇、LED灯、阀门的开/关),显示格式清晰、简洁,便于用户现场查看;
设置界面:当用户按下“进入设置”按键时,切换到设置界面,显示可设置的选项(温度阈值、烟雾浓度阈值、一氧化碳浓度阈值),用户通过“加/减”按键切换选项与调整参数,设置完成后再次按下“进入设置”按键保存参数并返回正常显示界面,同时将修改后的阈值同步至机智云APP。
软件通过定时器实现显示信息的更新,每隔1秒更新一次检测参数与系统状态,确保显示信息的实时性,同时避免频繁刷新导致屏幕闪烁,提升用户体验。
4.3.3 模式切换与控制模块软件设计
模式切换与控制模块软件负责处理按键指令与机智云APP指令,实现自动模式与手动模式的顺畅切换,以及执行模块的精准控制,具体逻辑如下,不包含代码:
- 模式切换:当用户按下“模式切换”按键或通过机智云APP发送模式切换指令时,系统切换工作模式(自动→手动/手动→自动),并在OLED屏幕上显示当前模式,同时将模式状态上传至机智云APP,保存当前模式状态,下次上电后自动加载上次的模式;
- 自动模式控制逻辑:系统实时对比当前检测参数与预设阈值,触发相应的联动动作:
- 检测到人体信号时,自动开启LED灯;人体信号消失后,延迟5秒关闭LED灯;
- 温度高于阈值时,开启风扇并启动有源蜂鸣器报警,温度降至阈值以下后,关闭风扇与蜂鸣器;
- 烟雾浓度或一氧化碳浓度超过阈值时,开启风扇、控制舵机旋转关闭阀门,并启动蜂鸣器报警;浓度降至阈值以下后,关闭风扇与蜂鸣器,控制舵机旋转开启阀门;
- 检测到火焰信号时,控制舵机旋转关闭阀门、开启水泵喷水,并启动蜂鸣器报警;火焰信号消失后,关闭水泵与蜂鸣器,控制舵机旋转开启阀门。
- 手动模式控制逻辑:手动模式下,系统停止自动联动控制,用户可通过现场按键或机智云APP远程控制执行设备:
- 按下“水泵/风扇”按键或发送远程指令,切换水泵、风扇的开关状态(按下一次开启,再按一次关闭);
- 按下“LED/舵机”按键或发送远程指令,切换LED灯的开关状态与舵机(阀门)的开关状态;
- 手动控制动作执行后,实时更新OLED屏幕显示与机智云APP状态,确保现场与远程状态同步。
4.3.4 阈值调节模块软件设计
阈值调节模块软件负责处理用户的设置指令,实现温度、烟雾浓度、一氧化碳浓度阈值的调节与保存,具体逻辑如下,不包含代码:
当用户按下“进入设置”按键时,系统进入设置模式,OLED屏幕显示设置菜单,依次显示“温度阈值设置”“烟雾浓度阈值设置”“一氧化碳浓度阈值设置”三个选项,用户通过“加/减”按键切换选项,选中某一选项后,再次通过“加/减”按键调整参数大小(如温度阈值:25-40℃,烟雾浓度阈值:50-200ppm,一氧化碳浓度阈值:30-100ppm);
设置完成后,按下“进入设置”按键,系统保存当前设置的参数到单片机的Flash中,下次上电后自动加载,同时将修改后的阈值同步至机智云APP,退出设置模式,返回正常显示界面;
软件设置参数保护机制,确保调节的参数在合理范围内,避免超出范围导致控制逻辑异常,同时设置默认参数,当用户未进行参数设置时,系统采用默认参数运行(如默认温度阈值:35℃,烟雾浓度阈值:100ppm,一氧化碳浓度阈值:50ppm)。
4.3.5 WIFI通信模块与机智云APP接入设计
WIFI通信模块软件负责实现ESP8266 WIFI模块与单片机、机智云平台的通信,完成检测数据上报与控制指令接收,机智云APP接入流程如下,不包含代码:
1. ESP8266 WIFI模块初始化:系统上电后,单片机通过UART接口向模块发送AT指令,配置模块的工作模式(STA模式,即客户端模式)、WIFI名称、WIFI密码、通信波特率(与单片机一致,如9600bps),完成模块初始化;
2. 机智云平台配置:在机智云平台注册账号,创建智能设备,添加对应的产品型号,配置设备的采集点(温湿度、烟雾浓度、一氧化碳浓度、火焰信号、人体信号)与控制点(模式切换、水泵、风扇、LED灯、舵机、阈值调节),生成设备ID与密钥,将设备ID与密钥写入单片机,实现设备与平台的绑定;
3. 手机APP连接:用户下载机智云APP,登录账号后,搜索并添加绑定的智能设备,完成APP与设备的连接,连接成功后,APP实时显示设备上传的环境参数与运行状态;
4. 数据上报:单片机将处理后的检测参数、系统工作模式、设备运行状态、参数阈值等数据,通过UART接口发送给ESP8266 WIFI模块,模块将数据无线传输到机智云平台,APP从平台获取数据并显示,上报频率为1次/秒;
5. 指令接收:用户通过机智云APP发送控制指令(模式切换、手动控制设备开关、修改参数阈值),指令通过机智云平台无线传输到ESP8266 WIFI模块,模块将指令转发给单片机,单片机解析指令后执行相应的动作,并将执行结果上传到机智云平台,实现指令的闭环控制。
软件设置WIFI通信异常处理机制,当WIFI连接断开或机智云平台连接失败时,OLED屏幕显示“通信异常”提示,ESP8266模块自动重新连接WIFI与平台;若连续3次连接失败,系统提示“连接失败,请检查网络”,确保通信的稳定性与可靠性。
4.3.6 报警模块软件设计
报警模块软件负责控制有源蜂鸣器的工作,实现安全隐患的报警提醒,具体逻辑如下,不包含代码:
自动模式下,当系统检测到以下任意一种安全隐患时,启动蜂鸣器报警:温度高于阈值、烟雾浓度超过阈值、一氧化碳浓度超过阈值、检测到火焰信号;报警声音为连续鸣响,直至隐患消除(参数降至阈值以下或火焰信号消失),或用户通过按键、APP发送停止报警指令;
手动模式下,蜂鸣器不进行自动报警,仅在用户通过按键或APP发送报警测试指令时启动,确保报警功能的灵活性;同时软件支持报警音量调节,用户可通过设置界面调整蜂鸣器的音量大小。
第五章 系统调试与测试
5.1 调试环境与工具
本次系统调试分为硬件调试与软件调试,调试的目的是检查硬件连接的正确性、软件逻辑的合理性,确保系统各项功能正常实现,调试环境与工具如下:
- 硬件调试工具:万用表、示波器、杜邦线、面包板、5V电源适配器、USB A TTL CH340串口工具;
- 软件调试工具:Keil MDK5开发环境、串口调试助手、机智云平台、机智云手机APP;
- 调试环境:室温25℃、湿度50%RH,无干扰的实验室环境,模拟厨房安全隐患场景(如点燃蜡烛模拟火焰、喷洒烟雾模拟烟雾超标、释放少量一氧化碳模拟燃气泄漏),确保调试过程不受外界环境干扰。
5.2 硬件调试
硬件调试的核心是检查各元器件的连接是否正确、各模块是否能够正常工作,供电是否稳定,具体调试步骤如下:
- 电源调试:将5V电源适配器接入系统,用万用表测量各模块的供电电压,确保STM32单片机、OLED屏幕、ESP8266模块等需3.3V供电的模块获得稳定的3.3V电压,继电器、水泵、风扇、舵机等需5V供电的模块获得稳定的5V电压,无短路、漏电现象,供电引脚无虚焊、脱焊。
- 主控单元调试:将单片机最小系统单独上电,通过USB A TTL CH340串口工具连接电脑,在串口调试助手发送指令,检查单片机的IO口、ADC、UART、I2C等外设是否正常工作,确保单片机能够正常接收与发送数据,程序能够正常下载与运行。
- 多参数检测模块调试:分别对各传感器进行单独调试,用万用表测量传感器的输出信号,检查传感器是否能够准确采集参数:调整环境温湿度,观察DHT11采集数据的变化;喷洒烟雾,观察MQ2传感器输出电压的变化;释放少量一氧化碳,观察MQ7传感器输出电压的变化;用蜡烛模拟火焰,观察火焰传感器输出电平的变化;用手遮挡光电红外传感器,观察输出电平的变化;确保各传感器数据采集正常、响应迅速。
- 显示模块调试:给OLED屏幕上电,检查屏幕是否能够正常点亮,通过单片机发送显示指令,检查字符、数字、字符串的显示是否清晰、准确,无乱码、卡顿现象,显示界面切换顺畅。
- 执行模块调试:给继电器、水泵、风扇、舵机、LED灯供电,通过单片机发送控制信号,检查继电器是否能够正常吸合与断开,水泵、风扇是否能够正常启动与停止,舵机是否能够正常旋转(实现阀门开关),LED灯是否能够正常亮灭,动作响应迅速,无卡顿、异响现象。
- WIFI通信模块调试:将ESP8266模块与单片机连接,上电后检查模块是否能够正常连接预设WIFI,接入机智云平台,通过串口调试助手查看数据传输情况,确保模块能够正常上传数据与接收指令,通信距离满足要求(≥10米)。
- 报警模块调试:给有源蜂鸣器供电,通过单片机发送控制信号,检查蜂鸣器是否能够正常发出报警声音,音量可调,响应迅速。
- 按键模块调试:按下各个按键,检查按键信号是否能够被单片机准确识别,实现模式切换、阈值调节、手动控制等功能,无按键失灵、误触发现象。
经过硬件调试,各模块连接正确,供电稳定,各元器件均能正常工作,无故障现象,数据采集与信号传输正常,满足系统的硬件需求。
5.3 软件调试
软件调试的目的是检查软件逻辑是否正确、各功能模块是否能够正常协同工作,指令解析是否准确,具体调试步骤如下,不涉及代码调试细节:
- 初始化调试:将编写好的初始化程序下载到单片机中,上电后检查各模块的初始化是否成功,包括传感器、OLED屏幕、ESP8266模块的初始化,确保系统能够正常启动,无初始化失败现象,ESP8266模块能够正常连接WIFI与机智云平台。
- 检测功能调试:运行检测模块软件,采集各检测参数,通过串口调试助手与机智云APP查看采集到的数据,检查数据是否准确、稳定,对采集到的数据进行校准,确保数据误差在允许范围内(如DHT11温度误差±1℃,湿度误差±5%RH;MQ2、MQ7浓度误差±5ppm)。
- 显示功能调试:运行显示模块软件,检查OLED屏幕是否能够正常显示检测参数、系统模式、阈值、设备运行状态等信息,显示信息实时更新,无乱码、卡顿现象,设置界面切换顺畅,参数调节显示正常,与机智云APP参数同步。
- 模式切换与控制功能调试:分别测试自动模式与手动模式,检查模式切换是否顺畅;自动模式下,模拟各类安全隐患,测试联动控制功能(LED灯自动开启、风扇启停、舵机开关、水泵启停、蜂鸣器报警),确保功能正常、响应迅速;手动模式下,测试按键与远程控制功能,控制准确、状态同步。
- 阈值调节功能调试:进入设置界面,测试修改温度、烟雾浓度、一氧化碳浓度阈值,检查参数修改是否成功,修改后是否能够正常生效,参数是否能够永久保存,下次上电后是否自动加载,与机智云APP阈值同步,参数调节范围在合理范围内

更多推荐



所有评论(0)