基于STM32的智能安防系统的设计
CONTENTS
1.1 Background And Significance
1.3 The Development Prospects Of Intelligent Security Systems
Chapter 2 The plan Of System Design
2.1 The Design Task And Requirements
2.4 The Summary Of This Chapter
Chapter 3 The hardware Circuit Design
3.1 The Design Of The Main Control Module
3.2 The Design Of Monitoring Fire
3.2.1 Smoke Sensor Circuit Design
3.2.2 The Circuit Design Of Natural Gas Concentration Monitoring
3.2.3 The Working Principle And Circuit Design Of Current Sensor
3.2.4 Flame Sensor Circuit Design
3.3 The Design Of security Monitoring
3.4 Environmental Monitoring module
3.4.1 The Circuit Design Of temperature And Humidity
3.4.2 The CO Sensor working principle And Circuit Design
3.5 The Design Of the Design Module
3.6 The Design Of The Display Module
3.7 The Design Of The Power Supply Module
3.8 The Remote Control Of Wireless Circuit Design
3.9 The Summary Of This Chapter
Chapter 4 The system sOftware Design
4.1 The Software Modular Design
4.2 The System Software subroutines
4.2.3 Time Module Design program
4.3 Hardware Driver Software Design
4.3.5 Temperature And Humidity
4.3.10 The Wireless Remote Control
4.5 The Summary Of This Chapter
5.1 Hardware debugging problem
5.2 Software debugging problem
随着人民物质生活水平的不断提高和社会经济的飞速发展,人们对其住宅的要求也越来越高,表现在不仅希望拥有舒适温馨的住所,而且对其安全性、智能性等方面也提出了更高的要求。然而经济的快速增长也带来了相当大的负面社会效应,城乡、区域收入差距进一步拉大,社会结构、社会治安日趋复杂,社会矛盾开始凸显[1]。
随着流动人口迅速增加,盗窃、入室抢劫等刑事案件也呈现出了增长趋势,并且危害越来越严重,人们越来越渴望有一个安全生活的空间,但是犯罪分子的作案手段越来越高明,他们甚至采用一些高科技的作案手段,使得以往那种依靠安装防盗门窗、或靠人防的防范方式越来越不能满足人们日常防范的要求;这时,传统的家庭住宅显然己经远远不能满足人们的需求。
人们迫切需要一种智能型的家庭安全防范报警系统,能可靠的进行日常安全防范工作,及时发现各种险情并通知户主,以便将险情消灭在萌芽状态,这样人们便可安心工作,同时也保证了居民的生命财产不受损失[2]。于是有关家庭、办公室和仓库等处的安全防范和自动报警系统的开发研制日益被科研单位和生产厂家所重视,现在市场上也出现了各种名目繁多的报警装置,但多由于可靠性较差、造价高或使用复杂而难于普及。
而随着电子通讯技术的飞速发展,单片机以其具有体积小、价格低、集成度高、性价比高等突出优点已在工业控制、智能仪表、数控机床、数据采集以及各种家用电器等方面得到了广泛应用。因此利用单片机和一些简单的外围器件来开发一种适合于家庭、仓库、银行等重要场所的低价位、运行可靠的多功能智能型安全防范报警系统,对室内出现的入室盗窃事件自动发出报警信息并通知户主进行及时处理已经势在必行[3]。
随着科学技术的迅猛发展,人类已经步入了信息时代,智能化住宅也应运而生,计算机技术、网络技术、控制技术、通信技术等各种技术的发展为智能建筑的发展打下了坚实的基础。另一方面社会上广大的开发商、工程业主等也逐渐加大了智能建筑的投资。住宅智能化现在还没有确切的定义,它一般包括住宅安全自动化,通信自动化,保健自动化和管理自动化。安全技术防范行业是智能住宅安全自动化的一个重要内容,随着近几年国际互联网技术的发展,安防行业得到快速发展[4]。在我国,家庭安全防范报警系统已成为智能小区中实现安全管理的基础,根据我国建设部的规定,主要包括电视监控、防盗报警、求救求助、煤气泄漏报警、消防报警等内容。家庭智能报警便是其中的一项内容,报警器应具有多个探测器接口,可接收红外及微波探测器、感烟探测器、温度探测器、煤气泄漏探测器等传来的报警信号,然后通过通讯网络将报警信息传送到相关人的通讯设备上,以使灾情得到及时处理,保护人们的生命财产安全[5]。报警设备主要是在两方面发展较快,一方面是探测器技术和探测器的发展,一方面是远程报警系统的发展。探测器的发展主要表现在出现了被动红外、超声波和微波三种不同的探测技术,各种不同类型的探测器也纷纷涌现。这方面最有前途的是复合式探测器,即在同一个封装盒里安装两种以上不同的探测器,两者组合后误报率将会大大降低。复合式探测器一般有超声波/被动红外复合式探测器、微波/被动红外复合式探测器。远程报警系统的发展主要表现在出现了有线式报警系统、无线式报警系统,报警联防网络等。目前我国有关报警系统方面的产品也愈来愈丰富。按照报警系统的规模可分为小规模、中规模和大规模报警系统小规模防盗报警系统近年来在市场上较多见,例如GSM式报警系统。它具有安装方便、简单,一次性投资小的特点,但它存在覆盖面积小、误报率高等问题,使用场合受到一定限制。但由于此类产品具有体积小、耗电低、成本低、功能单一等优点,对于一些简单的报警场合和个人家庭,具有很大的市场潜力,目前此类产品在市场上非常活跃[6]。中规模防盗防火报警系统,例如闭路电视监控系统、智能监控系统,无论从功能上,还是从结构上,都介于小规模防盗报警系统和大规模防盗报警系统之间。其报警功能、有关技术指标和系统性能与真正的报警系统相比还较差,与微机系统相比,此类系统缺乏人机界面、图形功能和管理功能,性能价格比较低。在我国,目前市面上报警器主要有压力触发式防盗报警器,开关电子防盗报警器和压力遮光触发式报警器等各种报警器,但这几种比较常见的报警器都存在一些缺点。
随着社会的发展,农村城镇化和人员流动性增大,社会治安状况更趋复杂,因此作为社会的基本单元“安全防范问题就显得尤为重要。传统的机械式(防盗网、防盗窗)家居防卫在实际使用中暴露出一些明显的问题,如:影响楼房美观,市容整洁;影响火灾救援通道;给犯罪分子提供了便利的翻越条件;时间久了会有高空坠物的危险等。
所以作为新一代的智能安全防盗报警器系统就应运而生,并日益受到广泛的重视和运用。另外,为了进一步规范住宅小区智能化建设,建设部特别制定了智能小区的等级标准,按照其要求智能小区中必须具有安全防范、信息管理、物业管理和信息网络等系统。因此,智能安防系统已经逐渐成为小区建设的必备项目,在未来生活中必将成为安防项目中的主流[7]。
设计一个安防监控系统,系统可实现功能如下:
- 考虑产品的性价比,进行系统的整体方案设计。
- 用户交互界面要求简洁,必须采用汉字显示
- 实现防盗功能和防火功能
- 实现家用电器过流保护功能
- 具有声光报警的功能,并且可以实现短信报警
- 能测量室内温度和湿度,并且当温度超过设定温度时报警
- 实现实时时间的显示
- 当人员外出时,可把报警系统设置在外出布防状态,在家可以设置为安全状态。
- 用无线遥控完成安防系统的布防,解防,解警等工作。
方案一:基于FPGA的电路设计。整个系统分为八个部分组成:主控模块,防火监控模块,防盗监控模块,报警模块,显示模块,存储模块,时钟模块,无线遥控模块。其整体框图如图2-1所示。

