基于STM32空气质量检测系统设计与实现(完整项目)
本文设计并实现了一款基于STM32F103C8T6单片机的智能空气质量检测系统。系统整合多参数检测(温湿度、一氧化碳、甲醛、PM2.5)、实时显示、声光报警、自动通风、阈值调节及WIFI远程监控六大核心功能,构建了集检测、预警、控制于一体的解决方案。硬件采用模块化设计,包括主控模块、传感器模块、显示模块、执行模块等;软件基于Keil MDK5开发环境,采用模块化编程思想实现各功能。测试表明系统运行
STM32空气质量检测系统设计与实现
摘要
随着工业化、城市化进程的快速推进,室内外空气质量问题日益凸显,一氧化碳、甲醛、PM2.5粉尘等有害污染物不仅影响人们的居住舒适度,更会长期危害人体呼吸系统、心血管系统等健康安全。传统空气质量检测设备存在检测参数单一、智能化程度低、无法远程监测、阈值调节不便等问题,难以满足现代家庭、小型办公场所对空气质量实时监测、精准预警及便捷管控的多元化需求。基于此,本文设计并实现了一款基于STM32F103C8T6单片机的智能空气质量检测系统,整合多参数检测、实时显示、声光报警、自动通风、阈值调节及WIFI APP远程交互六大核心功能,构建了一套集检测、预警、控制、远程监控于一体的低成本、高可靠性空气质量检测解决方案。
本文以STM32F103C8T6单片机为主控核心,搭配OLED显示屏、DHT11温湿度传感器、MQ-7一氧化碳传感器、三合一VOC传感器、PM2.5粉尘传感器、ESP8266 WIFI模块、继电器、风扇模块、有源蜂鸣器、LED灯及独立按键等元器件,完成系统硬件电路设计、软件程序开发及功能测试。系统可实时检测室内空气的温湿度、一氧化碳含量、甲醛浓度及PM2.5粉尘含量,通过OLED屏幕直观显示各项检测数据;当任意一项空气质量参数超出设定阈值时,系统自动触发有源蜂鸣器和声光报警,并通过继电器控制风扇模块启动通风,降低污染物浓度;支持通过独立按键现场调节各参数阈值,同时可通过ESP8266 WIFI模块连接手机APP,实现空气质量数据远程查看及阈值远程调节,操作便捷、实用性强。
本文详细阐述了系统的总体设计方案、硬件电路设计、软件程序开发、系统调试及功能测试的全过程。硬件部分采用模块化设计,分别设计了主控模块、多参数检测模块、显示模块、声光报警模块、执行模块、按键控制模块及WIFI通信模块,完成元器件选型、电路设计及PCB绘制,确保各模块协同稳定工作;软件部分基于Keil MDK5开发环境,采用模块化编程思想,编写了数据采集、数据显示、声光报警、自动通风、阈值调节、WIFI通信及APP交互等功能程序,同时完成手机APP的配置与调试,实现与系统的无线通信与数据交互。
通过实际测试验证,该STM32空气质量检测系统运行稳定、数据采集精准、响应迅速、操作便捷,各项功能均达到设计要求。系统具有检测参数全面、智能化程度高、阈值调节灵活、支持远程监控等特点,能够实时精准监测室内空气质量,及时发出预警并自动采取通风措施,有效保障居住环境安全与舒适,可广泛应用于普通家庭、小型办公场所、幼儿园、实验室等场景,具有较高的实际应用价值和推广前景。
关键词:STM32F103C8T6;空气质量检测;多参数传感器;WIFI远程监控;声光报警;阈值调节



