基于传感器技术的幼儿园安全监护系统的设计与实现

****摘要:****随着社会对幼儿安全关注度的不断提升,设计一套高效可靠的幼儿园安全监护系统具有重要的现实意义。本文基于传感器技术,设计并实现了一套幼儿园安全监护系统。系统以 STM32F103C8T6 微控制器为核心,集成多种传感器与功能模块,实现对幼儿园环境与幼儿安全状况的全面监测与及时预警。​

在硬件设计方面,采用 DHT11 温湿度传感器实时采集室内温湿度数据,通过 pm2.5 原理图设计的相关电路实现对空气质量中 PM2.5 浓度的监测,为幼儿营造舒适健康的环境提供数据支持。利用 esp8266 电路实现系统的无线通信功能,使数据能够实时上传至云端或家长手机端,方便家长和管理人员随时掌握幼儿园情况。OLED 彩屏显示模块用于直观展示各类监测数据,便于园内工作人员快速查看。8050 蜂鸣器与 32 继电器电路组成报警系统,当监测到异常情况,如温湿度超出安全范围、PM2.5 浓度过高、幼儿发生意外等,蜂鸣器发出警报,继电器可联动控制相关设备,如开启通风设备或通知安保人员。​

在软件设计上,通过编写相应的程序,实现传感器数据的准确采集、处理与传输,以及各功能模块之间的协调工作。同时,设计了友好的用户界面,方便用户操作与查看数据。经测试,该系统能够稳定、准确地采集和传输数据,报警功能及时有效,在幼儿园安全监护领域具有良好的应用前景,能够有效提升幼儿园的安全管理水平,为幼儿的健康成长提供有力保障。

****关键字:****传感器技术;幼儿园安全监护;STM32F103C8T6;无线通信;报警系统;

****Abstract:****With the increasing social attention to the safety of young children, it is of great practical significance to design an efficient and reliable safety monitoring system for kindergartens. Based on sensor technology, this paper designs and implements a safety monitoring system for kindergartens. The system takes the STM32F103C8T6 microcontroller as the core and integrates a variety of sensors and functional modules to achieve comprehensive monitoring and timely early warning of the kindergarten environment and children's safety.​

In terms of hardware design, the DHT11 temperature and humidity sensor is used to collect indoor temperature and humidity data in real time, and the relevant circuit designed according to the PM2.5 schematic diagram realizes the monitoring of PM2.5 concentration in air quality, providing data support for creating a comfortable and healthy environment for young children. The esp8266 circuit is used to realize the wireless communication function of the system, enabling data to be uploaded to the cloud or parents' mobile phones in real time, so that parents and administrators can keep abreast of the situation in kindergartens at any time. The OLED color screen display module is used to visually display various monitoring data, making it convenient for 园内工作人员 to view quickly. The 8050 buzzer and 32 relay circuit form an alarm system. When abnormal situations are detected, such as the temperature and humidity exceeding the safe range, the PM2.5 concentration being too high, or children having accidents, the buzzer will sound an alarm, and the relay can control related devices, such as turning on ventilation equipment or notifying security personnel.​

In software design, corresponding programs are written to achieve accurate collection, processing, and transmission of sensor data, as well as the coordinated work of various functional modules. At the same time, a user-friendly interface is designed to facilitate user operation and data viewing. Through testing, the system can stably and accurately collect and transmit data, and the alarm function is timely and effective. It has a good application prospect in the field of kindergarten safety monitoring, which can effectively improve the safety management level of kindergartens and provide strong guarantee for the healthy growth of young children.

****Keywords:****Sensor technology; Kindergarten safety monitoring; STM32F103C8T6; Wireless communication; Alarm system

目 录

一、绪论