图2-1 基于FPGA系统设计框图
主控制器模块采用FPGA为系统的控制器,FPGA可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性。 FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。通过防火监控模块和防盗监控模块将信号采集后给FPGA进行处理,FPGA处理后打印到显示屏上,如果数据出现异常,则通过报警模块进行报警。但是由于本设计对数据处理的时间要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。
方案二:基于单片机微控制器的电路设计。整个系统可分为:主控模块,防火监控模块,防盗监控模块,报警模块,用户交互显示模块,无线遥控模块如图2-2所示。

图2-2 基于单片机系统设计框图
本设计方案采用单片机作为控制模块的核心,利用软件编程使单片机不停的读取防火防盗传感器信号,经过数据处理,由液晶屏作为用户交互显示界面。单片机算术运算功能强、软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低,且可对其进行扩展,附带显示设备,单键输入等设备,使用方便,还可通过软件编程实现对步进电机的速度预设显示。单片机芯片引脚少,软硬件连接简便灵活,硬件容易实现。
方案选择:
方案一是以FPGA为系统的控制器。本设计对数据处理的时间要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。方案二采用单片机作为系统控制的核心,软件编程灵活、自由度大、功耗低、体积小、成本低,软硬件连接简便灵活,硬件容易实现。
综上所述,通过对两种方案进行分析比较,虽然方案一功能强大,但软件编程复杂、硬件实现较困难、器件价格较高;方案二不仅能实现设计任务要求的功能,而且软件编程灵活、自由度大、硬件实现较容易、元器件性价比较高,因而综合考虑采用方案二。
根据系统功能的要求和系统构成的需要来规划总体的设计思路,其总体设计方案如图2-3所示:

图2-3 基于单片机系统设计框图
本设计需要实现的功能总共分为6个大的模块,分别为主控模块,防火监控模块,防盗监控模块,报警模块,用户交互显示模块,无线遥控模块,存储模块。主控模块采用STM32F103RCT6为主控芯片,内部集成了RTC时钟,并且在芯片外接了一个2M的FLASH用作存储汉字库,和一个8K的EEPROM用来存放数据,保证掉电数据不丢失 [8],防火监控模块使用温湿度采集传感器,烟雾传感器,天然气浓度传感器,电流传感器,火焰传感器,对室内数据进行采集,然后通过AD转换后将数据处理后打印到TFT彩屏上,当数据发生异常时,控制器会报警,可以处理一部分险情,并且短信通知用户,而且用户可以通过发短信的方式来设置电流提醒的上限值。防盗监控模块包括人体热释电传感器,当在布防模式下发生异常情况时,主控制器会控制报警系统进行报警并且发短信告知用户。报警模块主要分为声音报警和GSM短信报警,当发生险情时会发出声音报警和短信报警。无线遥控模块主要的作用是解除警报和布防以及解除布防的功能。
本章中,首先说明了本设计的任务和要求,根据设计任务列举了两个可行的方案,再通过对这两个方案的仔细比较和论证,最终确定了设计方案,并且规划了详细的设计思路。
本设计在硬件上分为8个模块:主控模块,防火监控模块,防盗监控模块,环境监控模块,报警模块,用户交互显示模块,无线遥控模块,电源模块。
主控模块包括一个STM32最小系统,一个SD卡接口电路,一个2M的Flash芯片电路。
本设计采用ST公司生产的STM32F103RCT6为平台,其内核是Cortex-M3内核进行MP3播放器的设计。接下来介绍本设计用到的几个芯片,首先就是主控芯片STM32F103RCT6[9]。
STM32F103RCT6是ST公司推出的Cortex-M3内核32位微处理器。具有高性能、低成本、低功耗的特点,专门为嵌入式应用领域设计,STM32F103RCT6是ARM7 架构,采用Thumb-2 技术将 16 位和 32 位指令相结合,使代码密度和性能达到了最佳平衡。Thumb-2技术比纯ARM代码少使用31%的内存,减小了设计开销,同时能够提供比Thumb技术高出38%的性能[10]。
本设计所采用的微处理器ST公司的STM32F103RCT6外围电路有以下几个:
1.晶体振荡器
STM32F103RCT6有5个时钟源可供使用,分别是HSE(高速外部)晶体振荡器,HSI(高速内部)晶体振荡器,PLL时钟,40K低速内部RC(LSI RC)振荡器,32.768K的低速外部(LSE)晶体振荡器。HSE、HIS、PLL可驱动设计时钟,HSE可用外部有源时钟或者石英/陶瓷谐振晶体,频率范围4MHZ~16MHZ,HIS频率为8MHZ,PLL锁相环倍频输出,PLL的时钟源可选HIS/2、HSE或者HSE/2,倍频可选2~16倍频,但不可超过72MHZ。LSI RC用于驱动独立看门狗,或者通过程序驱动RTC,用于从停机或待机模式下自动唤醒[11]。LSE用于驱动RTC。HIS和LSI RC是片内时钟不依靠任何元件,它能降低成本,但不够精准。主振荡器由SOC-IN输入管脚输入或者在SOC-IN输入管脚和SOC-OUT输出管脚这件接一个外部晶体振荡器。设计采用8MHZ的晶体振荡器,晶体振荡电路如图3-1所示:

图3-1 晶体振荡电路
用一个1M电阻和晶振相连是为了让晶振能够快速起振,同时,在晶振起振后更为稳定。
2.复位电路
STM32F103RCT6的外部复位输入引脚NRST为低电平复位,复位电路如图3-2所示。

图3-2 晶体振荡电路
当按键按下时能给整个电路复位,而且上电时也能给电路复位。
3.下载和调试
下载和调试设计使用JTAG下载和调试,相应的电路设计如图3-3所示。

图3-3仿真和调试电路
SD卡(Secure Digital Memory Card)是基于FLASH储存介质的新一代记忆设备,具有体积小、容量大、数据传输快、移动灵活、安全性能好以及兼容MMC卡等特点。SD卡有SD和SPI两种工作模式,相对于SD模式,SPI模式可以简化主机设计,降低成本。
CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率;
CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;
DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。
SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在SPI模式下其命令由6个字节构成,其中高位在前。
STM32F103RCT6单片机没有SD总线接口,所以只能使用SPI模式,
SD卡模块电路如图3-4所示。

图3-4 SD卡模块电路
SD卡使用的SPI模式,所以把SD卡挂接在STM32F103RCT6的SPI1上面。SD卡的SPI通信必须在每个IO口都用一个47K左右的上拉电阻,这里选择47K。SD卡的电路比较简单只要连接无误,一般没问题。
由于显示需要用到汉字,如果要对汉字进行取模显示,程序太复杂,所以本设计采用了一个2M的Flash芯片用来存放字库。字库的读写采用SPI总线的方式,所以将其连接到了控制器的SPI1总线上,电路如图3-5 所示。

图3-5 字库Flash接口电路
防火监控是由温湿度采集传感器,MQ2烟雾传感器,MQ5天然气浓度传感器,电流传感器,火焰传感器构成,当室内的烟雾浓度或者天然气的浓度超标的时候,控制器会发出声光报警和短信报警。
烟雾传感器MQ2所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在烟雾时,传感器的电导率随空气中烟雾气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号,电路设计如图3-6所示。

图3-6烟雾监控电路
图中R16的作用是调节烟雾浓度传感器的灵敏度,本设计使用的是直接检测AOUT输出的电压量,AOUT的值跟烟雾浓度成正比,烟雾浓度越大,AOUT的值越大。
-
-
- 天然气体浓度监测的电路设计
-
本设计采用的天然气传感器是MQ-5,MQ-5气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡。当传感器所处环境中存在天然气体时,传感器的电导率随空气中天然气体浓度的增加而增大,其电路如图3-7所示。

图3-7 天然气检测电路
图中R17的作用是调节天然气浓度传感器的灵敏度,本设计使用的是直接检测MQ5-AOUT输出的模拟量,MQ5-AOUT的值跟天然气浓度成正比,天然气浓度越大,MQ5-AOUT的值越大。
本设计使用的电流传感器是ACS712,该器件具有精确的低偏置线性霍尔传感器电路,且其铜制的电流路径靠近晶片的表面。通过该铜制电流路径施加的电流能够生成可被集成霍尔 IC 感应并转化为成比例电压的磁场。通过将磁性信号靠近霍尔传感器,实现器件精确度优化。精确的成比例电压由稳定斩波型低偏置 BiCMOS 霍尔IC提供,该 IC 出厂时已进行精确度编
程[12]。
当通过用作电流感测通路的主要铜制电流路径(从引脚1和2,到3和4)的电流不断上升时,器件的输出具有正斜率 (>VIOUT(Q))。其电路设计如图3-8所示:

图3-8电流监控原理图
其中P2的两端接到家用电缆的主干路上,通过P3给芯片供电,7脚输出一个模拟量,电流和模拟量的关系成线性,电流越大,输出的模拟量越大。
本设计选用的火焰传感器是紫外火焰传感器,由于火焰的辐射是具有离散光谱的气体辐射和伴有连续光谱的固体辐射,其波长在0.1-10μm或更宽的范围,为了避免其他信号的干扰,常利用波长<300nm的紫外线,或者火焰中特有的波长在4.4μm附近的CO2辐射光谱作为探测信号。紫外线传感器只对185~260nm狭窄范围内的紫外线进行响应,而对其它频谱范围的光线不敏感,利用它可以对火焰中的紫外线进行检测[13]。故火焰探测的220m-280nm中紫外波段属太阳光谱盲区(日盲区)。紫外火焰探测技术,使系统避开了最强大的自然光源-太阳造成的影响,信息处理的负担大为减轻。所以可靠性较高,加之它是光子检测手段,因而信噪比高,具有极微弱信号检测能,其工作电路设计如图3-9所示。

图3-9明火监控原理图
电阻R1的作用是分压和限流,没有火焰的状态,传感器就好比一个阻值很小的电阻,经过一个比较器后输出一个高电平,而当有火焰的时候,传感器就相当于一个阻值很大的电阻,分得的电压经过比较器后输出一个低电平,电阻R3的作用是调节火焰传感器的灵敏度。
防盗监控是由人体红外传感器构成。人体热释电红外传感器通过接收移动人体辐射出的特定波长的红外线,可以将其转化为与人体运动速度,距离,方向有关的低频电信号。当热释电红外传感器受到红外辐射源的照射时,其内部敏感材料的温度将升高,极化强度减弱,表面电荷减少,通常将释放掉的这部分电荷称为热释电电荷[14]。由于热释电电荷的多少可以反映出材料温度的变化,所以由热释电电荷经电路转变成的输出电压也同样可以反映出材料温度的变化,从而探测出红外辐射能量的变化。红外探测器的光学系统可以将来自多个方向的红外辐射能量聚焦在探测器上,这样红外探测器就可以探测到某一个立体探测空间内热辐射的变化,进而判断有没有人。其电路原理图如图3-10所示。