第一章 绪论
1.1 研究背景与意义
在现代社会,人们的室内活动时间占比高达80%以上,室内空气质量直接关系到人们的身体健康和生活品质。室内空气中的一氧化碳(燃气泄漏产生)、甲醛(装修材料释放)、PM2.5粉尘(室外渗入、室内扬尘)等有害污染物,长期接触会引发呼吸道感染、哮喘、白血病等多种疾病,严重威胁人们的生命健康;同时,温湿度的异常变化也会影响居住舒适度,加剧污染物的扩散与危害。
随着嵌入式技术、传感器技术、无线通信技术及智能家居技术的快速发展,智能空气质量检测设备逐渐走进人们的生活,成为监测室内空气质量、保障居住安全的重要工具。目前市面上的空气质量检测设备多存在诸多不足:一是检测参数单一,多仅监测PM2.5或甲醛,缺乏对一氧化碳、温湿度等关键参数的全面检测;二是智能化程度低,仅能实现数据显示,无法自动触发报警和通风措施,需人工干预;三是缺乏远程监控功能,用户无法实时查看异地环境的空气质量数据;四是阈值调节不便,多为固定阈值,无法根据用户需求和场景差异灵活调整。
STM32F103C8T6单片机因其性价比高、功耗低、外设丰富、控制精度高的优势,成为小型智能检测设备开发的首选主控芯片;ESP8266 WIFI模块具有体积小、功耗低、通信稳定、成本低廉的特点,可快速实现设备与手机APP的无线连接;各类高精度传感器的普及,为多参数空气质量检测提供了技术支撑。基于此,本文设计的STM32空气质量检测系统,整合多参数检测、自动报警、自动通风、远程监控及灵活阈值调节功能,兼顾实用性与经济性,解决传统检测设备的痛点,为用户提供全面、智能、便捷的空气质量监测解决方案,具有重要的实际应用意义和市场推广价值。
1.2 国内外研究现状
国外空气质量检测技术起步较早,目前已形成较为成熟的产品体系和技术标准,智能化程度和检测精度较高。国外知名品牌的空气质量检测设备,多集成多参数检测、自动报警、远程监控、数据统计分析等功能,采用高精度传感器采集数据,通过智能算法优化检测精度,支持手机APP远程查看数据、设置参数,部分产品还可与智能家居系统联动,实现全方位环境管控,但此类产品价格昂贵,核心技术多被国外垄断,且部分功能适配性难以满足国内普通用户的使用需求。
国内空气质量检测行业发展迅速,随着STM32单片机、ESP8266 WIFI模块、各类低成本传感器的普及,越来越多的企业和科研机构开始研发高性价比的智能空气质量检测产品。目前国内产品多基于单片机实现基础的检测和显示功能,部分产品加入了报警功能,但仍存在一些问题:一是检测参数不够全面,多数产品仅监测PM2.5和甲醛,缺乏对一氧化碳等有毒气体的检测,存在安全隐患;二是数据采集精度较低,传感器选型不合理,检测误差较大,影响预警准确性;三是自动控制功能不完善,仅能触发报警,无法自动启动通风等应急措施;四是远程监控功能薄弱,多仅支持简单的数据查看,无法实现远程阈值调节;五是阈值调节方式单一,操作不便。因此,研发一款集多参数高精度检测、智能声光报警、自动通风、灵活阈值调节、WIFI远程监控于一体的STM32空气质量检测系统,弥补现有产品的不足,具有广阔的市场前景和应用价值。
1.3 研究内容与目标
1.3.1 研究内容
本文主要围绕STM32空气质量检测系统的设计与实现展开研究,结合用户需求和元器件特性,具体研究内容如下:
- 系统总体方案设计:明确系统的功能需求、性能指标,设计系统的硬件架构和软件流程,确定各模块的连接方式和工作原理,实现各功能模块的协同运行,重点规划数据采集、声光报警、自动通风、阈值调节及WIFI APP交互的逻辑流程。
- 硬件电路设计:基于STM32F103C8T6最小系统板,设计主控模块、多参数检测模块(DHT11、MQ-7、三合一VOC、PM2.5)、显示模块(OLED屏幕)、声光报警模块(有源蜂鸣器、LED灯)、执行模块(继电器、风扇模块)、按键控制模块及WIFI通信模块(ESP8266)的硬件电路,完成元器件选型和PCB绘制,确保硬件电路稳定可靠、布局合理,适配各类应用场景的安装需求。
- 软件程序开发:基于Keil MDK5开发环境,采用模块化设计思想,编写数据采集、数据显示、声光报警、自动通风、阈值调节、WIFI通信及APP交互等功能程序,确保各模块协同稳定工作。
- WIFI APP配置与调试:完成手机APP的界面设计、数据点创建,配置ESP8266 WIFI模块与手机APP的通信,实现APP界面数据实时显示、远程阈值调节等功能,确保APP操作便捷、数据传输稳定。
- 系统调试与测试:搭建系统测试平台,对硬件电路和软件程序进行全面调试,测试系统的数据采集精度、声光报警可靠性、自动通风响应速度、WIFI通信稳定性等性能指标,验证系统功能的可行性和可靠性。
1.3.2 研究目标
本研究旨在设计一款功能完善、性能稳定、性价比高、操作便捷的STM32空气质量检测系统,具体目标如下:
- 实现多参数空气质量检测功能:精准采集室内空气的温湿度、一氧化碳含量、甲醛浓度及PM2.5粉尘含量,采集误差控制在合理范围内,数据更新及时(更新周期≤1秒),为系统预警和控制提供可靠依据。
- 实现数据实时显示功能:通过OLED屏幕,清晰显示各项检测数据、当前阈值参数及系统工作状态(正常/报警/通风),显示直观、响应迅速,便于用户现场实时查看。
- 实现声光报警功能:当一氧化碳、甲醛、PM2.5任意一项参数超出设定阈值时,系统自动触发有源蜂鸣器发出报警声,LED灯闪烁,同时OLED屏幕显示报警信息,提醒用户及时处理。
- 实现自动通风功能:报警触发的同时,系统通过继电器控制风扇模块自动启动,加速室内空气流通,降低有害污染物浓度,直至各项参数恢复正常后,自动关闭风扇和报警装置。
- 实现阈值调节功能:支持通过独立按键现场调节各检测参数(温湿度、一氧化碳、甲醛、PM2.5)的阈值,调节过程中OLED屏幕实时显示当前调节参数及数值,调节完成后参数自动保存,断电后不丢失;同时支持通过手机APP远程调节阈值,适配不同用户、不同场景的需求。
- 实现WIFI远程监控功能:通过ESP8266 WIFI模块连接手机APP,APP可实时接收并显示系统采集的各项空气质量数据、系统工作状态及报警信息;用户可通过APP远程查看数据、调节阈值,实现异地便捷管控。
- 实现系统稳定运行:系统上电后可自动初始化、自动采集数据,无卡顿、误报警现象,连续运行时间≥72小时,适应不同环境温度(0℃~50℃)和湿度(20%~90%RH)条件下的稳定工作。
1.4 论文结构安排
本文共分为6章,具体结构安排如下:
第1章为绪论,阐述研究背景与意义、国内外研究现状、研究内容与目标及论文结构安排,明确本研究的核心价值和主要研究方向。
第2章为系统总体方案设计,明确系统功能需求,设计系统总体架构,确定硬件和软件设计思路,梳理系统工作流程及各模块协同逻辑,重点分析数据采集、声光报警、自动通风及WIFI APP交互的工作原理。
第3章为系统硬件电路设计,详细介绍各元器件选型、各功能模块电路设计及PCB绘制,确保硬件电路满足系统功能需求,实现各模块的稳定通信和协同工作,适配各类应用场景的安装需求。
第4章为系统软件程序开发,介绍软件开发环境,编写各功能模块的程序代码,阐述程序流程和核心算法,同时介绍WIFI APP的配置与调试过程。
第5章为系统调试与测试,搭建测试平台,对硬件和软件进行调试,测试系统性能和功能实现情况,验证系统可行性和稳定性。
第6章为总结与展望,总结本文的研究成果,分析系统存在的不足,并对未来的改进方向进行展望。
第二章 系统总体方案设计
2.1 系统功能需求分析
结合空气质量检测的实际使用场景(家庭、小型办公场所、幼儿园等)和用户对空气质量监测、预警、管控的智能化、便捷化需求,本系统主要实现8项核心功能,各功能相互协同,确保系统的智能化、稳定性和便捷性,具体功能需求如下:
- 核心控制功能:以STM32F103C8T6最小系统板作为主控单元,负责接收各采集模块的信号(温湿度、一氧化碳、甲醛、PM2.5)、按键输入信号及WIFI APP指令,进行数据处理、逻辑判断,并向各执行模块(风扇、有源蜂鸣器、LED灯)下发控制指令,统筹系统各项功能的运行,协调采集、显示、报警、控制、通信等模块的协同工作。
- 多参数检测功能:通过DHT11温湿度传感器、MQ-7一氧化碳传感器、三合一VOC传感器、PM2.5粉尘传感器,分别实时采集室内空气的温湿度、一氧化碳含量、甲醛浓度及PM2.5粉尘含量,采集的数据实时传输至主控单元进行滤波、校准处理,为系统预警和自动控制提供数据支撑。
- 数据显示功能:采用OLED屏幕,实时显示各项检测数据(温湿度、一氧化碳、甲醛、PM2.5)、当前阈值参数、系统工作状态(正常/报警/通风)及报警信息,显示清晰、直观,便于用户现场实时查看系统状态和空气质量情况。
- 声光报警功能:当一氧化碳、甲醛、PM2.5任意一项参数超出设定阈值时,主控单元触发有源蜂鸣器发出连续报警声,控制LED灯(红灯)闪烁,同时OLED屏幕高亮显示报警参数及报警提示,直至参数恢复正常或用户手动关闭报警。
- 自动通风功能:报警触发的同时,主控单元通过继电器控制风扇模块自动启动,加速室内空气流通,降低有害污染物浓度;当所有超标参数恢复正常后,主控单元自动关闭风扇、有源蜂鸣器和LED灯,系统恢复正常监测状态,全程无需人工干预。
- 现场阈值调节功能:通过独立按键进入阈值设置界面,可分别设置温湿度、一氧化碳、甲醛、PM2.5的阈值,调节过程中OLED屏幕实时显示当前调节的参数及数值,调节完成后参数自动保存至存储模块,断电后不丢失,操作便捷。
- WIFI远程监控功能:通过ESP8266 WIFI模块实现系统与手机APP的无线通信,APP实时接收系统采集的各项空气质量数据、系统工作状态及报警信息,显示在APP界面;用户可通过APP远程查看数据,同时下发阈值调节指令,实现异地便捷管控。
- 手动控制功能:支持通过独立按键手动控制风扇、有源蜂鸣器的开关,满足用户特殊场景下的手动操作需求(如手动启动通风、手动关闭报警),同时不影响系统自动监测功能。
2.2 系统总体架构设计
本系统以STM32F103C8T6最小系统板为核心控制器,采用模块化设计思想,将系统分为7大功能模块:核心控制模块、多参数检测模块、显示模块、声光报警模块、执行模块、按键控制模块、WIFI通信模块。各模块相互协作、数据互通,完成系统的各项智能控制功能,适配各类应用场景的安装需求,系统总体架构如图1所示(论文中需补充架构图)。
核心控制模块:以STM32F103C8T6单片机为核心,是系统的“大脑”,负责接收各模块的输入信号(传感器采集数据、按键输入、APP指令),进行数据处理和逻辑判断,向各执行模块下发控制指令,协调各模块有序工作,同时控制存储模块完成阈值参数的存储与读取。
多参数检测模块:系统的数据采集核心,由4个子模块组成:DHT11温湿度传感器子模块、MQ-7一氧化碳传感器子模块、三合一VOC传感器子模块、PM2.5粉尘传感器子模块,各子模块将采集的空气质量数据实时传输至核心控制模块,为系统预警和控制提供可靠依据。
显示模块:采用OLED屏幕,负责接收核心控制模块传输的系统状态信息(各项检测数据、阈值参数、工作状态、报警信息),实时清晰地显示,为用户提供直观的状态反馈,便于用户现场实时查看空气质量情况。
声光报警模块:由有源蜂鸣器和LED灯组成,负责接收核心控制模块的控制指令,当空气质量参数超标时,触发蜂鸣器报警和LED灯闪烁,提醒用户及时处理,提升系统的安全性和实用性。
执行模块:系统的动作执行核心,由继电器模块和风扇模块组成,负责接收核心控制模块的控制指令,执行自动通风操作(启动/关闭风扇),通过加速空气流通降低室内有害污染物浓度,实现自动应急处理。
按键控制模块:由多个独立按键组成,负责实现现场阈值调节、手动控制风扇和报警装置、模式切换等操作,按键输入信号实时传输至核心控制模块,响应迅速、操作便捷,适配现场操作需求。
WIFI通信模块:由ESP8266 WIFI模块组成,负责实现系统与手机APP的无线通信,接收手机APP下发的控制指令(阈值调节),传输至核心控制模块执行,同时将系统采集的空气质量数据、工作状态传输至手机APP,实现双向数据交互,满足远程监控需求。
存储模块:采用EEPROM存储芯片(AT24C02),集成在核心控制模块中,负责保存用户设置的各项阈值参数,断电后数据可长期保存,重新上电后核心控制模块读取存储的数据,恢复系统设置,无需用户重新调节。
2.3 系统工作流程设计
系统上电后,首先进行初始化操作,包括STM32单片机初始化、各模块初始化(DHT11、MQ-7、三合一VOC、PM2.5传感器、OLED显示屏、继电器、风扇、有源蜂鸣器、LED灯、按键、存储模块、ESP8266 WIFI模块)。初始化完成后,系统读取EEPROM中保存的阈值参数,若为首次上电或无保存参数,则加载默认阈值参数;OLED屏幕显示系统主界面,包括当前各项空气质量数据、默认阈值参数及系统工作状态(正常),各执行模块处于待机状态,ESP8266 WIFI模块自动启动并搜索可用WIFI信号,尝试连接手机APP。
初始化完成后,系统进入主循环,实时采集各项空气质量数据,根据数据判断系统状态,执行相应的操作,同时响应按键输入和WIFI APP指令,完成数据显示、声光报警、自动通风、阈值调节、远程监控等功能,具体工作流程如下:
1. 数据采集:系统实时控制多参数检测模块工作,各传感器分别采集室内温湿度、一氧化碳含量、甲醛浓度及PM2.5粉尘含量,采集的数据经主控单元滤波、校准处理后,实时显示在OLED屏幕上,并通过ESP8266 WIFI模块传输至手机APP,确保现场和远程均可实时查看数据。
2. 数据判断:主控单元实时对比采集的各项数据与设定阈值,判断空气质量是否正常:若所有参数均在阈值范围内,系统保持正常工作状态,OLED屏幕显示“正常”,LED灯(绿灯)常亮,风扇、蜂鸣器处于关闭状态;若任意一项参数超出阈值,系统触发异常处理流程。
3. 异常处理(声光报警+自动通风):当检测到参数超标时,主控单元立即触发声光报警:有源蜂鸣器发出连续报警声,LED红灯闪烁,OLED屏幕高亮显示报警参数、报警提示(如“甲醛超标,请通风”);同时,主控单元控制继电器闭合,启动风扇模块,开始自动通风,加速室内空气流通,降低污染物浓度;异常状态下,系统持续采集数据,实时判断参数是否恢复正常。
4. 异常解除:当所有超标参数恢复至阈值范围内时,主控单元自动关闭有源蜂鸣器、LED红灯,停止风扇运行,LED绿灯重新常亮,OLED屏幕恢复正常显示,系统返回正常监测状态,继续实时采集数据。
5. 阈值调节:分为现场调节和远程调节两种方式:
- 现场调节:用户按下阈值调节键,进入阈值设置界面,通过选择键选择需要调节的参数(温湿度、一氧化碳、甲醛、PM2.5),再通过增减键调节参数值,调节过程中OLED屏幕实时显示当前参数及数值,调节完成后按下确认键,参数保存至EEPROM,返回主界面;
- 远程调节:用户通过手机APP进入阈值设置界面,选择对应参数并输入调节值,点击确认后,指令通过WIFI传输至ESP8266模块,再传输至主控单元,主控单元更新阈值参数并保存至EEPROM,同时更新OLED屏幕和APP界面的阈值显示。
6. 手动控制:用户通过独立按键可手动控制风扇启停、蜂鸣器关闭:按下风扇控制键,风扇切换启动/停止状态;按下报警关闭键,可手动关闭蜂鸣器和LED红灯,但系统仍持续监测数据,若参数仍超标,报警装置会再次触发。
7. WIFI APP交互:ESP8266 WIFI模块与手机APP建立连接后,实时将采集的空气质量数据、系统工作状态(正常/报警/通风)传输至APP;用户通过APP可实时查看数据、接收报警通知,同时下发阈值调节、风扇控制等指令,指令下发后系统实时响应并执行相应操作,将操作结果反馈至APP,实现双向交互。
系统工作流程如图2所示(论文中需补充流程图),整个流程循环执行,确保系统各项功能稳定、有序实现,为用户提供全面、智能、便捷的空气质量监测与管控体验。
第三章 系统硬件电路设计
3.1 核心元器件选型
根据系统功能需求和性能指标,结合性价比、体积大小(适配各类场景安装)和实用性原则,对系统所需的核心元器件进行选型,确保元器件性能稳定、适配性强,所有元器件均贴合用户提供的清单,具体选型说明如下:
- 核心控制器:STM32F103C8T6单片机(最小系统板),该单片机属于STM32F1系列,采用ARM Cortex-M3内核,主频为72MHz,拥有32KB Flash、6KB SRAM,具备丰富的I/O口、UART、IIC、GPIO、ADC等外设,功耗低、性价比高、体积小巧,能够满足系统多模块协同控制、数据处理和通信交互的核心需求;最小系统板集成电源、复位、晶振等电路,无需额外搭建,简化硬件设计,且体积小巧,便于嵌入各类检测设备外壳。
- 显示模块:OLED显示屏(4针IIC协议),选用0.96英寸单色OLED屏,分辨率为128×64,采用IIC通信方式,传输速度快、功耗低、显示清晰、响应速度快,体积小巧(适合嵌入式安装),4针接口包含电源、地、IIC通信引脚(SDA、SCL),接线简单,可实时显示各项检测数据、阈值参数、工作状态及报警信息。
- 多参数检测模块元器件:
- DHT11温湿度传感器:工作电压为3.3V-5V,测温范围为0℃~50℃,测温精度为±2℃,测湿范围为20%~90%RH,测湿精度为±5%RH,采用单总线通信,接线简单,体积小巧,可实时采集室内温湿度数据,适配室内环境检测需求。
- MQ-7一氧化碳传感器:工作电压为5V,检测范围为10~1000ppm,对一氧化碳具有较高的灵敏度和选择性,响应迅速(响应时间≤10秒),用于检测室内一氧化碳含量,避免燃气泄漏带来的安全隐患,保障用户生命安全。
- 三合一VOC传感器:选用通用型三合一VOC传感器,工作电压为3.3V-5V,可同时检测甲醛、苯、甲苯等有害气体,检测范围为0~10ppm(甲醛),检测精度高,响应迅速,专门用于采集室内甲醛浓度数据,适配室内空气质量检测需求。
- PM2.5粉尘传感器:选用GP2Y1010AU0F粉尘传感器,工作电压为5V,检测范围为0.1~10μm的粉尘颗粒,检测精度高,响应迅速,用于采集室内PM2.5粉尘含量数据,反映室内空气质量洁净程度。
- 执行模块元器件:
- 继电器:选用5V继电器模块(1路),用于控制风扇模块的启停,开关性能稳定,可承受一定的电流,保护主控单元,避免大功率设备直接连接单片机造成损坏,接线简单,适配风扇控制需求。
- 风扇模块:选用小型散热风扇,工作电压为5V,风量适中,噪音小,体积小巧,用于自动通风时的空气循环,加速室内空气流通,降低有害污染物浓度,适配嵌入式安装需求。
- 声光报警模块元器件:
- 有源蜂鸣器(5V):无需额外驱动电路,通电即可发出连续报警声,音量适中(70-80dB),体积小巧,便于嵌入设备内部,用于空气质量参数超标时的声音报警提醒。
- LED灯:选用5V LED指示灯(红、绿两种),红灯用于报警提示,绿灯用于正常工作提示,体积小巧,显示清晰,便于用户直观判断系统状态,适配各类场景的视觉提示需求。
- 按键控制模块:选用4个独立按键,工作电压为3.3V,结构简单、操作便捷、体积小巧,分别用于阈值调节、参数选择、增减调节、手动控制(风扇/报警),安装在设备控制面板,便于用户现场操作。
- 存储模块:AT24C02 EEPROM存储芯片,容量为2KB,采用IIC通信方式,功耗低、存储稳定,体积小巧,可用于保存用户设置的各项阈值参数,断电后数据可长期保存,满足系统断电保存需求,无需用户重新调节阈值。
- WIFI通信模块:ESP8266 WIFI模块(ESP-01型号),支持WIFI 802.11 b/g/n协议,采用UART通信方式,工作电压为3.3V,传输距离远(10-20米),数据传输稳定,体积小巧,功耗低,便于集成在设备内部,实现与手机APP的无线通信,满足远程监控需求。
- 其他元器件:10KΩ电阻、1KΩ电阻、电容(10uF、0.1uF)、电源模块(5V/2A直流电源,适配系统各外设供电需求)、杜邦线、PCB板、保险丝、固定支架等,用于搭建硬件电路,保障各模块稳定运行,同时适配各类场景的安装需求,确保元器件固定牢固。
3.2 核心控制模块电路设计
核心控制模块以STM32F103C8T6最小系统板为核心,主要包括单片机最小系统电路、电源电路和存储模块电路,是系统稳定运行的基础,确保各模块能够正常协同工作,同时实现阈值参数的存储与读取,且电路设计紧凑,适配各类场景的安装空间。
单片机最小系统电路:STM32F103C8T6最小系统板已集成复位电路、晶振电路和电源接口,无需额外设计。其中,晶振电路采用8MHz外部晶振,经内部倍频后为系统提供72MHz的工作主频,确保系统时序准确;复位电路采用上电复位和手动复位相结合的方式,确保系统异常时可快速恢复正常运行;电源接口为5V输入,经板载稳压芯片(AMS1117-3.3V)转换为3.3V,为单片机供电,同时为其他需要3.3V供电的模块(OLED、DHT11、三合一VOC、ESP8266、AT24C02)提供电源。
电源电路:系统采用5V/2A直流电源供电(适配系统各外设供电需求),分为两路供电:一路直接为继电器、风扇模块、有源蜂鸣器、LED灯、MQ-7、PM2.5传感器供电,满足其工作电压需求;另一路通过AMS1117-3.3V稳压芯片转换为3.3V,为STM32单片机、OLED显示屏、DHT11、三合一VOC传感器、ESP8266 WIFI模块、AT24C02 EEPROM芯片供电。电源电路中加入电容滤波(10uF电解电容和0.1uF瓷片电容)和保险丝,减少电压波动,保护元器件安全,避免短路损坏设备;同时,在电源接口处加入防反接二极管,防止电源正负极接反损坏电路,确保供电安全稳定。
存储模块电路:采用AT24C02 EEPROM存储芯片,通过IIC通信方式与STM32单片机连接,用于保存用户设置的各项阈值参数。AT24C02芯片的VCC引脚接3.3V电源,GND引脚接地,SDA引脚接STM32单片机的PB11引脚,SCL引脚接STM32单片机的PB12引脚,WP引脚(写保护引脚)接地,确保芯片可正常读写数据。当用户调节阈值参数时,主控单元将参数写入AT24C02芯片;系统上电时,主控单元从芯片中读取参数,恢复系统设置,无需用户重新调节。
核心控制模块接口分配:PA0~PA3引脚分别连接4个独立按键(阈值调节、参数选择、增减调节、手动控制);PA4引脚连接DHT11温湿度传感器信号端;PA5引脚连接PM2.5粉尘传感器信号端;PB0引脚连接继电器控制端(控制风扇);PB1引脚连接有源蜂鸣器控制端;PB2、PB3引脚分别连接LED红灯、LED绿灯控制端;PB4、PB5引脚分别作为UART1的TX、RX引脚,连接ESP8266 WIFI模块;PB6引脚连接MQ-7一氧化碳传感器信号端;PB7引脚连接三合一VOC传感器信号端;PB11、PB12引脚分别作为IIC1的SDA、SCL引脚,连接OLED显示屏和AT24C02芯片。
3.3 多参数检测模块电路设计
3.3.1 DHT11温湿度传感器电路设计
DHT11温湿度传感器采用单总线通信方式与STM32单片机连接,用于采集室内温湿度数据。传感器的VCC引脚接3.3V电源,GND引脚接地,DQ引脚(数据引脚)接STM32单片机的PA4引脚,DQ引脚通过一个10KΩ上拉电阻接3.3V电源,确保数据传输稳定,同时选用防水封装,避免灰尘和水汽影响传感器性能,适配室内环境检测。
工作原理:主控单元通过单总线向DHT11发送复位指令,传感器响应复位信号后,主控单元接收传感器传输的温湿度数据;传感器将采集的模拟温湿度数据转换为数字数据,通过单总线传输至主控单元;主控单元解析数据,得到实际的温湿度值,用于阈值判断和数据显示,同时传输至手机APP。
3.3.2 MQ-7一氧化碳传感器电路设计
MQ-7一氧化碳传感器采用ADC采集方式与STM32单片机连接,用于采集室内一氧化碳含量数据。传感器的VCC引脚接5V电源,GND引脚接地,AO引脚(模拟信号输出端)接STM32单片机的PB6引脚,DO引脚(数字信号输出端)悬空(本系统采用模拟采集方式,提高检测精度);传感器需要预热一段时间(约30秒)才能正常工作,程序中需加入预热处理,确保检测数据准确。
工作原理:当室内一氧化碳浓度变化时,传感器的电阻值随之变化,导致AO引脚输出的电压发生变化;主控单元通过ADC采集AO引脚的电压值,经过校准计算,转换为对应的一氧化碳含量数据(ppm),用于阈值判断、声光报警和自动通风控制;当一氧化碳含量超过设定阈值时,触发蜂鸣器报警、LED红灯闪烁,并启动风扇通风。为了减少干扰,在信号端与地之间并联一个0.1uF滤波电容,确保采集的数据稳定。
3.3.3 三合一VOC传感器电路设计
三合一VOC传感器采用ADC采集方式与STM32单片机连接,专门用于采集室内甲醛浓度数据(同时可检测其他VOC气体)。传感器的VCC引脚接3.3V电源,GND引脚接地,AO引脚(模拟信号输出端)接STM32单片机的PB7引脚,DO引脚(数字信号输出端)悬空,检测精度高,响应迅速,适配室内甲醛检测需求。
工作原理:当室内甲醛浓度变化时,传感器的电阻值随之变化,导致AO引脚输出的电压发生变化;主控单元通过ADC采集AO引脚的电压值,经过校准计算,转换为对应的甲醛浓度数据(ppm),用于阈值判断、声光报警和自动通风控制;当甲醛浓度超过设定阈值时,触发蜂鸣器报警、LED红灯闪烁,并启动风扇通风,降低室内甲醛浓度。
3.3.4 PM2.5粉尘传感器电路设计
PM2.5粉尘传感器(GP2Y1010AU0F)采用ADC采集方式与STM32单片机连接,用于采集室内PM2.5粉尘含量数据。传感器的VCC引脚接5V电源,GND引脚接地,VO引脚(模拟信号输出端)接STM32单片机的PA5引脚,LED引脚(指示灯控制端)接3.3V电源,确保传感器正常工作,检测精度高,响应迅速。
工作原理:传感器内部的红外发射管发射红外线,当空气中的粉尘颗粒经过检测通道时,会反射红外线,接收管接收反射信号并转换为电压信号;主控单元通过ADC采集VO引脚的电压值,经过校准计算,转换为对应的PM2.5粉尘含量数据,用于阈值判断、声光报警和自动通风控制;当PM2.5含量超过设定阈值时,触发蜂鸣器报警、LED红灯闪烁,并启动风扇通风,加速粉尘排出。
3.4 显示模块电路设计
本系统采用4针IIC协议的0.96英寸OLED显示屏,通过IIC通信方式与STM32单片机连接,具有传输速度快、接线简单、功耗低、显示清晰、体积小巧的优点,适配各类场景的嵌入式安装,用于实时显示系统状态信息。OLED显示屏的4针接口分别为:VCC(3.3V电源)、GND(地)、SDA(IIC数据引脚)、SCL(IIC时钟引脚)。
具体接线:OLED的VCC引脚接3.3V电源,GND引脚接地,SDA引脚接STM32单片机的PB11引脚(IIC1 SDA),SCL引脚接STM32单片机的PB12引脚(IIC1 SCL)。通过IIC通信,主控单元可向OLED显示屏发送控制指令(初始化、清屏、显示位置设置)和显示数据(各项检测数据、阈值参数、工作状态、报警信息),实现系统状态的实时显示。
显示界面设计:分为四个主要界面:1. 主界面:显示“空气质量检测系统”标题,当前温湿度、一氧化碳含量、甲醛浓度、PM2.5含量,当前阈值参数及系统工作状态(正常),LED绿灯常亮;2. 报警界面:在主界面基础上,高亮显示超标参数及报警提示(如“甲醛超标,请通风”),LED红灯闪烁,蜂鸣器报警;3. 通风界面:显示“正在通风”提示,同步显示实时数据,直至参数恢复正常;4. 阈值调节界面:显示“阈值设置”标题,当前调节的参数类型及当前参数值,底部显示操作提示(选择/增减/确认)。
3.5 声光报警模块电路设计
3.5.1 有源蜂鸣器电路设计
有源蜂鸣器用于空气质量参数超标时的声音报警提醒,电路设计简单、响应迅速。有源蜂鸣器的VCC引脚接5V电源,GND引脚通过一个1KΩ限流电阻接STM32单片机的PB1引脚,无需额外驱动电路,通电即可发声。
工作原理:当任意一项空气质量参数超过设定阈值时,主控单元向PB1引脚输出低电平,有源蜂鸣器通电发出连续报警声;当所有参数恢复正常或用户手动关闭报警时,主控单元向PB1引脚输出高电平,蜂鸣器停止报警。限流电阻用于限制电流,保护蜂鸣器,避免烧毁;同时,在蜂鸣器的电源端加入0.1uF滤波电容,减少噪音干扰,确保报警声清晰。
3.5.2 LED灯电路设计
LED灯用于直观显示系统状态,红灯用于报警提示,绿灯用于正常工作提示,电路设计简单、显示清晰,适配各类场景的视觉提示需求。LED红灯的阳极通过一个1KΩ限流电阻接5V电源,阴极接STM32单片机的PB2引脚;LED绿灯的阳极通过一个1KΩ限流电阻接5V电源,阴极接STM32单片机的PB3引脚。
工作原理:当系统正常工作且无异常时,主控单元向PB3引脚输出低电平,绿灯常亮;当任意一项空气质量参数超标时,主控单元向PB2引脚输出低电平,红灯闪烁,同时绿灯熄灭;当异常状态解除后,红灯熄灭,绿灯重新常亮。限流电阻用于限制电流,保护LED灯和单片机引脚,确保LED灯正常工作。
3.6 执行模块电路设计
执行模块由继电器模块和风扇模块组成,用于实现自动通风功能,电路设计简单、开关稳定,保护主控单元免受大功率设备干扰,适配各类场景的通风需求。继电器模块的VCC引脚接5V电源,GND引脚接地,IN引脚接STM32单片机的PB0引脚;继电器的COM端接风扇模块的电源,NO端接风扇模块的引脚,风扇模块的另一端接地。
工作原理:当空气质量参数超标、系统触发报警时,主控单元向PB0引脚输出高电平时,继电器闭合,风扇模块通电启动,开始空气循环通风,降低室内有害污染物浓度;当所有参数恢复正常后,主控单元向PB0引脚输出低电平,继电器断开,风扇停止运行。电路中加入1KΩ限流电阻,保护继电器和单片机引脚,确保电路稳定运行;同时,在风扇模块的电源端加入0.1uF滤波电容,减少风扇运行时的干扰,确保系统稳定。
3.7 按键控制模块电路设计
按键控制模块由4个独立按键组成,分别用于阈值调节、参数选择、增减调节、手动控制(风扇/报警),电路设计简单、操作便捷,适配现场操作需求,安装在设备控制面板,便于用户操作。4个独立按键的一端分别连接STM32单片机的PA0~PA3引脚,另一端共同接地;每个按键的单片机连接端通过一个10KΩ上拉电阻接3.3V电源,确保无按键按下时,引脚为高电平。
工作原理:当用户按下某个按键时,对应的引脚被拉低为低电平,主控单元通过检测引脚电平变化,识别按下的按键,执行相应的操作:PA0引脚对应阈值调节键,按下进入/退出阈值设置界面;PA1引脚对应参数选择键,在阈值设置界面切换需要调节的参数(温湿度、一氧化碳、甲醛、PM2.5);PA2引脚对应增减调节键,在阈值设置界面增减参数值;PA3引脚对应手动控制键,按下切换风扇启停或关闭报警。为了避免按键抖动导致的误判,在程序中加入延时消抖处理(延时20ms),确保按键操作的准确性。
3.8 WIFI通信模块电路设计
WIFI通信模块选用ESP8266 WIFI模块(ESP-01型号),采用UART通信方式与STM32单片机连接,实现与手机APP的无线通信,数据传输稳定、体积小巧,适配嵌入式安装需求,满足远程监控和阈值调节需求。模块的VCC引脚接3.3V电源,GND引脚接地,TX引脚(数据发送引脚)接STM32单片机的PB5引脚(UART1 RX),RX引脚(数据接收引脚)接STM32单片机的PB4引脚(UART1 TX);模块的CH_PD引脚接3.3V电源(确保模块正常工作),GPIO0引脚悬空(默认处于工作模式)。
工作原理:系统上电后,ESP8266模块自动启动,搜索周边可用的WIFI信号,用户通过手机APP配置WIFI账号和密码,实现模块与家庭WIFI的连接;连接成功后,模块与手机APP建立通信链路,主控单元通过UART将采集的各项空气质量数据、系统工作状态(正常/报警/通风)发送至模块,由模块通过WIFI传输至手机APP,APP实时显示各项数据;用户通过APP下发阈值调节、风扇控制等指令,模块接收指令后,通过UART将指令传输至主控单元,主控单元解析指令并执行相应操作,同时将操作结果反馈至APP,实现双向通信。
3.9 PCB绘制
根据上述硬件电路设计,使用Altium Designer软件绘制PCB板。在绘制过程中,遵循PCB设计原则,结合各类应用场景的安装需求,采用紧凑式布局,尽量缩小PCB板尺寸,确保能够顺利嵌入设备外壳;合理布局各元器件,缩短信号线长度,减少干扰;将电源模块、模拟信号模块(各传感器)、数字信号模块、功率模块分开布局,避免模拟信号与数字信号相互干扰,避免功率模块的干扰影响敏感模块(各传感器)的正常工作。
合理设置焊盘大小和间距,便于元器件焊接和后期调试;预留测试点,方便系统调试和故障排查;在电源线路上加入滤波电容,减少电压波动,确保电路稳定;对敏感信号线(如IIC、UART通信线)进行屏蔽处理,减少外界干扰;标注元器件标号和接口名称,便于后期焊接和维护;设计固定孔,便于将PCB板固定在设备外壳内部,确保使用过程中元器件不松动;绘制完成后,生成PCB制造文件(Gerber文件),用于PCB板的制作,制作完成后进行元器件焊接,得到系统硬件电路板。
第四章 系统软件程序开发
4.1 软件开发环境搭建
本系统的软件程序开发基于Keil MDK5开发环境,该环境支持STM32系列单片机的程序编写、编译、调试,具有丰富的库函数和调试工具,能够提高开发效率,确保程序运行稳定;同时,手机WIFI APP的开发与调试通过Android Studio(或iOS开发工具)完成,实现界面设计、数据显示和指令下发功能;此外,需安装相应的串口助手、WIFI调试助手软件,用于程序调试和数据查看。
开发环境搭建步骤如下:
- Keil MDK5环境搭建:安装Keil MDK5软件,完成软件的初始化设置,选择合适的安装路径,避免中文路径导致软件运行异常;安装完成后,破解软件,确保软件正常使用;安装STM32F103系列单片机的器件库(STM32F1xx_DFP),确保软件能够识别STM32F103C8T6单片机,支持相关库函数的调用,便于程序开发;配置编译环境,设置编译器为ARM Compiler 5,选择合适的优化等级(建议选择O1优化),确保程序能够正常编译,同时兼顾程序运行速度和代码体积;配置输出文件路径,设置生成HEX文件,用于程序下载;连接硬件调试工具(如J-Link),配置调试参数,实现程序的下载和在线调试,便于排查程序中的错误,提高开发效率。
- 手机APP开发环境搭建:安装Android Studio软件,完成软件的初始化设置;创建Android项目,设计APP界面(包括空气质量数据显示界面、阈值设置界面、手动控制界面);集成WIFI通信模块,实现APP与ESP8266 WIFI模块的连接、数据接收和指令下发;编写APP后台逻辑,实现数据解析、显示和指令发送功能,确保APP操作便捷、数据传输稳定;测试APP功能,修复运行过程中的bug,完成APP的调试。
- 辅助工具安装:安装串口助手(如SecureCRT),用于调试单片机与ESP8266模块的UART通信,查看数据传输情况;安装WIFI调试助手,用于调试ESP8266模块的WIFI连接和数据传输,确保通信稳定;安装传感器校准工具,用于校准各传感器的检测数据,提高检测精度。
4.2 软件总体设计思路
本系统软件采用模块化编程思想,将程序分为多个功能模块,每个模块负责实现特定的功能,模块之间通过函数调用实现数据交互和协同工作,便于程序的编写、调试、修改和维护。软件总体分为主程序模块和多个功能子模块,主程序模块负责统筹各子模块的运行,实现系统的整体功能;功能子模块包括:初始化模块、数据采集模块、数据处理模块、显示模块、声光报警模块、自动通风模块、按键控制模块、阈值管理模块、WIFI通信模块、APP交互模块。
软件总体流程:系统上电后,首先执行初始化模块,完成单片机、各传感器、OLED屏幕、ESP8266模块、按键、存储模块等的初始化;初始化完成后,读取存储模块中的阈值参数,加载默认参数(若无保存参数);进入主循环,依次执行数据采集模块、数据处理模块、显示模块,实时采集并显示空气质量数据;同时,判断数据是否超标,若超标则执行声光报警模块和自动通风模块,触发报警并启动风扇;实时检测按键输入和WIFI APP指令,执行按键控制模块、阈值管理模块、APP交互模块,实现现场和远程的阈值调节、手动控制等功能;整个流程循环执行,确保系统各项功能稳定实现。
4.3 各功能模块程序开发
4.3.1 初始化模块程序
初始化模块是系统软件的基础,负责完成各模块的初始化配置,确保各模块能够正常工作,初始化顺序为:单片机系统初始化→GPIO口初始化→ADC初始化→IIC初始化→UART初始化→存储模块初始化→传感器初始化→OLED初始化→ESP8266 WIFI模块初始化→按键初始化。
单片机系统初始化:配置系统时钟(72MHz),开启各外设时钟(GPIO、ADC、IIC、UART),设置中断优先级;GPIO口初始化:将连接传感器、按键、继电器、蜂鸣器、LED灯的GPIO口配置为输入或输出模式,设置引脚电平初始状态(如LED灯初始为熄灭状态,继电器初始为断开状态);ADC初始化:配置ADC通道,设置采样率和采样精度,用于采集各传感器的模拟信号;IIC初始化:配置IIC通信参数,用于与OLED屏幕、AT24C02存储芯片通信;UART初始化:配置UART通信参数(波特率9600bps),用于与ESP8266 WIFI模块通信;存储模块初始化:初始化AT24C02芯片,确保能够正常读写数据;传感器初始化:对DHT11、MQ-7、三合一VOC、PM2.5传感器进行初始化,完成预热(MQ-7传感器预热30秒);OLED初始化:发送初始化指令,清屏并显示系统标题;ESP8266初始化:配置WIFI连接参数,启动WIFI模块,尝试连接家庭WIFI;按键初始化:配置按键GPIO口为输入模式,开启按键中断,设置消抖处理。
4.3.2 数据采集模块程序
数据采集模块负责实时采集各传感器的检测数据,包括DHT11温湿度数据、MQ-7一氧化碳数据、三合一VOC甲醛数据、PM2
更多推荐



所有评论(0)