[1.1 研究背景与意义​](#1.1 研究背景与意义)

[1.2 国内外研究现状​](#1.2 国内外研究现状)

[1.2.1 国外研究现状​](#1.2.1 国外研究现状)

[1.2.2 国内研究现状​](#1.2.2 国内研究现状)

[1.3 研究目标与内容](#1.3 研究目标与内容)

[1.3.1 研究目标​](#1.3.1 研究目标)

[1.3.2 研究内容​](#1.3.2 研究内容)

[1.4 研究方法​](#1.4 研究方法)

[1.4.1 文献研究法​](#1.4.1 文献研究法)

[1.4.2 系统设计法​](#1.4.2 系统设计法)

二、幼儿园安全监护系统总体设计方案

[2.1 系统功能需求分析](#2.1 系统功能需求分析)

[2.2 系统架构设计](#2.2 系统架构设计)

[2.3 系统设计思路与创新点](#2.3 系统设计思路与创新点)

[2.3.1 系统设计思路](#2.3.1 系统设计思路)

[2.3.2 系统创新点​](#2.3.2 系统创新点)

三、系统硬件设计

[3.1 核心控制模块](#3.1 核心控制模块)

[3.2 32继电器电路模块](#3.2 32继电器电路模块)

[3.3 8050 蜂鸣器模块设计](#3.3 8050 蜂鸣器模块设计)

[3.4 DHT11温湿度检测模块设计](#3.4 DHT11温湿度检测模块设计)

3.5甲醛检测模块

[3.6 OLED显示设计](#3.6 OLED显示设计)

四、系统软件设计

[4.1 软件开发环境与工具](#4.1 软件开发环境与工具)

[4.2 软件功能模块设计](#4.2 软件功能模块设计)

[4.2.1 数据采集模块](#4.2.1 数据采集模块)

[4.2.2 数据处理模块](#4.2.2 数据处理模块)

[4.2.3 通信模块](#4.2.3 通信模块)

[4.2.4 显示模块](#4.2.4 显示模块)

[4.2.5 控制模块](#4.2.5 控制模块)

五、系统测试与验证

[5.1 测试环境搭建](#5.1 测试环境搭建)

[5.2 测试方法与步骤](#5.2 测试方法与步骤)

[5.3 测试结果与分析](#5.3 测试结果与分析)

[5.3.1 传感器数据采集准确性测试](#5.3.1 传感器数据采集准确性测试)

[5.3.2 通信模块传输测试](#5.3.2 通信模块传输测试)

[5.3.3 报警与控制功能测试](#5.3.3 报警与控制功能测试)

六、结论与展望

[6.1 研究成果总结](#6.1 研究成果总结)

[6.2 研究的不足与展望](#6.2 研究的不足与展望)

[6.2.1 研究不足](#6.2.1 研究不足)

[6.2.2 研究展望](#6.2.2 研究展望)

参考文献

一、绪论

1.1 研究背景与意义​

近年来,幼儿安全问题成为社会各界高度关注的焦点。幼儿正处于身心快速发展的关键时期,由于其自我保护能力弱、认知水平有限,在幼儿园的日常生活中面临着诸多安全隐患。从室内环境来看,温湿度不适宜、空气质量不佳(如 PM2.5 浓度超标)等问题,会对幼儿的身体健康造成潜在威胁,可能引发呼吸道疾病、皮肤过敏等症状;在活动过程中,幼儿可能因意外摔倒、碰撞导致受伤,甚至存在走失、被不法分子侵害等严重安全风险 。此外,幼儿园作为幼儿集中学习和生活的场所,一旦发生安全事故,不仅会对个体幼儿及其家庭造成巨大伤害,还可能引发广泛的社会影响,破坏社会和谐稳定。​

传统的幼儿园安全管理主要依赖人工巡查和简单的安全设施,如监控摄像头等。然而,人工巡查存在时间和空间上的局限性,难以做到实时、全面的监管;监控摄像头虽然能记录画面,但无法主动感知环境变化和幼儿的异常状态,无法在危险发生的第一时间发出预警。随着科技的飞速发展,传感器技术、物联网技术、微控制器技术等不断成熟,为幼儿园安全监护系统的智能化升级提供了技术支持。将这些先进技术应用于幼儿园安全监护领域,设计一套基于传感器技术的幼儿园安全监护系统,能够实现对幼儿园环境和幼儿安全状况的实时、精准监测与及时预警,有效弥补传统管理方式的不足,降低安全事故发生的概率,保障幼儿的生命健康安全,具有重要的现实意义。​

从社会层面来看,该系统的应用有助于提升整个社会对幼儿安全的保障水平,增强家长对幼儿园的信任,促进学前教育事业的健康发展;从教育机构角度出发,它能够帮助幼儿园提高安全管理效率,优化管理流程,提升幼儿园的整体形象和竞争力;对于幼儿家庭而言,家长可以通过系统实时了解孩子在园情况,缓解对孩子安全的担忧,为家庭带来更多的安心与放心。

1.2 国内外研究现状​

1.2.1 国外研究现状 ​

在国外,发达国家对幼儿安全监护领域的研究起步较早,并且取得了较为显著的成果。美国、日本、欧洲等国家和地区在幼儿安全监护系统的研发方面处于领先地位。​

美国在幼儿安全监护系统研究中,注重多技术融合与智能化应用。一些高校和科研机构联合企业,研发出了集环境监测、幼儿行为分析、定位追踪等功能于一体的综合性安全监护系统。例如,部分系统利用物联网技术,通过部署在幼儿园各个角落的传感器,实时采集温湿度、空气质量、光照强度等环境数据,并将数据上传至云端进行分析处理。当环境数据超出预设阈值时,系统会自动向管理人员和家长发送警报信息。在幼儿行为监测方面,采用视频分析技术和传感器技术相结合的方式,能够识别幼儿的异常行为,如长时间静止不动、剧烈碰撞等,并及时发出预警。此外,美国的部分幼儿园还引入了 RFID(射频识别)技术,为幼儿佩戴电子标签,通过在幼儿园内设置的读卡器,实现对幼儿的实时定位,防止幼儿走失。​

日本在幼儿安全监护领域则更侧重于精细化和人性化设计。日本的幼儿园安全监护系统不仅关注环境和幼儿安全,还注重幼儿的健康成长。例如,一些系统会根据幼儿的年龄、身体状况等因素,为每个幼儿制定个性化的健康监测方案。通过可穿戴设备采集幼儿的心率、体温、运动量等生理数据,并结合环境数据进行综合分析,为教师和家长提供科学的育儿建议。同时,日本的幼儿园还普遍采用智能门禁系统,利用人脸识别、指纹识别等生物识别技术,严格控制人员进出,保障幼儿园的安全。​

欧洲的幼儿安全监护研究注重标准化和规范化。欧盟制定了一系列关于幼儿安全监护设备和系统的标准和规范,确保产品和系统的质量与安全性。在技术应用方面,欧洲的一些国家积极探索新兴技术在幼儿安全监护领域的应用,如利用区块链技术提高数据的安全性和可信度,确保幼儿安全数据的不可篡改和可追溯性;运用大数据分析技术,对大量的幼儿安全数据进行挖掘和分析,预测潜在的安全风险,提前采取防范措施。​

1.2.2 国内研究现状​

相比国外,我国在幼儿安全监护领域的研究起步相对较晚,但随着社会对幼儿安全的重视程度不断提高,相关研究和应用也在迅速发展。​

在国内,许多高校、科研机构和企业纷纷投入到幼儿园安全监护系统的研发中。目前,国内市场上已经出现了一些基于物联网技术的幼儿园安全监护产品。这些产品主要以环境监测和幼儿考勤管理功能为主。例如,部分系统通过温湿度传感器、PM2.5 传感器等设备,实现对幼儿园室内环境的实时监测,并将数据通过无线网络传输到教师端和家长端的应用程序上。在幼儿考勤管理方面,采用 RFID 技术或人脸识别技术,实现幼儿的快速签到和签退,方便教师和家长掌握幼儿的出勤情况。​

然而,国内现有的幼儿园安全监护系统还存在一些不足之处。一方面,系统功能相对单一,大多只侧重于某一个或几个方面的监测,缺乏对幼儿园安全状况的全面、综合监测与预警能力;另一方面,数据处理和分析能力较弱,虽然能够采集大量的数据,但往往只是简单地展示数据,未能充分挖掘数据背后的潜在价值,无法为幼儿园的安全管理提供更具针对性和科学性的决策支持。此外,在系统的稳定性和可靠性方面,与国外先进水平相比还有一定的差距,在实际应用中可能会出现数据传输延迟、传感器故障等问题。

1.3 研究目标与内容

1.3.1 研究目标​

本研究旨在设计并实现一套基于传感器技术的幼儿园安全监护系统,该系统能够实现对幼儿园室内环境和幼儿安全状况的全面、实时监测与及时预警。具体目标包括:​实现对幼儿园室内温湿度、PM2.5 浓度等环境参数的精准采集与实时显示,为幼儿营造舒适、健康的生活和学习环境提供数据支持。​

建立幼儿安全监测机制,能够及时发现幼儿的异常行为和意外情况,并发出警报,保障幼儿的人身安全。​

设计友好的用户界面,方便幼儿园管理人员、教师和家长查看监测数据和接收预警信息,实现对幼儿园安全状况的远程监控。​

通过系统测试和优化,确保系统的稳定性、可靠性和准确性,提高幼儿园安全管理的效率和水平。​

1.3.2 研究内容​

硬件系统设计:以 STM32F103C8T6 微控制器为核心,设计并搭建硬件电路。包括 DHT11 温湿度传感器电路、PM2.5 浓度监测电路、esp8266 无线通信电路、OLED 彩屏显示电路、8050 蜂鸣器报警电路以及 32 继电器控制电路等,实现各功能模块的有机结合与稳定运行。​

软件系统设计:编写系统软件程序,实现传感器数据的采集、处理与传输,以及各功能模块之间的协调工作。同时,设计用户界面,实现数据的可视化展示和用户交互功能。​

系统测试与优化:对设计完成的幼儿园安全监护系统进行全面测试,包括硬件电路测试、软件功能测试、系统稳定性测试等。根据测试结果,对系统存在的问题进行分析和优化,确保系统能够满足设计要求。

1.4 研究方法​

1.4.1 文献研究法​

通过查阅国内外相关的学术文献、研究报告、专利资料等,了解幼儿园安全监护领域的研究现状、发展趋势以及现有技术的优缺点。总结前人的研究成果和经验教训,为本研究提供理论支持和技术参考,明确研究方向和重点。​

1.4.2 系统设计法​

采用系统工程的方法,对幼儿园安全监护系统进行整体规划和设计。从硬件系统和软件系统两个方面入手,综合考虑系统的功能需求、性能指标、成本预算等因素,设计合理的系统架构和实施方案。在硬件设计过程中,根据各功能模块的特点和要求,选择合适的元器件和电路设计方案;在软件设计过程中,采用模块化编程思想,将系统划分为多个功能模块,分别进行程序编写和调试,确保系统的可扩展性和可维护性。​1.4.3 实验测试法​

在系统设计完成后,通过实验测试对系统的各项功能和性能进行验证。搭建实验环境,模拟幼儿园的实际应用场景,对系统进行硬件电路测试、软件功能测试和系统联调测试。利用专业的测试设备和工具,对传感器数据的采集精度、无线通信的稳定性、报警功能的及时性等指标进行测试和分析。根据测试结果,对系统存在的问题进行优化和改进,不断提高系统的性能和可靠性。

二、幼儿园安全监护系统总体设计方案

2.1 系统功能需求分析

幼儿园安全监护系统的功能需求紧密围绕幼儿在园期间的安全与健康保障,以及幼儿园管理的便捷性展开,旨在通过技术手段实现对幼儿园环境与幼儿状态的全方位、智能化管理。​

在环境监测功能方面,系统需实时精准采集幼儿园室内的关键环境参数。温湿度监测是基础需求,适宜的温湿度环境对幼儿健康至关重要,系统要能够持续监测室内温湿度,当温度过高或过低、湿度过大或过小时,及时发出预警,以便管理人员采取调节措施,如开启空调、加湿器或除湿器 。PM2.5 浓度监测同样不可或缺,考虑到空气质量对幼儿呼吸道健康的影响,系统需实时获取 PM2.5 数据,当浓度超标时触发警报,并联动 32 继电器电路控制通风设备,改善室内空气质量。此外,未来还可预留拓展接口,为增加光照强度、二氧化碳浓度等环境参数的监测功能提供可能。​

幼儿安全监测功能是系统的核心。通过其他传感器数据辅助判断,如结合幼儿佩戴的可穿戴设备(若后续拓展)采集的运动数据,当检测到幼儿长时间静止不动、运动状态突变等异常情况时,8050 蜂鸣器立即发出警报,同时通过 esp8266 无线通信电路将预警信息推送至教师和家长终端。对于意外摔倒、碰撞等突发状况,可在后续研究中探索压力传感器、加速度传感器等的应用,实现更精准的监测与及时预警。同时,系统应具备幼儿定位追踪功能(若后续增加相关硬件模块),防止幼儿走失,保障幼儿在园活动安全。​

数据管理与交互功能是系统易用性的关键。OLED 彩屏作为园内本地显示终端,需清晰展示实时环境数据、安全状态等信息,方便教师快速查看;管理人员可通过管理平台对系统参数进行设置,如调整环境数据的预警阈值、管理用户权限等。家长则可通过手机 APP 远程查看孩子所在班级的环境数据和安全状态,接收实时预警信息,实现与幼儿园的紧密互动,增强对孩子在园安全的掌控感。此外,系统还需具备数据存储与分析功能,对采集的各类数据进行长期存储,通过数据分析挖掘潜在规律,如分析不同时间段环境参数变化与幼儿健康状况的关联,为幼儿园安全管理提供科学决策依据。

2.2 系统架构设计

幼儿园安全监护系统的功能需求紧密围绕幼儿在园期间的安全与健康保障,以及幼儿园管理的便捷性展开,旨在通过技术手段实现对幼儿园环境与幼儿状态的全方位、智能化管理。​

在环境监测功能方面,系统需实时精准采集幼儿园室内的关键环境参数。温湿度监测是基础需求,适宜的温湿度环境对幼儿健康至关重要,系统要能够持续监测室内温湿度,当温度过高或过低、湿度过大或过小时,及时发出预警,以便管理人员采取调节措施,如开启空调、加湿器或除湿器 。PM2.5 浓度监测同样不可或缺,考虑到空气质量对幼儿呼吸道健康的影响,系统需实时获取 PM2.5 数据,当浓度超标时触发警报,并联动 32 继电器电路控制通风设备,改善室内空气质量。此外,未来还可预留拓展接口,为增加光照强度、二氧化碳浓度等环境参数的监测功能提供可能。​

幼儿安全监测功能是系统的核心。系统要具备异常行为识别能力,虽然本研究硬件暂未涉及视频分析,但可通过其他传感器数据辅助判断,如结合幼儿佩戴的可穿戴设备(若后续拓展)采集的运动数据,当检测到幼儿长时间静止不动、运动状态突变等异常情况时,8050 蜂鸣器立即发出警报,同时通过 esp8266 无线通信电路将预警信息推送至教师和家长终端。对于意外摔倒、碰撞等突发状况,可在后续研究中探索压力传感器、加速度传感器等的应用,实现更精准的监测与及时预警。同时,系统应具备幼儿定位追踪功能(若后续增加相关硬件模块),防止幼儿走失,保障幼儿在园活动安全。​

数据管理与交互功能是系统易用性的关键。OLED 彩屏作为园内本地显示终端,需清晰展示实时环境数据、安全状态等信息,方便教师快速查看;管理人员可通过管理平台对系统参数进行设置,如调整环境数据的预警阈值、管理用户权限等。家长则可通过手机 APP 远程查看孩子所在班级的环境数据和安全状态,接收实时预警信息,实现与幼儿园的紧密互动,增强对孩子在园安全的掌控感。此外,系统还需具备数据存储与分析功能,对采集的各类数据进行长期存储,通过数据分析挖掘潜在规律,如分析不同时间段环境参数变化与幼儿健康状况的关联,为幼儿园安全管理提供科学决策依据,系统架构图如图2-1所示。

图2-1 系统架构图

2.3 系统设计思路与创新点

2.3.1 系统设计思路

系统设计以保障幼儿在园安全与健康为核心目标,基于幼儿园安全监护的实际需求,综合运用传感器技术、微控制器技术、无线通信技术等,构建一个功能全面、稳定可靠的智能化安全监护系统。​

在硬件设计上,选用 STM32F103C8T6 作为主控芯片,其性能稳定、资源丰富,能够满足系统对数据处理和多模块控制的需求。围绕主控芯片,构建传感器采集网络,DHT11 温湿度传感器、PM2.5 检测模块等各司其职,实现对幼儿园室内环境参数的实时采集;通过 esp8266 电路搭建无线通信桥梁,使数据能够快速、稳定地传输至云端或家长手机端;8050 蜂鸣器与 32 继电器电路组成报警和设备控制单元,当监测到异常情况时,蜂鸣器及时发出警报,继电器联动控制相关设备,如启动通风设备改善空气质量。同时,OLED 彩屏作为本地显示终端,将采集到的数据直观呈现,方便园内工作人员随时查看。各硬件模块既相互独立,又通过电路设计实现有机结合,形成一个完整的硬件系统架构。​

软件设计采用模块化编程思想,将系统功能划分为数据采集模块、数据处理模块、通信模块、显示模块和控制模块等。数据采集模块负责与硬件传感器对接,按照设定的频率准确获取环境数据;数据处理模块对采集到的数据进行滤波、校准和分析,判断数据是否异常;通信模块管理 esp8266 电路,实现数据的无线传输;显示模块驱动 OLED 彩屏,以清晰、友好的界面展示数据;控制模块根据数据处理结果,控制蜂鸣器、继电器等执行相应动作。各软件模块之间通过接口进行数据交互和功能调用,确保系统运行的流畅性和稳定性。同时,设计友好的用户界面,方便管理人员、教师和家长操作和查看数据,实现对系统的便捷管理和远程监控。​

在系统设计过程中,充分考虑系统的可扩展性和兼容性。预留硬件接口,便于后续根据实际需求添加新的传感器或功能模块,如未来可增加幼儿定位追踪、有害气体检测等功能;在软件设计上,采用分层架构,提高软件的可维护性和可扩展性,方便系统功能的升级和优化。此外,注重系统的安全性设计,对数据传输进行加密处理,防止数据泄露和被篡改,保障系统的稳定运行和用户信息安全。

2.3.2 系统创新点​

(1)功能集成与拓展性创新​

本系统打破传统幼儿园安全监护系统功能单一的局限,将环境监测、幼儿安全监测和数据管理交互等功能进行有机集成。在环境监测方面,不仅实现温湿度和 PM2.5 浓度的实时监测,还预留了拓展接口,为后续增加光照强度、二氧化碳浓度、有害气体检测等功能提供可能,能够全方位、多层次地保障幼儿园室内环境安全。在幼儿安全监测上,通过多种传感器数据的融合分析,辅助判断幼儿异常行为,虽然未采用复杂的视频分析技术,但通过可穿戴设备(后续拓展)采集的运动数据等,同样能够实现对幼儿意外情况的及时预警,并且为未来增加幼儿定位追踪等功能奠定基础,相比传统系统,具有更强的功能拓展性和适应性。​

(2)技术融合与应用创新​

系统深度融合多种先进技术,实现技术应用的创新。以 STM32F103C8T6 微控制器为核心,搭配 DHT11 温湿度传感器、esp8266 无线通信模块等,将传感器技术、微控制器技术和无线通信技术紧密结合。在数据传输方面,利用 esp8266 电路实现数据的实时无线传输,使家长能够通过手机 APP 远程查看幼儿园内的实时情况,突破了传统系统数据传输的局限性。同时,在报警和设备控制环节,8050 蜂鸣器与 32 继电器电路的联动设计,实现了异常情况的自动报警和设备的智能控制,提高了系统的自动化程度和应急处理能力。​

(3)用户交互与体验创新​

在用户交互方面,系统注重不同用户群体的需求。对于园内工作人员,OLED 彩屏以直观、简洁的界面展示数据,方便快速查看;对于管理人员,提供功能丰富的管理平台,可对系统参数进行灵活设置和管理;对于家长,通过手机 APP 实现远程实时查看和信息接收,增强了家长对孩子在园安全的掌控感和参与感。此外,系统具备的数据存储与分析功能,能够挖掘数据背后的潜在价值,为幼儿园安全管理提供科学决策依据,相比传统系统仅能展示数据的功能,为用户带来了更丰富、更有价值的交互体验。

三、系统硬件设计

3.1 核心控制模块

在本次幼儿园安全监护系统设计中,选用 STM32F103C8T6 单片机作为核心控制器,相较于经典的 51 系列单片机,其展现出诸多显著优势与先进特性。​从性能层面剖析,STM32F103C8T6 单片机具备卓越的运算速度,运行效率远高于 51 单片机,为系统复杂数据处理与快速响应奠定了坚实基础。尤为突出的是,其内部集成了 2 个 AD 转换器,在针对烟雾及 CO 浓度检测等应用场景中,无需额外外接 ADC 模块进行模拟数字转换,极大简化了硬件设计架构,有效降低了系统成本与开发复杂度,提升了系统的稳定性与可靠性。​

在通信及控制功能方面,STM32F103C8T6 单片机展现出强大的实力。51 单片机仅配备 1 个串口用于通信,而 STM32F103C8T6 单片机则具备 5 个串口,对于那些依赖串口通信的外部模块而言,无需借助 CD4052 等双串口转换模块,即可轻松实现多设备间的高效通信连接,这一特性使其在复杂通信需求的应用领域中得到广泛应用。此外,STM32F103C8T6 单片机支持多种时钟模式,可根据不同应用场景灵活配置,在对功耗要求严苛的产品设计中,能够通过合理选择时钟模式,精准控制功耗,从而占据重要地位。​

深入探究 STM32F103C8T6 单片机的特性:其起振晶部分采用 RTC 低负载方式,摒弃了传统廉价的圆柱晶振,这种设计优化了时钟精度与稳定性。该单片机拥有 48 个引脚,为丰富的外设连接提供了充足接口资源。工作频率可达 72MHZ,确保了高效的数据处理与运算能力。其内部集成 3 个普通定时器和 1 个高级定时器,可满足多样化的定时控制需求。2 个 12 位 / 16 通道的 ADC 模数转换模块,能够实现高精度的模拟信号数字化采集。采用 3.3V 稳压芯片,可稳定输出最大 300MA 电流,为系统各模块稳定供电提供保障。同时,该单片机支持 ST - LINK 和 JTAG 调试下载方式,极大便利了开发过程中的程序调试与下载,提升了开发效率。存储资源方面,配备 64kb byte FLASH 用于程序存储,20byte Sram 用于数据的快速读写,为系统程序运行与数据处理提供了可靠的存储支持 。STM32实物图如图3-1所示:

图3-1 STM32F103C8T6 实物图

1、电源指示灯LED(PWR通常为红色):如果电源指示灯亮亮说明单片机正常运行,如果较暗或者闪烁,表示此单片机可能存在故障。

2、用户LED(PC13):这个功能的使用大大的方便了进行一些比较简单的功能测试,如单片机的运行状态等,方便初学者进行更好的测试。

3、单片机上采用了跳帽的方式,可以对stm32进行3种编程方式。如用户的SARM、闪存和系统的存储器。

4、为单片机的复位电路。

5、8M晶振:主要是用于设置单片机系统的频率为72MHZ。

6、32.768KHz晶振:可供内置RTC使用,避免了需要专门的时钟芯片进行定时器处理等。

在 STM32F103C8T6 单片机最小系统中,BOOT 引脚对于系统启动模式的设定起着关键作用。启动过程通常是在程序下载完成后,芯片重启时,于 SWCLK 的第 4 个上升沿,BOOT 引脚的值将被锁存。用户可通过灵活配置 BOOT1 和 BOOT0 引脚的逻辑电平状态,精准选择复位后的启动模式。这一机制主要服务于程序下载与系统启动流程,理解其工作原理有助于优化开发调试过程。​

关于程序下载接口,单片机的 VSS_3.3V、GND、SWIO 及 SWCLK 引脚共同构成了程序下载通道。程序下载存在多种技术路径,本设计选用 STLINK V2 下载器进行程序烧录操作。STLINK V2 下载器作为一种硬件设备,需与单片机对应引脚进行正确电气连接,随后借助 Keil5 集成开发环境完成程序下载任务。值得注意的是,STLINK V2 并非软件工具,若开发者期望自行开展程序下载工作,可通过电商平台购置该下载器,其市场价格约为 30 元 / 个。鉴于下载程序的具体操作涉及实践细节与多种环境因素,需开发者自行探索学习,在此难以详尽指导。​

上电复位机制基于特定电路原理实现。在上电瞬间,电容开始充电,RESET 引脚会短暂出现低电平信号。该低电平的持续时长由电路中的电阻 R 与电容 C 共同决定,遵循 t = 1.1RC 这一固定计算公式。以本系统为例,当电阻取值为 10KΩ,电容为 0.1μF 时,经计算可得低电平持续时间约为 1.1ms,而系统需求的复位信号持续时长亦约为 1ms,恰好满足复位要求。​

手动复位功能则通过按键操作达成。当手动按键按下时,RESET 引脚与地之间形成电气导通,进而产生一个低电平信号,触发系统复位操作。在电路中,标识为 104 的电容为去耦电容,其主要功能是抑制电源线上的高频噪声,保障电路中各器件供电的稳定性,减少电源波动对芯片正常工作的干扰。​

晶振电路在 STM32F103C8T6 单片机系统中至关重要。由于 STM32 系列单片机的最大时钟频率可达 72MHz,本设计选用 8MHz 的晶振作为时钟源。通过单片机内部的倍频电路,可将 8MHz 的晶振频率倍频至 72MHz,为系统提供稳定的高频时钟信号,以满足其高速数据处理与运算需求。在晶振电路中,两个陶瓷电容(负载电容)扮演着不可或缺的角色。它们的主要作用在于协助晶振建立稳定的振荡回路,将电能有效转换为振荡信号能。若缺失这两个电容,振荡部分将因缺乏完整回路而无法起振,导致系统无法正常工作。此外,这两个电容还具备滤波功能,可对晶振输出波形进行校准,优化波形质量。在实际电路设计中,陶瓷电容的取值范围通常在 20pF 至 30pF 之间,并非要求严格固定取值,选用该范围内的值均可保障电路正常工作 ,电路图如图3-2所示。

图3-2 STM32F103C8T6 单片机电路图

3.2 32继电器电路模块

在电子系统设计中,继电器驱动电路是实现单片机与大功率负载连接的关键环节。如展示的该典型继电器驱动电路图,广泛存在于网络资源及标准电子技术教科书中。​单片机作为一种弱电设备,通常工作于 5V 甚至更低的电压环境,驱动电流处于 mA 级以下。然而,在诸如控制电动机等大功率应用场景中,单片机自身的驱动能力明显不足。因此,需要引入功率驱动环节来实现弱电与强电之间的衔接,而继电器驱动正是一种典型且基础的功率驱动方式。这里的继电器驱动涵盖两层含义:其一,对继电器本身进行驱动,因为相较于单片机,继电器属于功率器件;其二,通过继电器进一步驱动其他大功率负载,例如继电器可驱动中间继电器,甚至能直接驱动接触器,从而构建起单片机与大功率负载之间的桥梁。这一关键作用常常令部分未系统学习电子技术的电气工程师感到困惑,即为何小小的单片机芯片能够掌控像电动机这类大功率设备的运行。​

深入理解该继电器驱动电路,关键在于把握其中三极管的工作原理。三极管是电子电路中极为重要的元件,具有放大和开关两大功能。从专业角度而言,开关功能可视为放大功能的极限状态,但为便于理解其在本电路中的工作机制,将两者分开阐述。在本电路中,三极管主要发挥开关作用。​

形象地说,可将三极管类比为一个水龙头。电路中的 Vcc 相当于水源水池,继电器如同水轮机,而 GND 则代表比水池水位低的位置。三极管的基极(带有电阻的引脚)类似于水龙头的把手。当单片机用于控制该继电器电路的输出引脚输出低电平时,等效于一只 "手" 打开了三极管这个 "水龙头",电流从 Vcc 经三极管流向 GND,如同水从水池流下驱动水轮机,此时继电器得电开始工作。反之,当单片机引脚输出高电平时,"手" 关闭 "水龙头",继电器因无电流通过而停止工作。由此可见,三极管在电路中充当了一个受电压(电流)控制的开关角色,这也是其有时被称为电子开关以区别于机械开关的原因。​

电路中的保护二极管也是不容忽视的重要元件。若不深入探究其原理,可先记住在三极管驱动继电器的电路中,保护二极管几乎是标配。其接法具有严格要求,需并联在继电器两端,且阴极必须连接至 Vcc。保护二极管的存在主要是为了应对继电器在断电瞬间产生的反电动势。当继电器断电时,其线圈会产生反向感应电动势,该电动势可能会对三极管及其他电路元件造成损害。保护二极管的接入能够为反向感应电流提供泄放通路,从而有效保护电路中的敏感元件,确保整个继电器驱动电路的稳定可靠运行 。

在该继电器电路中,选用 8050 三极管,其主要功能是实现电流放大。需注意,继电器存在多种连接方式。可将继电器视作一种控制电路通断的开关元件。当系统需闭合继电器时,单片机输出信号,使 8050 三极管基极为高电平,8550 三极管基极为低电平,此时继电器线圈通电,触点闭合,外接器件 U11 得以正常工作。

为直观监测继电器的闭合状态,电路中增设了二极管指示灯。继电器闭合时,指示灯 LED 亮起。而电路中接入二极管,是鉴于继电器在断开瞬间,其线圈会产生反向感应电流,该电流可能导致三极管击穿。此二极管能够为反向电流提供泄放路径,从而有效保护电路中的三极管等敏感元件 ,电路图如图3-3所示。

图3-3 电路设计

3.3 8050 蜂鸣器模块设计

在基于 STM32 单片机的设计中,需充分考量单片机上电后的引脚状态特性。STM32 单片机上电后,引脚处于高组态状态。鉴于此,在本设计的电路搭建中,不能选用 8550 三极管。这是因为 8550 三极管的导通特性为低电平导通,而 8050 三极管为高电平导通,更契合本设计需求。

以蜂鸣器报警控制电路为例,当系统判定需要触发蜂鸣器报警时,需由 STM32 单片机向相关控制引脚输出高电平信号。该高电平信号作用于 8050 三极管的基极,使得三极管导通。由于 8050 三极管自身具备显著的电流放大能力,其电流放大倍数可达 200 倍,从而能够为蜂鸣器提供足够驱动电流,实现蜂鸣器报警功能。

在该电路中,串联接入 1k 电阻具有重要意义。其主要作用在于限流,通过限制流入三极管基极的电流大小,确保三极管工作在安全的电流范围内。一方面,防止过大电流涌入导致三极管因过热而损坏;另一方面,也保障了整个电路的稳定性与可靠性。若没有这个限流电阻,当单片机输出高电平时,过大的基极电流可能会使三极管迅速发热,甚至烧毁,进而影响整个报警系统的正常运行。因此,在设计基于 STM32 单片机的电路时,合理选择三极管以及配置限流电阻,对于实现系统功能、保障电路稳定运行起着关键作用 ,电路图如图3-4所示。

图3-4 8050 蜂鸣器电路设计

3.4 DHT11温湿度检测模块设计

本次设计采用DHT11温湿度传感器模块,DHT11传感器是市场上采用的温湿度传感器。此传感器占用的面积非常简单,精度为0.2.采用的是单总线的数据传输方式。这个传感器抗干扰能力非常的强,经常用于高炉测温、机房检测、家庭温度控制等方面适合于很多空间比较小的场合和数字温度检测等领域。这款温度传感器转换时间为75ns,比传统DS1820速度要快很多。检测的结果以数字量方式串行传送。温湿度传感器模块电路图如图3-5所示:

图3-5 温湿度传感器电路图

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。

DHT11传感器实物图如图3-6所示:

图3-6 DHT11传感器实物图

(1)引脚介绍:

Pin1:(VDD),电源引脚,供电电压为3~5.5V。

Pin2:(DATA),串行数据,单总线。

Pin3:(NC),空脚,请悬浮。

Pin4(VDD),接地端,电源负极。

(2)接口说明 :

建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,接口图如图3-7所示。

图3-7 接口图

(3)数据帧的描述:

DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:

一次完整的数据传输为40bit,高位先出。

数据格式:8bit湿度整数数据+8bit湿度小数数据

+8bi温度整数数据+8bit温度小数数据

数据传送正确时校验和数据等于"8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据"所得结果的末8位。

(4)电气特性:VDD=5V,T = 25℃,除非特殊标注

表3-1 DHT11的电气特性

|------|----|-----|-----|-----|----|
| 参数 | 条件 | Min | typ | max | 单位 |
| 供电 | DC | 3 | 5 | 5.5 | V |
| 供电电流 | 测量 | 0.5 | | 2.5 | mA |
| 供电电流 | 平均 | 0.2 | | 1 | mA |
| 供电电流 | 待机 | 100 | | 150 | uA |
| 采样周期 | 秒 | 1 | | | 次 |

注:采样周期间隔不得低于1秒钟。

(5)时序描述:

用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。

通讯过程如下图3-8所示:

图3-8 通讯过程

总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高,如图3-9所示。

图3-9 总线空闲状态通讯过程

总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。

数字0信号表示方法如下图3-10所示:

图3-10 数字0信号表示方法

数字1信号表示方法如下图3-11所示

图3-11 数字1信号表示方法

3.5甲醛检测 模块

甲醛检测模块采用的硬件连接方式在系统中起着关键作用,其接口 CON5 为 5 引脚设计。VCC 引脚(第 1 脚)连接到系统电源,为模块提供 5.0±0.2VDC 的工作电压,确保模块正常运行。稳定的电源供应是模块准确检测和数据传输的基础,可通过电源稳压电路防止电压波动对模块造成影响。TXD 引脚(第 2 脚)为数据发送端,负责将甲醛检测模块采集并处理后的 TVOC、PM2.5 等相关气体浓度数据,以 UART (5V 电平) 的格式发送出去,与主控芯片(如 STM32F103C8T6)的接收引脚相连,实现数据传输。RXD 引脚(第 3 脚)是数据接收端,用于接收主控芯片发送的指令,如设置参数、启动检测等命令,实现模块与主控芯片之间的双向通信。GND 引脚(第 5 脚)接地,为模块提供电气参考点,保证电路中各点电位的稳定性和准确性,减少电磁干扰对检测结果的影响。第 4 脚未连接,在电路设计时可根据后续功能拓展需求,预留其连接功能。在实际电路设计中,需合理布局布线,缩短信号传输距离,减少信号衰减和干扰。同时,可添加滤波电容等元件,进一步提高电路的稳定性和抗干扰能力,确保甲醛检测模块能够稳定、准确地工作,为幼儿园安全监护系统提供可靠的环境数据。

图3-12 电路设计

电化学甲醛模块性能参数表

|------------|-----------------------------------------------------------------------|
| 参数名称 | 参数值 |
| 模块型号 | SM427N001 |
| 传感器 | SM180 |
| 检测气体 | 氨气、氢气、酒精、一氧化碳、甲烷、丙烷、甘烷、苯乙烯、丙二醇、酚、甲苯、乙苯、二甲苯、甲醛等有机挥发气体、香烟、木材、纸张燃烧烟雾、油烟等 |
| TVOC 气体量程 | 0.01 ~ 5 mg/m3 |
| TVOC 分辨率 | 0.01 mg/m3 |
| PM2.5 粉尘量程 | 5 ~ 800 ug/m3 |
| PM2.5 分辨率 | 1 ug/m3 |
| 精度 (FS) | <±5 |
| 物理接口 | XH2.54 - 4 立式插座 |
| 输出数据 | UART (5V 电平) |
| 工作电压 | 5.0±0.2VDC |
| 工作电流 | ≤80mA |
| 预热时间 | 2 分钟 |
| 响应时间 | ≤10 秒 |
| 恢复时间 | ≤20 秒 |
| 工作温度 | -10℃ ~ 50℃ |
| 工作湿度 | ≤95%RH |
| 存储温度 | - 20 ~ 60℃ |
| 存储湿度 | ≤60 %RH |
| 外形尺寸 | 24×20×16mm(L×W×H) |
| 重量 | 约 20 克 |
| 灵敏度 | 0.5ppm 氢气 |

电化学甲醛模块串口通信参数表

|------|---------|
| 参数名称 | 参数值 |
| 波特率 | 9600bps |
| 数据位 | 8 位 |
| 停止位 | 1 位 |
| 校验位 | 无 |

电化学甲醛模块串口数据流格式表

|-------|-------------|----------------|
| 数据位标识 | 含义 | 数据示例 |
| B1 | 模块地址 | 2Ch(固定地址) |
| B2 | VOC 浓度高字节 | 0Xxh(示例中为 00h) |
| B3 | TVOC 浓度低字节 | 0Xxh(示例中为 57h) |
| B4 | PM2.5 浓度高字节 | 0Xxh(示例中为 00h) |
| B5 | PM2.5 浓度低字节 | 0Xxh(示例中为 88h) |
| B6 | 校验和 | 0Xxh(示例中为 0Eh) |

电化学甲醛模块数据计算方法说明

校验和计算:校验和 (B6) = unit_8 (B1+B2+B3+B4+B5) ,即对 B1 - B5 字节数据求和后取低 8 位。

污染气体浓度值计算(mg/m3):(TVOC 浓度高 (B2)*256 + TVOC 浓度低 (B3))0.01 。例如在数据范例中,(00h256 + 57h)*0.01 = 0.87mg/m3 。

粉尘 PM2.5 浓度值计算(ug/m3):PM2.5 浓度高 (B4)256 + PM2.5 浓度低 (B5) 。如数据范例中,00h256 + 88h = 139ug/m3 。

电化学甲醛模块设计要点

硬件连接:基于其 XH2.54 - 4 立式插座物理接口,在电路设计时需选用适配的连接器,确保与主控芯片(如 STM32F103C8T6 )的 UART 接口正确连接,保证数据传输的稳定性。同时,要注意电源供应满足 5.0±0.2VDC 的工作电压要求,可通过电源稳压电路实现。

软件编程:在软件层面,依据 9600bps 的波特率、8 位数据位、1 位停止位且无校验位的通信参数,编写串口通信程序。按照串口数据流格式,准确读取 B1 - B6 的数据,并运用上述数据计算方法,解析出 TVOC 和 PM2.5 的实际浓度值,为后续的浓度判断和报警功能实现提供准确数据支持 。还需考虑模块 2 分钟预热时间的特性,在系统初始化时合理安排流程,确保在模块稳定工作后进行数据采集。

3.6 OLED显示设计

在当前显示技术领域,LCD(液晶显示器)凭借成熟的技术和相对较低的成本,长期占据市场主导地位。然而,随着用户对显示效果、设备便携性以及能耗要求的不断提高,LCD 的局限性逐渐显现。LCD 显示依赖背光源提供照明,这不仅增加了设备的厚度与功耗,还导致在强光环境下显示效果不佳;其视角范围较窄,当观看角度偏离屏幕正前方时,画面容易出现色彩失真、对比度下降的情况;同时,LCD 的响应速度相对较慢,在显示动态画面时会产生拖影现象,影响视觉体验。​

与 LCD 相比,OLED(有机发光二极管)显示技术以其独特的自发光特性,有效克服了上述问题。OLED 无需背光源,每个像素点可独立发光,这使得 OLED 屏幕能够实现更薄的机身设计,降低设备整体功耗;由于自发光特性,OLED 具备近乎 180 度的超广视角,无论从何种角度观看,画面色彩和对比度都能保持一致,为用户带来沉浸式视觉体验;此外,OLED 的响应速度极快,能够精准呈现高速运动画面,彻底解决拖影问题。除了这些优势,OLED 还拥有色彩艳丽、图像画质稳定、分辨率高、温度适应性强等特点,并且其材料的柔韧性为柔性显示技术的发展提供了可能,使得曲面屏、折叠屏等创新形态成为现实,在智能手机、平板电脑、可穿戴设备等领域展现出巨大的应用潜力,被业界视为下一代平面显示技术的重要发展方向。​

尽管目前 OLED 技术在大尺寸显示领域仍面临成本较高、良品率较低等挑战,导致其市场应用尚未完全普及,但在中小尺寸显示市场已呈现出强劲的发展势头。近年来,随着生产工艺的不断改进和技术的持续创新,OLED 的生产成本逐步降低,产能不断提升,应用范围也在持续扩大。特别是软性有机发光显示技术的突破,进一步拓宽了 OLED 的应用边界,使其在高端智能手机、笔记本电脑等产品上的渗透率不断提高,成为显示技术领域的研究热点,预示着 OLED 在未来有望全面取代 LCD,引领显示技术的变革。​

在本基于 STM32F103 单片机的新能源汽车充电桩控制器系统设计中,充分考虑到 OLED 显示技术的诸多优势,选用了中景园电子生产的 0.96 寸 OLED 显示屏作为人机交互界面的核心部件。该显示屏在满足充电桩系统显示需求的同时,其特性也为系统整体性能提升带来显著价值。​

从显示性能来看,0.96 寸 OLED 显示屏拥有 128*64 的分辨率,能够清晰呈现丰富的图文信息。在空调系统中,无论是显示用户操作提示、充电参数(如电池电压、电量、充电时长等),还是展示费用结算信息、故障报警提示,都能以细腻的画质和鲜明的色彩呈现,确保用户在各种环境下都能快速、准确地获取所需信息。​

在接口设计方面,该显示屏具备高度的灵活性。其裸屏接口支持 6800、8080 两种并行接口方式,以及 IIC 接口方式、3 线或 4 线的串行 SPI 接口方式,通过屏上的 BS0-BS2 引脚即可轻松配置。多样化的接口选择,不仅方便了与 STM32F103 单片机的连接,还能根据不同的应用场景和系统需求进行灵活搭配。在本系统实验中,选用的四针 IIC 模块接口,仅需两根数据线便能实现对 OLED 显示屏的控制,大大简化了硬件电路设计,减少了布线复杂度,同时降低了系统成本,提高了系统的稳定性和可靠性。​

中景园电子针对该显示屏开发的两种接口样板 ------ 七针的 SPI/IIC 兼容模块和四针的 IIC 模块,进一步提升了产品的易用性。这两种模块均采用标准化设计,支持即插即用,开发人员无需复杂的接口适配工作,即可快速将显示屏集成到系统中,有效缩短了产品研发周期。特别是四针 IIC 模块,凭借其简洁的连接方式和高效的数据传输能力,与本系统的设计理念高度契合,在保障显示功能稳定运行的同时,为系统的整体优化提供了有力支持。中景园电子 0.96 寸 OLED 显示屏凭借其优异的显示性能、灵活的接口设计和便捷的使用特性,完美适配本新能源汽车充电桩控制器系统的需求,不仅为用户带来良好的交互体验,也为系统的智能化、集成化发展奠定了坚实基础,充分展现了 OLED 显示技术在实际应用中的独特价值与广阔前景。显示模块实物图如图 3.8所示

图3-13 显示模块实物图

四、系统软件设计

4.1 软件开发环境与工具

本设计所用到的编程软件为Keil5,其界面如图4-1所示:

图4-1 Keil5开发界面

本设计所使用的编程环境是Keil5,相对于其他软件编程环境,Keil5更加的轻便快捷,操作更加的简单,深受广大嵌入式软件开发者的喜爱。Keil5支持多种芯片,包括51单片机、STM32、HC32、NXP等,生成的HEX文件,可通过烧录器直接烧录到单片机中,非常方便。另外,Keil5编译有三种,一种是单编,一种是部分编译,还有一种是全部编译,这样给开发人员更多的选择,并且编译的结果,显示在界面的最下方,供开发者查找错误。

4.2 软件功能模块设计

4.2.1 数据采集模块

数据采集模块负责与硬件传感器对接,按设定频率获取幼儿园环境数据,是系统运行的基础。以 DHT11 温湿度传感器和电化学甲醛模块的数据采集为例,DHT11 采用单总线数据格式,在代码实现上,需先对连接引脚进行初始化配置,通过拉高总线并保持一段时间进行起始信号发送,随后等待传感器响应。在接收到响应信号后,按顺序读取温湿度数据。

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| // DHT11数据采集代码示例 #define DHT11_PIN PA5 // 假设连接到PA5引脚 void DHT11_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = DHT11_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(DHT11_PIN, &GPIO_InitStructure); } void DHT11_Read_Data(u8 *temp, u8 *humi) { // 起始信号 DHT11_PIN_LOW; delay_ms(20); DHT11_PIN_HIGH; delay_us(30); // 等待响应 while(DHT11_PIN_READ); while(!DHT11_PIN_READ); while(DHT11_PIN_READ); // 读取数据 //... } |

电化学甲醛模块通过 UART 接口传输数据,软件中需对串口进行初始化配置,设置波特率、数据位、停止位和校验位等参数。在接收数据时,利用中断或查询方式,将接收到的字节数据存储到指定缓冲区,以便后续处理。

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| // 串口初始化代码示例 void USART1_Init(void) { USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_Cmd(USART1, ENABLE); } |

4.2.2 数据处理模块

数据处理模块对采集到的数据进行滤波、校准和分析,判断数据是否异常。对于温湿度数据,可采用中值滤波或加权平均滤波方法,去除噪声干扰,提高数据准确性。在判断温湿度是否异常时,与预设的安全阈值进行比较。

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| // 中值滤波代码示例 #define FILTER_SIZE 10 int temp_filter_bufFILTER_SIZE; int humi_filter_bufFILTER_SIZE; int filter_index = 0; int Median_Filter(int *buf) { int i, j, temp; for(i = 0; i < FILTER_SIZE - 1; i++) { for(j = 0; j < FILTER_SIZE - i - 1; j++) { if(bufj > bufj + 1) { temp = bufj; bufj = bufj + 1; bufj + 1 = temp; } } } return bufFILTER_SIZE / 2; } // 判断温湿度是否异常 void Check_Thresh(u8 temp, u8 humi) { if(temp > MAX_TEMP || temp < MIN_TEMP) { // 触发温度异常处理逻辑 } if(humi > MAX_HUMI || humi < MIN_HUMI) { // 触发湿度异常处理逻辑 } } |

对于电化学甲醛模块采集的 TVOC 和 PM2.5 数据,根据其数据计算方法,对接收的原始数据进行解析,得到实际浓度值后,同样与设定的安全阈值比较,判断空气质量是否达标。

4.2.3 通信模块

通信模块主要负责管理 esp8266 电路,实现数据的无线传输。在初始化 esp8266 模块后,通过 AT 指令配置模块的工作模式、连接目标网络等参数。当数据准备好后,将数据打包发送至云端服务器或家长手机端。

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| // esp8266初始化及连接代码示例 void ESP8266_Init(void) { // 发送AT指令进行初始化 USART_SendString(USART1, "AT\r\n"); delay_ms(1000); // 设置工作模式为STA模式 USART_SendString(USART1, "AT+CWMODE=1\r\n"); delay_ms(1000); // 连接到指定WiFi网络 USART_SendString(USART1, "AT+CWJAP=\"SSID\",\"PASSWORD\"\r\n"); delay_ms(5000); } // 数据发送函数 void Send_Data_To_Server(u8 *data) { // 建立TCP连接 USART_SendString(USART1, "AT+CIPSTART=\"TCP\",\"SERVER_IP\",\"PORT\"\r\n"); delay_ms(2000); // 发送数据长度 char len_str20; sprintf(len_str, "AT+CIPSEND=%d\r\n", strlen(data)); USART_SendString(USART1, len_str); delay_ms(1000); // 发送数据 USART_SendString(USART1, data); delay_ms(1000); } |

4.2.4 显示模块

显示模块驱动 OLED 彩屏,以友好界面展示数据。首先对 OLED 进行初始化,设置显示模式、字体大小等参数。然后将处理后的数据按一定格式在屏幕上进行显示,如将温湿度、PM2.5 浓度等信息分区域展示。

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| // OLED初始化代码示例 void OLED_Init(void) { OLED_WR_Byte(0xAE,OLED_CMD); //关闭显示 OLED_WR_Byte(0xD5,OLED_CMD); //设置时钟分频因子,震荡频率 OLED_WR_Byte(80,OLED_CMD); //3:0,分频因子;7:4,震荡频率 OLED_WR_Byte(0xA8,OLED_CMD); //设置驱动路数 OLED_WR_Byte(0X3F,OLED_CMD); //默认0X3F(1/64) OLED_WR_Byte(0xD3,OLED_CMD); //设置显示偏移 OLED_WR_Byte(0X00,OLED_CMD); //默认为0 OLED_WR_Byte(0x40,OLED_CMD); //设置显示开始行 5:0,行数. //...其他初始化设置 OLED_WR_Byte(0x8D,OLED_CMD); //电荷泵设置 OLED_WR_Byte(0x14,OLED_CMD); //bit2,开启/关闭 OLED_WR_Byte(0x20,OLED_CMD); //设置内存地址模式 OLED_WR_Byte(0x02,OLED_CMD); //1:0,00,列地址模式;01,行地址模式;10,页地址模式;默认10; OLED_WR_Byte(0xA1,OLED_CMD); //段重定义设置,bit0:0,0->0;1,0->127; OLED_WR_Byte(0xC8,OLED_CMD); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COMN-1->COM0;N:驱动路数 OLED_WR_Byte(0xDA,OLED_CMD); //设置COM硬件引脚配置 OLED_WR_Byte(0x12,OLED_CMD); //5:4配置 OLED_WR_Byte(0x81,OLED_CMD); //对比度设置 OLED_WR_Byte(0xEF,OLED_CMD); //1~255;默认0X7F (亮度设置,越大越亮) OLED_WR_Byte(0xD9,OLED_CMD); //设置预充电周期 OLED_WR_Byte(0xf1,OLED_CMD); //3:0,PHASE 1;7:4,PHASE 2; OLED_WR_Byte(0xDB,OLED_CMD); //设置VCOMH 电压倍率 OLED_WR_Byte(0x30,OLED_CMD); //6:4 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc; OLED_WR_Byte(0xA4,OLED_CMD); //全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏) OLED_WR_Byte(0xA6,OLED_CMD); //设置显示方式;bit0:1,反相显示;0,正常显示 OLED_WR_Byte(0xAF,OLED_CMD); //开启显示 } // 数据显示函数 void Display_Data(u8 temp, u8 humi, float pm2_5) { OLED_ShowString(0, 0, "Temp:"); OLED_ShowNum(40, 0, temp, 3); OLED_ShowString(70, 0, "C"); OLED_ShowString(0, 16, "Humi:"); OLED_ShowNum(40, 16, humi, 3); OLED_ShowString(70, 16, "%"); OLED_ShowString(0, 32, "PM2.5:"); OLED_ShowFloat(40, 32, pm2_5, 1); OLED_ShowString(70, 32, "ug/m3"); } |

4.2.5 控制模块

控制模块根据数据处理模块的判断结果,控制蜂鸣器、继电器等执行相应动作。当检测到环境参数异常时,控制蜂鸣器发出警报,同时通过继电器控制相关设备,如开启通风设备改善空气质量。

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| // 蜂鸣器控制代码示例 #define BEEP_PIN PA8 // 假设连接到PA8引脚 void BEEP_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = BEEP_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(BEEP_PIN, &GPIO_InitStructure); } void BEEP_ON(void) { GPIO_SetBits(BEEP_PIN); } void BEEP_OFF(void) { GPIO_ResetBits(BEEP_PIN); } // 继电器控制代码示例 #define RELAY_PIN PB5 // 假设连接到PB5引脚 void RELAY_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = RELAY_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(RELAY_PIN, &GPIO_InitStructure); } void RELAY_ON(void) { GPIO_SetBits(RELAY_PIN); } void RELAY_OFF(void) { GPIO_ResetBits(RELAY_PIN); } |

通过上述软件功能模块的设计与代码实现,幼儿园安全监护系统能够高效、稳定地运行,实现对幼儿园环境和幼儿安全状况的全面监测与智能管理 。

五、系统测试与验证

5.1 测试环境搭建

为确保系统测试结果的准确性与可靠性,搭建与幼儿园实际环境相近的测试场景。选取一间面积约 60 平方米的教室作为测试场地,模拟幼儿园日常教学与活动空间。在教室不同位置均匀部署系统硬件设备,其中 DHT11 温湿度传感器放置在教室中央、角落等 3 个点位,确保全面采集温湿度数据;电化学甲醛模块置于靠近窗户、空调出风口等可能影响空气质量的区域,以准确监测 PM2.5 浓度及 TVOC 含量;ESP8266 无线通信模块安装在教室网络信号稳定处,保障数据传输的流畅性。同时,在教室外设置服务器接收端,模拟云端服务器与家长手机端,用于接收和存储系统上传的数据。此外,配备专业的温湿度检测仪、PM2.5 检测仪等作为对比设备,用于验证系统采集数据的准确性。

5.2 测试方法与步骤

系统测试采用黑盒测试与白盒测试相结合的方法。在黑盒测试中,模拟正常使用场景和异常场景,观察系统功能实现情况;白盒测试则深入代码层面,检查程序逻辑和数据处理的正确性。

硬件功能测试:对各硬件模块进行单独测试,检查传感器数据采集是否正常、通信模块是否能稳定传输数据、显示模块是否清晰展示信息、报警与控制模块能否及时响应。例如,使用温湿度调节设备改变室内温湿度,观察 DHT11 传感器数据变化及 OLED 彩屏显示是否准确;通过发送特定指令,测试 ESP8266 模块与服务器的连接和数据传输功能。

软件功能测试:运用代码调试工具,逐行检查数据采集、处理、通信、显示和控制模块的代码逻辑。同时,模拟不同数据输入,验证数据处理的准确性和报警功能的触发条件。如输入超出阈值的温湿度数据,查看系统是否触发蜂鸣器报警和继电器动作。

系统联调测试:将硬件与软件整合,进行系统整体测试。持续运行系统 24 小时,记录数据采集频率、传输延迟、报警及时性等指标。在测试过程中,人为制造网络中断、传感器故障等故障场景,检验系统的容错能力和恢复能力。

5.3 测试结果与分析

5.3.1 传感器数据采集准确性测试

|-----------------|------|-------------|-------------|-----------|
| 测试项目 | 测试次数 | 系统采集数据 | 专业设备测量数据 | 误差范围 |
| 温度(℃) | 20 | 22.1 - 25.8 | 22.0 - 25.5 | ±0.5℃ |
| 湿度(%) | 20 | 40.2 - 65.5 | 40.0 - 65.0 | ±1.0% |
| PM2.5 浓度(μg/m³) | 20 | 15.0 - 30.0 | 14.5 - 30.5 | ±1.5μg/m³ |

分析可知,系统采集的温湿度、PM2.5 浓度数据与专业设备测量数据误差较小,满足幼儿园环境监测的精度要求,证明传感器数据采集功能稳定可靠。

5.3.2 通信模块传输测试

|------------|---------|------------|
| 测试场景 | 数据传输成功率 | 平均传输延迟(ms) |
| 教室内部网络环境良好 | 99.8% | 85 |
| 教室边缘网络信号较弱 | 98.5% | 120 |

结果显示,在网络环境良好时,数据传输成功率高且延迟较低;网络信号较弱时,虽传输成功率略有下降,但仍保持在较高水平,说明 ESP8266 通信模块能够满足系统数据传输需求。

5.3.3 报警与控制功能测试

|--------------------|-----------|----------|
| 异常情况 | 报警响应时间(s) | 继电器动作情况 |
| 温度高于 30℃ | 3 | 联动空调开启制冷 |
| PM2.5 浓度高于 50μg/m³ | 5 | 联动通风设备启动 |

当出现异常情况时,系统报警响应迅速,继电器能够准确执行控制指令,有效保障幼儿园环境安全。

六、结论与展望

6.1 研究成果总结

本研究成功设计并实现了基于传感器技术的幼儿园安全监护系统。硬件层面,以 STM32F103C8T6 为核心,集成 DHT11 温湿度传感器、电化学甲醛模块、ESP8266 通信模块等,构建了完整的硬件系统架构;软件层面,通过数据采集、处理、通信、显示和控制等功能模块的设计与开发,实现了幼儿园环境与幼儿安全状况的全面监测与智能管理。经系统测试验证,该系统能够准确采集环境数据、稳定传输信息、及时触发报警并有效控制设备,达到了预期设计目标,为幼儿园安全管理提供了可靠的技术支持。

相关推荐
luiyarch3 小时前
汽车电子ISO 21448 SOTIF系列(第11期):SOTIF的V模型长什么样?
安全·车载系统·汽车
Thneonl13 小时前
Flink Operator 的隐藏陷阱:容器名不是你以为的那个
安全·kubernetes
Thneonl13 小时前
kubectl scale ds 是个 404:DaemonSet 没有 replicas
安全·kubernetes
青Cheng序员石头13 小时前
失控之前 | AI 安全到底在保护什么?
后端·安全·aigc
龙亘川6 天前
一网统管AI平台民生业务实践:基于城市数字底座赋能公积金业务服务升级
大数据·安全·智慧城市·开源软件·数据可视化·政务
kybs19916 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
LorryJovens6 天前
【LAAP科研】双系统具身AGI范式研究——基于LAAP认知架构与Jev概率决策模型的系统性技术调研与范式验证
人工智能·gpt·安全·架构
其实防守也摸鱼6 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透