图3-10 防盗监控电路设计
图中R60的作用为调节人体感应的距离。IOUT是输出,当没有人体经过时,IOUT输出时低电平,当有人体出现时,IOUT输出高电平。
环境监控部分主要包括温湿度传感器DHT11和CO传感器,下面将详细的介绍这两个部分。
本设计采用的温湿度传感器是DHT11,DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点[15]。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。产品为 4 针单排引脚封装。其电路图如图3-11所示:

图3-11 温湿度测量电路
DHT11采用的是单总线的数据读写方式,所以在这里用了一个R38,5K的电阻给数据线电平拉高。
MQ-7气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡。采用高低温循环检测方式低温(1.5V加热)检测一氧化碳,传感器的电导率随空气中一氧化碳气体浓度增加而增大,高温(5.0V加热)清洗低温时吸附的杂散气体。使用简单的电路即可将电导率的变化,转换为与该气体浓度相对应的输出信号。
本模块的电路设计与烟雾传感器相同,CO监控电路如图3-12所示:

图3-12 CO监控电路
图中R36的作用是调节CO浓度传感器的灵敏度,本设计使用的是直接检测MQ7-AOUT输出的电压量,MQ7-AOUT的值跟CO浓度成正比,CO浓度越大,MQ7-AOUT的值越大。
报警模块是由声光报警和GSM模块短信报警组成。当控制器检测到不同的险情时,会根据险情来进行不同的报警方式。本节将详细介绍这两部分。
声音报警部分采用的语音芯片是JQ6500,JQ6500是一个提供串口的MP3芯片,完美的集成了MP3、WMV的硬解码。同时软件支持TF卡驱动,支持电脑直接更新spi flash的内容,支持FAT16、FAT32文件系统。通过简单的串口指令即可完成播放指定的音乐,这款芯片具有以下特点:
1.支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1/48
2.24位DAC输出,动态范围支持90dB,信噪比支持85dB
3.完全支持FAT16、FAT32文件系统
4.多种控制模式,并口控制模式、串口模式、AD按键控制模式
其工作电路设计如图3-13所示。

图3-13 语音播报电路原理图
其中DAC-L和DAC-R是耳机输出,TX和RX是232总线数据的发送和接收接口。其中Busy是检查语音模块是否在工作的标志位,当语音模块工作时,Busy为高电平,当语音模块停止工作时,Busy为低电平。
GSM模块是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。因此,GSM模块具有收发SMS短消息、语音通话、GPRS数据传输等基于GSM网络进行通信的基本功能。本设计使用的是
SIM900A模块,该模块与 GSM phase2/2兼容、双频(GSM900/GSM1800)、RS-232数据口、符合ETSI标准GSM0707和GSM0705,且易于升级为GPRS模块;该模块集射频电路和基带于一体,向用户提供标准的AT命令接口,为数据、语音、短消息和传真提供快速、可靠、安全的传输[16]。
GSM模块可分为GSM基带处理器(Baseband Processor)、无线收发模块(Radio)、电源供给模块(Power Supplay ASIC)和FLASH闪存几部分,其结构如图3-14所示。

图3-14 TC35i模块功能结构框图
GSM基带处理器是GSM模块的核心,它集成了C166MCU处理器内核及DSP内核,MCU及DSP程序和数据存储器,可编程的系统时间发生器PLL,MCU及DSP定时器,脉冲载波调制输出,串行RF控制接口,兼容ISO-7816 SIM卡接口,数字和模拟语音滤波器和AD-DA转换器,电池电压测量电路,电池环境温度检测电路,C51及C52密码单元,GMSK调节器,静、动态电源管理器等模块。
无线收发模块是建立在无线收发芯片SMARTI基础上,收发器由差分接收电路、非转移调制环路传送器、RF PLL及IF合成器、外置收发天线组成。
电源供给模块为系统供电。GSM引擎TC35i所需直流电压为3.3-4.4V,最大电流为2A(待机时电流很小,一般为3mA,但在发送语音、数据机短信时要很大的电流驱动,因此必须外加电源,额定电流至少2A)。
其电路如图3-15所示。

图3-15 GSM电路设计原理图
本设计采用240*320分辨率2.8寸的彩屏,支持262K/65K色,控器采用ILI9325,ILI9325控制电路如图3-16所示.

图3-16 ILI9325控制电路
在VCC5V和GND之间接两个电容是傍路消振电容,防止通过电源引入的干扰和寄生振荡。通过BL-CTR可以对TFT背光进行调节,同时加了LCD背光限流电阻防止电流过大烧毁背光灯。
电源电路的功能介绍:此电路在整个设计中起着很重要的作用,是提供器械运转的原动力。此在本系统中,由于传感器较多,工作电流挺大,用普通的LM7805稳压芯片不能满足本设计的需要,所以本设计采用的稳压芯片是LM2596。设计思路很简单:将220V交流电经变压、整流、LM2596可调输出电压式稳压芯片、滤波后得到所需的5V电压,电路如图3-17所示。

图3-17 电源电路
在本系统中,需要使用无线来控制布防解防解警,采用遥控器来实现该功能。设计思路是:将接收器连到单片机上,采用按键给发射器采用不同的编码方式,当不同的按键按下时,主控制器通过不同的编码来执行不同的动作。本设计中采用PT2262/PT2272来实现遥控器的功能。由于发射器采用的是现成的,只需要给接收器进行设计,其电路图如图3-18所示。

图3-18 无线遥控接收电路
在本章中,主要对主控模块、防火监控、防盗监控、环境监控、显示模块,报警模块,电源和无线遥控等硬件进行了详细的设计。并且详细的说明了每个模块的工作原理和电路结构,以及相关的电阻电容的选取及其作用。
整个安防系统的软件设计是一个比较复杂的设计,不可能一次把所有的代码都写出来。这里对软件代码的编写采用模块化的设计思想,将整个软件设计逐步划分为子设计,再将子设计逐步细化为单一功能的模块来实现,最后再将所有的模块整合成一个大设计,实现预期的功能。
从整个设计来说,按其与硬件的相关性,可以把软件分为两部分:一是与硬件相关的底层驱动软件子设计。而是与硬件无关的系统子程序设计。这两个子设计的软件又可以细化为许多模块。
对于系统软件子程序设计包括如下模块程序:LCD驱动模块、Flash字库、SD卡驱动模块、FAT文件系统模块、实时时钟驱动模块。
对于底层硬件驱动子程序设计包括如下模块程序:电流监控模块、天然气监控模块、烟雾监控模块,CO监控模块,明火监控模块、语音播报模块、GSM模块,温湿度监控模块。
当进行模块化程序设计时,首先要明确模块的功能作用,将其划分为一个个独立的功能模块,将它们封装成为函数,供给其他模块调用。底层驱动实现一些基本的底层功能,如硬件初始化、与硬件密切相关的时序函数等。而应用层则实现整个软件设计的应用功能函数。
SD卡有两个可选的通讯协议:SD模式和SPI模式。SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有SD卡控制器接口的控制器,或者通过加入额外的SD卡控制单元以实现SD卡的读写。然而,控制器STM32F103RCT6T6没有集成SD卡控制器接口,但是却拥有很强大的SPI接口,故选用SPI模式读取SD卡。
SD卡在上电初期自动进入SD总线模式,要进入SPI模式要先向SD卡发送复位命令CMD0。CS为低电平时,SPI模式被启动,但在发复位命令CMD0前,要发送>74个时钟,这是因为SD卡内部供电电压上升时间大约为64个CLK,剩余的10个CLK用于SD卡同步,这之后才能开始CMD0的操作。
SD卡初始化流程图如图4-1所示,具体的实现是通过u8 SD-Init(void)函数实现的。

图4-1 SD卡初始化流程图
完成SD卡初始化后,接下来就是SD卡读写数据。SD卡读数据的过程就是先发读命令,然后接受到应答信号,接下来就读取数据,读完后停止数据读取并取消片选。SD卡读数据流程图如图4-2所示,具体实现通过u8 SD-ReadDisk(u8*buf,u32 sector,u8 cnt)函数实现。

图4-2 SD卡读数据流程图
SD卡写数据类似于读数据过程只是发的命令变成了CMD24,如图4-3 SD 卡写数据流程图,具体实现通过u8 SD-WriteDisk(const u8*buf,u32 sector,u8 cnt)函数实现。SD卡写数据流程如图4-3所示。

图4-3 SD卡写数据流程图
本设计要用到SD卡,不可避免要管理文件设计,所以,对文件设计的解析是本设计的重点。FATFS是FAT32的简化版本,设计支持FAT16和FAT32文件设计,由于FAT32文件设计是一个复杂而庞大的构架,这里仅简单介绍FAT32文件设计的构架。
- FAT32文件的设计
DBR(DOS BOOT RECORD 操作设计引导记录区)
DBR 是学习FAT32的首要知识点。DBR 中的BPB (BIOS Parameter Block)部分是这一区域的核心部分(第12~90 字节为BPB),理解了BPB 的意义,能够更好的实现和操控FAT32。关于DBR 对于FAT32的重要不言而喻了,DBR各字节意义如图4-4所示。

图4-4 DBR区各字节意义
DBR区内,对用户有用的数据不过90个字节(即BPB字段)。但仅仅这90个字节就可以告诉关于磁盘的信息,比如每扇区字节数、每簇扇区数、磁道扇区数等等。对于读取这些信息,只有遵循DBR中的字段定义,BPB部分数据字节意义如图4-5所示。
通过对字段的读取,可以得到FAT32文件设计的诸多重要信息:每扇区字节数、每簇扇区数、根目录簇号、该卷总扇区数、FAT图4-5所在的扇区数等。

图4-5 BPB部分字段意义
- FAT表
FAT 表是一种链式结构用于FAT32 文件设计中磁盘数据(文件)索引和定位。FAT 表是最有特色的一部分在FAT32 文件设计中,FAT表的链式存储机制也是FAT32 的精华所在,因为有了它数据能够不连续存储,使磁盘更为出色的发挥功能。那么,FAT 表到底在什么地方?它是什么样子的呢?第一步从BPB 中提取的参数中的 FirstFATSector 就知道了FAT表所在的扇区号。其实每一个FAT 表都会对应另一个与它一模一样的FAT ,而且这两个FAT 表是同步的,简单的说就是对一个FAT 表的操作,同样地,也要在另一个FAT表进行相同的操作,保证它们的内容时刻都一致。当然这是为了安全起见,当一个FAT 遭到破坏的时候,完全可以从另一个FAT 表进行恢复。FAT表内容如图4-6所示。

图4-6 FAT表
前8个字节“F8 FF FF 0F FF FF FF FF”为FAT32的FAT 表头标记,用以表示FAT 表的开始在此处。后面的数据每一个簇项为四个字节(从第2 簇开始),用以标记此簇的下一个簇号。
若某个文件的开始簇为第2 簇的话,那么就到FAT 表里来查找,看文件是否有下一个簇(当文件大小大于一个簇的容量,就会有数据存储到下一个簇,但下一个簇与上一个簇未必就是连续的),在图4-6中可以看到“簇2”的内容为“FF FF FF 0F”,这个标记就说明这个文件到第2 簇就已经结束了(“00 00 00 00 ”表示未分配的簇,“FF FF FF F7”表示坏的簇),没有后继的簇,也就是说此文件的大小是小于一个簇的容量的。
在进行簇数或者其他信息的获取时,要注意CPU是大端模式还是小端模式,SD卡用的是大端模式,也就是高位在后,低位在前。读取时要注意。
这里有必须对簇和扇区的概念进行说明:扇区是磁盘上最小可寻址存储单元,通常情况下每个扇区为512 个字节。由于多数文件要比扇区大,因此为了存储器将能存储更多数据,必须对一个文件分配最小的存储空间,这个最小存储空间也就是簇。根据存储设备(磁盘、闪卡和硬盘)的容量,为了使存储空间得到最有效的应用簇的大小可以不同。早期的360KB 磁盘上,2 个扇区(1024 字节)为一簇大小;第一批的10MB 硬盘增加到8 个扇区(4096 字节)为一簇大小;现在的小型闪存设备上的典型簇大小是8KB或者16KB。2GB 以上的硬盘驱动器有32KB 的簇。容量大的存储如果定义了比较小的簇,就会增大FAT 表的体积,造成数据的冗余和效率的下降。
需要说明的是,作为FAT32 进行数据存储的最小单位的簇,内部扇区不能进一步细分,也就是说即使一个文件的数据写到一个簇后,簇中还有剩余的容量(里部扇区没有写满),哪怕这个簇只写了一个字节,其它文件的数据也是不能接在后面,而只能用另外没有被占用的簇。
下面,本文介绍怎么获取文件的首簇。只有知道了一个文件数据的首簇号才可以继续查找下一簇数据的位置,到数据结束为止。接下来要讲到的“根目录区”可以由一个文件的文件名来找到它的首簇。
FAT32 中其实已经把文件的概念进行扩展,目录同样也是文件,由于根目录的地位与其它目录是相同的,因此根目录也被看成是文件。当然是文件就会有文件名,磁盘的卷标也根目录的名称。FAT文件属性结构如图4-7所示。

图4-7 FAT文件属性结构
BPB信息段在根目录的簇号已经说明了。找到根目录簇号之后,就可以找到其他任何文件的起始簇号了。例如某SD卡的根目录簇根目录信息如图4-8所示。

图4-8 根目录信息
图4-8中记录1 描述根目录,前八个字节为文件名“ZNSTM32F 103RCT6 ”(空格符补齐长度小于8 的部分),下面的三个字节为扩展名“ ”( 空格符补齐长度小于3的部分),08 表示此文件为卷标,开始簇高字节为00 00,低字节为00 00,开始簇为0,表示文件长度为0。记录2 描述TEST.TXT 文件,文件名为“TEST ”,扩展名为“TXT”,20 表示此文件为归档,开始簇为3(“00 00 00 03”),长度为20。记录3 描述BIGTEST.TXT 文件,文件名为“BIGTES~1”,扩展名为“TXT”,可以看出FAT32 中以大写字母表示文件名,长度不足的部分用空格符补齐,因此要读取的文件TEST.TXT 就变成了“TEST .TXT”,这将有助于文件名的匹配,不用去处理不等长文件名所带来的麻烦。同时,还会发现长度过长的部分会被~1所替换,若替换后有文件与之重名,则~后面的数字将增加为2。这样,在获得文件的起始簇之后,就能从起始簇开始进行文件的内容读取,如果超过一个簇,就去从FAT表中找下一个簇号,直到文件结束,从而文件的读取功能就实现了。关于文件设计,就介绍到这里,本设计针对文件设计的控制和管理函数均在ff.c里面。
时间模块包含日历和当前时间分别是本设计的第4和第6功能,该设计的当前时间功能也是很强大的:日期显示、星期功能、当前时间。日历功能则是显示本月的全部天数。
该部分的核心部分是RTC内时间和当前时间的转换。因为选择1990年作为原始年。故RTC秒钟寄存器的范围为1990+136年,即约要到2226年左右才会溢出,完全够用了。读取时间通过函数void Get-Time(void)实现。
通过函数void Get-Week(u16 year,u8 month,u8 day,u8 *week),可以得到任意日期所对应的周。*week,是周的存放地址。
通过void show-clock(u16 x,u16 y,u16 size,u16 color,u16 back-color)函数,可实现石英钟的显示。x, y为石英钟,size为石英钟半径,size至少为2,同时,x必须大于等于size。
RTC实时时钟是利用STM32F103RCT6内部的时钟模块实现的,根据STM32的数据手册,得到RTC实时时钟的初始化过程如图4-9所示。

图4-9 RTC初始化
这样就结束了对RTC时钟的初始化,RTC时钟在完成以上配置之后,就会每隔固定的时间,对秒钟寄存器(RTC->CNT)进行增1操作。此操作全部硬件执行,无需要软件参与。固定时间由时钟分频系数(RTC->PRL)来确定,理论上由于外部低频晶振是32.768Khz,因此只要在RTC->PRL内写入32768-1就可以得到精确的1秒了,但由于晶振的误差,通常需要调整这个值,来得到比较准确时间的。
RTC的具体初始化函数和其他相关操作函数均在rtc.c里面。
本设计用到的LCD是十六位数据模式,驱动IC型号是ILI9325,该芯片驱动IC为松下合资厂所生产。最高支持26万色的TFT LCD,有6位、8位、16位和18位数据模式,可以方便选择。本设计配套的LCD使用的是十六位数据模式,26万色。根据该LCD的数据手册,每个像素点的GRAM实际上是一个18bit的数据寄存器。在16bit模式下写入数据与GRAM对应关系如图4-10所示

图4-10 写入数据与GRAM对应关系
从图4-10中不难看出,RGB的有效位数为565,比如要显示纯绿色就写入0X07E0,显示纯红色写入0XF800,显示纯蓝色写入0X001F。在处理数据的时候应该把像素值先变换为这样的结构,然后再写入LCD。LCD的控制命令控制LCD的显示状态,实现不同的现实功能和效果只需写入不同的控制命令和数据。下面是几个重要的控制命令:
00H:这个命令用于控制内存操作模式,这里用它来改变LCD的扫描方向。
02H,03H:两个命令分别用于设置X,Y方向的开始显示的点坐标。
04H,05H:两个命令分别用于设置X,Y方向的显示结束的点坐标。
0EH,0FH:两个命令用于写入和读取显存。
LCD驱动部分包括几个重要的函数:LCD读写寄存器函数、LCD读写数据函数、LCD初始化函数和LCD画点函数。有了这几个基本函数,其他的画线、画面等函数实现起来就比较容易了。
1.LCD读写寄存器
对LCD寄存器的操作线设置lcd-rd为低,表示写入寄存器,然后拉低片选信号,给lcd-bl送入数据,通过一个lcd-wr的脉冲,就可以把数据写入到LCD了。最后释放lcd-rs,lcd-cs,完成此次操作。对LCD寄存器的读操作和写操作差不多,不同之处就是把lcd-wr脉冲改为lcd-re脉冲。
2.LCD读写数据
对于LCD数据的读写,和寄存器的读写很类似,只要把lcd-rs设置为高,就表示此次操作是对数据的读写,其他同寄存器的读写操作完全一样。
对于以上两步,要注意的是要先在寄存器写入0X0E/0X0F命令来表明是读还是写然后在进行读写数据操作。
3.LCD初始化
读写数据和读写命令实现后就可以进行LCD的初始化了,LCD的初始化涉及到其内部很多寄存器的初始化。较为复杂,由void ILI9320-Init(void)函数实现。
4.LCD画点
一切画图实现的基础就是画点,实现画点,要先对LCD开始显示和结束显示的范围进行设置,通过0X02H~0X04H这四个命令实现。写入0X0E命令,开始数据写入,也就是说可以写入像素值(16bit)了,对于画点,只需写入一个像素点即可。画点流程如图4-11所示,具体通过void dot(u16 x,u16 y,u16 color)函数实现。

图4-11 画点流程
以上四个函数是LCD的最底层的函数。其他任何功能函数的实现都在这几个底层函数基础之上。其他功能的LCD驱动函数在ILI9320.c里进行了定义和说明。
控制器与GSM模块之间采用RS-232连接,采用AT指令实现相互间的通信。常用的一些短消息命令如表4-1所示。
| 表4-1 常用的短消息AT命令 | |
| AT命令 | 功能 |
| AT+CSMS | 选择消息服务(支持GSM-MO、SMS-MT、SMS-CB) |
| AT+CMGF | 设置短信息格式(1-TEXT 0-PDU) |
| AT+CSCA | 设置短信服务中心地址 |
| AT+CMGS | 发送信息 |
| AT+CMGR | 读取短消息 |
| AT+CMGD | 删除短消息 |
| AT+CSAS | 保存设置(保存+CSAS和+CSMP的参数) |
| AT+CRES | 恢复设置 |
| AT+CNMA | 新信息确认应答 |
| AT+CPMS | 优先信息存储(定义用来读写信息的存储区域) |
| AT+CNMI | 新信息指示(选择如何从网络上接收短信息) |
| AT+CMGL | 列出存储的信息 |
| AT+CMGW | 写短信息并存储 |
| AT+WMGO | 信息覆盖写入 |
短消息是由欧洲电信标准委员会所制定ETSI的一个规范,为了控制GSM MODEM实现短消息服务,GSM 协议中提供了3 种接口协议,它们分别是BLOCK模式、TEXT模式和PDU模式。
本设计采用16bits的Unicode编码显示文本信息,中文短消息的编码实现较为简单,只需将字符串转换为对应的Unicode代码即可,例如“工作愉快!”的Unicode代码为5DE54F5C61095FEBFF01。
英文字符的编码方法稍微麻烦一点,主要思想是:每个字符用7bits表示,若要传送此消息,这些7位字节需要转换成8位字节,缺省的GSM字符集为7位编码,可以理解为ASCII码(ASCII码小于80H,因此bit8被忽略),依次将下一个7位编码的后几位逐步移至前面,形成新的8位编码。其工作流程图如图4-12所示。

图4-12 短信报警流程图
烟雾监控部分主要通过STM32自己的AD对采集到的数据进行转换后处理,然后打印到用户界面上,首先给烟雾监控分配的IO口是PA0,也就是第0路AD,将PA0配置成AD模式,就是将IO口配置成模拟输入,并打开ADC转换通道,当需要采集烟雾数据时,只需要调用接口函数u16 Get_Adc(0),其中0代表的是第0路通道,数值返回的是一个16位的数值,烟雾监控其流程图如图4-13所示。

图4-13 烟雾监控流程图
天然气监控部分也是通过STM32自己的AD对采集到的数据进行转换后处理,然后打印到用户界面上,首先给烟雾监控分配的IO口是PA1,也就是第1路AD,将PA0配置成AD模式,当需要采集烟雾数据时,只需要调用接口函数u16 Get_Adc(1),数值返回的是一个16位的数值,其电路流程图如图4-14所示。

图4-14 天然气监控流程图
天然气监控部分也是通过STM32内部AD对采集到的数据进行转换后处理,然后打印到用户界面上,首先给烟雾监控分配的IO口是PC4,也就是第14路AD,将PC4配置成AD模式,当需要采集烟雾数据时,只需要调用接口函数u16 Get_Adc(14),数值返回的是一个16位的数值,其电路流程图如图4-15所示。

图4-15 CO监控流程图
DHT11数字湿度传感器采用单总线数据格式,程序工作时,首先由单片机发送数据给DHT11,准备于DHT11进行通信,当DHT11接收到单片机数据,并处于空闲状态时,则向单片机发送应答信号,单片机接收到信号开始准备接收数据流,然后对数据进行校验,若正确则进行数据处理和显示。
如图4-16所示:

图4-16 温湿度监控流程图
天然气监控部分也是通过STM32自己的AD对采集到的数据进行转换后处理,然后打印到用户界面上,首先给烟雾监控分配的IO口是PC0,也就是第10路AD,将PC0配置成AD模式,当需要采集烟雾数据时,只需要调用接口函数u16 Get_Adc(10),数值返回的是一个16位的数值,其电路流程图如图4-17所示。

图4-17 电流监控流程图
火焰监控主要是用到了STM32的外部中断,首先将PORTA的时钟打开,将PA11设置成输入模式,并将PA11上拉,配置成下降沿触发,配置该中断的优先级为抢占2,子优先级2,组2,接下来就是等待中断触发,执行中断函数,其流程图如图4-18所示

图4-18 火焰监控流程图
人体红外监控主也用到了STM32的外部中断,首先将PORTA的时钟打开,将PA12设置成输入模式,并将PA11下拉,配置成上升沿触发,配置该中断的优先级为抢占2,子优先级1,组2,接下来就是等待中断触发,执行中断函数,其流程图如图4-19所示

图4-19 防盗监控流程图
该部分的设计主要是用到了串口通信,主控模块通过串口发送相应的指令对语音模块进行操作。发送指令的格式为$S Len CMD para1 para2 $0。
其中$S为起始位,即0X7E,Len是发送字节的长度,包括Len+CMD+para1 +para2,CMD为命令字,para1是代表查询的数据高字节,para2是查询的数据低字节,$0是指令的结束位,即0XEF。例如播放第1首歌曲,只需要连续发送7E 04 03 00 01 EF这六个16进制数。播放完成后,需要检测Busy脚是否为低电平,是的话就返回主程序。其流程图如图4-20所示。

图4-20 语音播报流程图
首先配置PC1,PC3,PC5为输入部分,然后就等待接收遥控指令,根据不同的指令执行不同的操作,其工作流程图如图4-21所示。

图4-21 无线遥控流程图
分步实现了系统的各个功能,本系统的主控制程序通过调用各个模块的相关函数,实现了整个系统的功能整合,主控制程序的流程图如图4-22所示。

图4-22主程序流程
系统开机之后,第一步进行的是对系统各个硬件模块的初始化;第二步加测SD卡是否存在,存在加载SD卡;第三步是查找系统文件,本系统的系统文件全部在SYSTEM文件夹下,该文件夹下又包括两个文件夹:font文件夹、ioc文件夹。font文件夹下包括FONT12.FON和FONT16.FON两个字体文件。接下来就是进入主界面,然后对天然气,烟雾,CO,火焰,电流进行监控,如果有一项数据不对,就报警并进行相应的处理。接下来是判断是否为安全模式,如果是的话,则人体热释电模块工作,进入防盗模式。如果不是则进行时间和温湿度的显示,并等待无线遥控。
本章主要是针对本设计的软件设计部分,叙述了整个设计的模块划分,并对各个部分软件设计思想及实现方法进行了详细的阐述。整个软件设计部分可以分为系统软件子程序和底层硬件驱动子程序两个部分,最后对整个软件设计部分进行了整合。
硬件调试的时候主要有两个问题,第一个问题就是触摸屏中断的误触发问题。第二个问题是在显示汉字的时候总是出现乱码。
问题1,该问题主要是在最初调试触摸屏程序的时候被发现,调试的时候发现触摸屏总是触发STM32F103RCT6的中断,致使STM32F103RCT6总是在处理中断,起初认为是程序问题,在修改程序多次无果的状况下,开始怀疑硬件问题。通过示波器观察中断信号线上的信号,发现只要触摸屏被触发了一次,则会在中断线上产生时间不定的脉冲信号。脉宽不固定,频率从几K到几百K不等,通过查看ILI9325的数据说明,此线上的信号不应该速度有这么快,于是结合设计的需要,在中端输入线上加入滤波电路,把输入信号的频率限制在150Hz以下,再次调试,以上问题消失。
问题2, 在采集温湿度信号时,温度的总是有问题,代码改了好几遍,问题还是没有解决,最后在查阅数据手册时发现数据线需要拉高,经改正后工作正常。
因为以前知识和代码的积累,很多程序的调试都是比较顺利的,比如FAT文件设计等,不过在软件调试的时候,还是有很多问题的,这里挑一个比较典型的问题说明,就是汉字乱码的问题。
问题1, 在显示汉字的时候总是出现乱码。一开始以为是字库芯片坏了,重新焊了一块芯片后发现字库还是有问题,这个时候就去检查这一块的代码了,发现SPI总线和液晶屏有复用的情况,为了不影响硬件的布局和程序的重新删改,采用了总线分时复用解决了该问题。
最后就剩下检验成果的时候了,首先咱们给系统上电,然后我们观测一下主界面如图5-1所示:

图5-1 主界面显示部分
接下来我们使用遥控器遥控系统进入防盗模式,这个时候控制器会进行响应对该情况进行处理,如图5-2所示:

图5-2 防盗模式监控图
接下来咱们来看一下防火情况,将模式设置成安全模式,用打火机在火焰传感器前端点燃火焰,这个时候报警会发出警报,并给我的手机发短信,如图5-3和5-4所示:

图5-3 防火监控界面

图5-4 用户手机收到的短信
接下来咱们再看下防天然气的部分,用打火机对着天然气传感器,这个时候界面如图5-5所示:

图5-5 天然气异常界面
在本章中,主要对毕业设计中硬件设计部分和软件设计部分遇到的问题进行说明,并叙述了如何解决这些问题的,在第三部分主要是对实物进行了演示,详细的说明了实物演示后的结果。
本设计设计了一款智能安防系统,可以有效快速的防止电火,明火,气火,天然气泄漏,非法入侵等多种情况的发生。经过9个多月的努力,从方案论证到硬件设计再到软件设计,一步步实现,最终完成了这个设计。
本设计总共有两种模式,当用户在家时,可以通过无线遥控器控制该系统进入安全模式,这时候控制器只进行防火功能和对室内温湿度和CO进行采集,并且通过TFT显示出来,当数据发生异常时,主控制器会控制声音报警模块进行报警,并且会通过GSM模块发送报警短信。当用户不在家时,可以通过无线模块控制该系统进入防盗模式,这个时候控制器会进行防火和防盗,会对室内的一切数据进行监测,当烟雾浓度和天然气浓度发生异常时,控制器会进行声音报警和短信报警,并且预留了排气扇接口,可以控制排气扇进行通风。本设计对未来智能安防系统进行了初步试探性的研究。由于时间和技术的原因,此系统设计还存在很多不足之处,程序设计上缺乏灵活性,今后将进一步拓展该系统以增强系统的实用性和参考学习提供参考依据。

更多推荐
所有评论(0)