家庭安全检测系统设计_第1页
家庭安全检测系统设计_第2页
家庭安全检测系统设计_第3页
家庭安全检测系统设计_第4页
家庭安全检测系统设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

家庭安全检测系统设计绪论研究目的及意义随着我国飞速经济的发展以及人民生活水平提高,家庭智能检测技术在许多现代化的住宅小区扮演着重要的角色。由于煤气泄露、大量家用电器设备使用中的不安全因素和居民财产出现被盗的现象层出不穷,所以使用家庭智能检测技术可以增强家庭生活的舒适度和便利性,提高能源的利用效率,从而降低能源消耗和减少环境污染REF_Ref25093\n\h[22]。同时,它还可以帮助居民及时发现家庭中的潜在风险,如火灾、气体泄露等,并提供便捷的居家生活服务。家庭智能检测具有实时性,可以更加科学、准确地识别各种安全隐患和健康关注点,为用户提供实时的数据反馈和风险预警。随着社会的发展和人们生活水平的提高,家庭安全问题日益受到关注。其中,家庭防火防盗设计是一个重要的方面,它涉及到保护人们的生命财产安全,预防和减少火灾和盗窃事件的发生REF_Ref21452\r\h[8]。以下是关于家庭防火防盗设计研究背景和意义的论述:家庭是人们安居乐业的地方,但也是潜在的安全隐患所在。根据统计数据,火灾和盗窃是家庭最常见的安全问题之一。火灾不仅会造成人员伤亡和财产损失,还可能引发连锁反应,导致整个社区的灾害。盗窃事件则直接威胁家庭的财产安全和个人隐私。因此,家庭防火防盗设计对于人们的生命财产安全至关重要。保护生命安全:家庭防火防盗设计可以预防和减少火灾和盗窃事件的发生,保护家庭成员的生命安全。通过合理布置消防设备和采取安全措施,如安装烟雾报警器等,可以及早发现和扑灭火灾,降低火灾对人员的危害。保护财产安全:家庭是人们辛勤努力的积累之地,财产安全是每个家庭关注的重点REF_Ref22715\r\h[15]。合理的防盗设计可以有效阻止入侵者的闯入,并增加盗窃发生的难度。例如,安装安全门锁、窗户防护网、闭路电视监控系统等,可以有效防范盗窃行为,保护财产安全。提高社区安全:家庭防火防盗设计不仅仅关乎个体家庭,也对整个社区的安全起到积极的影响REF_Ref22804\r\h[16]。合理的防火防盗设计可以降低火灾和盗窃事件的发生率,减少社区的安全风险,营造一个更安全、更宜居的社区环境。增强安全意识:家庭防火防盗设计的研究和实践过程,可以增强家庭成员的安全意识。通过宣传教育、安全演练和知识普及,人们可以了解火灾和盗窃的危害性,学习如何应对突发事件,并培养正确的安全行为和习惯。为家庭提供安心保障:一个安全的家庭环境可以给家庭成员带来安心和舒适的感受。通过合理的防火防盗设计,人们可以在家中放心地居住、工作和休息,减少安全风险带来的不安和焦虑。综上所述,家庭防火防盗设计的研究背景和意义是多方面的。它关乎人们的生命安全和财产安全,对社区和整个社会的安全稳定起着重要的作用。通过科学合理的设计和实践,可以切实提升家庭的安全性和安心感。国内外研究现状2020年,王海燕在《家庭智能防盗防火报警系统的研究》研究了家庭智能防盗防火报警系统。涉及到传感器(温湿度传感器、一氧化碳传感器、热释电传感器)、控制台和手持装置组成的三个主要模块,并配合使用智能识别算法来将传感器产生的信息进行整合,运用MATLAB软件平台进行了实验验证,在本地局域网及云服务器上建立智能安防系统,并通过功能测试展示该系统的稳定性和可靠性REF_Ref15574\r\h[17]。2020年,汪振华在《远程智能火灾监控报警及控制系统的设计与实现》文中介绍了智能防火监测系统的主要设计思路,包括硬件系统和软件系统两大部分。硬件系统主要由传感器、控制器和执行器等多个模块组成,可实现对温度、烟雾、气体等火灾指标进行检测;REF_Ref16828\r\h[13]而软件系统则采用Java语言开发,涉及从数据采集到数据处理的各个环节,包括数据连接、实时监测、异常报警等功能。2021年,肖贵贤在《家庭红外防盗防火报警系统的设计》文中讲到,在硬件方面,他采用了人体红外感应模块、光敏电阻、烟雾传感器等元器件构建了一个完整的报警系统,该系统可以在发生入侵、火灾等情况时及时发出警报。在软件方面,他使用了MCS-51系列单片机,并在单片机上编写了相应的程序实现对各种传感器信号的检测和处理。2022年,郭向东的《基于单片机的智能防火防盗报警系统设计》一文中,提到了智能防火防盗报警系统通过多个传感器(红外传感器、火焰传感器、烟雾传感器等)来实现对家庭环境的监控,并利用单片机进行信号分析和处理,从而实现准确及时的预警和报警功能。在论文中,作者介绍了智能报警系统原理和系统结构,并通过实验验证了系统可执行性和稳定性。总结了系统的优缺点,并提出了未来系统的改进方向。2020年,GielenAndreaC、PerryEliseC、ShieldsWendyC在《Changesinsmokealarmcoveragefollowingtwofiredepartmenthomevisitingprograms:whatpredictssuccess?》主要研究了两个消防部门在进行家庭访问计划之后,烟雾报警器覆盖率的变化情况,并且探讨了影响家庭访问计划成功的因素。2021年,NNMahzan,NIMEnzai,NMZin,KSSKMNoh在《DesignofanArduino-basedhomefirealarmsystemwithGSMmodule》该论文提出了一种基于Arduino的家用火灾警报系统,它具有多种优点和创新点,对于提高家庭和公共场所的火灾防护水平具有重要作用。同时,该系统还为基于物联网的消防技术研究和应用提供了新思路和方法。2022年,XieWenLan;HaomingHuang在《DesignandApplicationofHomeFireAlarmSystem》文中,主要介绍了一种基于可编程逻辑控制器(PLC)的家庭火灾警报系统它具有多种优点和创新点,对于提高室内火灾预警和防护水平具有重要作用。同时,该系统还为基于工业自动化技术的消防应用研究提供了新思路和方法。2023年AndreevA.;DoroninA.;KachenkovaV.;NorovB.;MirkhasilovaZ.在《Firealarmsystemsconstructiononartificialintelligenceprinciples》中主要涵盖关于安全趋势的现代观点和在全球自动化和集成到统一自动化控制系统的背景下开发安全系统的方向。概述了在安全系统中使用人工智能的前景,以识别从监测数据中获得的迹象难以分类的情况。评估了基于(建立在神经网络和奇数逻辑系统方法的组合学原理之上)神经网络的人工智能原理的火灾报警系统的使用前景。构建数学模型,该模型描述了生成关于系统过渡到"火"状态的信号的可靠形成的过程,并描述了正确设置用于信号生成的系统响应阈值的问题,通过引入接收关于光学范围内对象状态的初始信息的附加通道来解决误报数量最小化的问题。调查制造商声明的气体火灾探测器特性的可靠性,以确定将其作为基于神经网络原理构建的火灾报警系统的初始元素的可能性。主要研究内容本课题设计了一套家庭安全检测系统。它是指通过各种智能技术、传感器等设备,对家庭环境进行实时监测,一旦检测到异常情况如火灾或入侵,则会及时发出警报和预警信号,保护家庭安全REF_Ref19447\r\h[3]。其主要研究内容包括以下几个方面:安全监测技术:对家庭的防火、防盗和防水等方面进行安全监测,确定监测点以及采用的传感器和安全设备类型REF_Ref24714\r\h[20]。实时数据采集与分析技术:通过热释电传感器、温湿度传感器、烟雾传感器等设备对环境数据进行实时采集,REF_Ref10650\r\h[1]并借助单片机等嵌入式设备进行数据的处理、存储、分析和转化,实现智能化预警机制REF_Ref12472\r\h[6]。告警处理技术:将采集并分析好的数据,通过算法判断是否存在安全隐患,并及时发出声、光、震动等告警提示,同时实现APP和短信即时通知SDK,给用户提供快速反应。

系统的总体结构2.1设计方案设计了一种操作方便、运行可靠的家庭安全监测系统。它通过智能设备技术对家庭环境、设备和行为进行实时监测和分析,并提供预警和优化建议的系统。根据家庭检测的需求,结合各种传感器和智能设备技术,设计出具体的检测方案。在家庭安防方面可以采用热释电传感器;在环境检测方面则可使用烟雾传感器、温湿度传感器等设备。设计数据采集与处理设备:通过现代科技手段需要将各个检测区域的数据采集下来并进行分析,可以使用STM32单片机等微型计算机进行数据采集和处理,利用相应的软硬件系统实现数据的存储、分析和转化REF_Ref24610\r\h[19]。设计通信协议与远程控制方式:选择恰当地通信协议和通信方式,与手机的云端进行交互,并实现随时查看家中情况、疏忽报警处理等功能。图2.1系统总体结构框图2.2单片机型号选择方案一:51单片机在很长时间内一直是嵌入式系统领域的主流芯片之一,但它也存在一些缺点,包括以下几方面:电路设计复杂度高:由于51单片机本身的指令数量有限而且架构相对较老,因此在进行复杂的电路设计时,需要使用大量的外设芯片来协助完成;性能受限:51单片机频率较低,运算速度相对较慢,无法满足一些高性能的需求;存储容量有限:由于51单片机的存储容量非常有限,对于一些需要存储大量数据的应用场景来说,不太合适;开发难度较高:采用51单片机进行开发需要一定的汇编语言基础,而且在进行调试和编译时也存在一定的技术门槛;兼容性差:由于51单片机的架构比较老,因此在一些新一代外设中可能无法进行兼容,需要采用其他方案进行升级和改进。综上所述,虽然51单片机在一些低功耗、低成本的嵌入式系统中仍然有着广泛的应用,但其局限性也在逐渐显现,未来可能被更为新型的芯片所取代。方案二:STM32F103C8T6基于ARMCortex-M3内核,系统主线频率为72MHz,能够执行高级指令,具有能耗低和性能高的特点。通信接口:内置了多种通信接口,包括SPI、I2C、USART等,方便与其他设备进行通信。PWM输出:支持高级定时器16路PWM输出,在控制电机等场景中具有很高的实用价值。内置多个DMA控制器,支持复杂的数据传输操作。低功耗设计:支持多种省电模式,从而最大程度地降低了功耗,能够使得STM32F103C8T6芯片在使用过程中能够减少能耗。STM32F103C8T6广泛应用于各个领域。同时,它也是应用非常广泛的开发板芯片,能够使用ArduinoIDE进行编程。由于其便捷的工具和简单的结构并且结合了强大的功能性,在业界很受欢迎。经过对比,STM32F103C8T6主控芯片更适合于本设计的硬件技术支持,因此,本文选择STM32F103C8T6主控芯片作为本次设计的主控芯片。图2.2STM32引脚图系统的硬件部分设计3.1系统的总体设计本设计使用到的传感器有热释电传感器、烟雾传感器和、温湿度传感器、GSM通信以及蜂鸣器报警,将实现以下功能:(1)能够检测周围环境温度、湿度、烟雾浓度,一旦超过设置的阈值,蜂鸣器就会警报。(2)实现热释电传感器对人体的检测,按下“布防”按键,绿色LED灯闪烁20S,后进入“布防”状态,当检测到有人闯入时,红色LED灯常亮并且蜂鸣器进行报警,同时黄色LED闪亮一下,GSM模块将会向用户手机发送短信来提醒;(3)再次按下“布防”按键,解除警报;(4)有“紧急报警”按键,可以紧急报警。3.2系统的主要模块设计3.2.1烟雾传感器模块设计烟雾传感器是用于监测环境中的烟雾浓度的电子元件,广泛应用于家庭、工业等领域。本设计选用MQ-2烟雾传感器,MQ-2烟雾传感器是一种常见的化学式传感器REF_Ref12681\r\h[7],可用于检测空气中的烟雾和一些易燃气体,如甲烷、丙烷、氢气等。该传感器的工作原理是基于电化学气体检测原理,当有烟雾、一氧化碳、氢、甲烷等易燃气体进入传感器中时,它们会与敏感材料发生化学反应,进而改变传感器电路的电流和电压,传感器通过一个放大器将电信号放大和滤波,最后将信号输出到微处理器或其他数字设备中进行分析和处理,确定气体浓度。该传感器的灵敏度高、反应速度快、精度高、成本低,被广泛应用于烟雾报警器、气体泄漏检测等领域。MQ-2烟雾传感器的工作过程如下:1)感应气体:MQ-2烟雾传感器能感应空气中的烟雾、甲烷、氢气、一氧化碳等易燃气体,当这些气体进入传感器时,它们会与敏感材料发生化学反应。2)产生电化学变化:传感器内部有一块感受器薄膜,敏感材料涂覆在感受器薄膜上。当与气体接触的时候,敏感材料会发生化学反应,产生一定的电化学变化。3)改变电路电流和电压:电化学变化导致感受器薄膜电阻值发生变化,进而改变传感器电路的电流和电压。感受器薄膜的电阻值是与空气中烟雾、甲烷、氢气、一氧化碳等易燃气体的浓度成正比的。4)放大和滤波电信号:传感器通过一个放大器将电信号放大和滤波,最后将信号输出到微处理器或其他数字设备中进行分析和处理。5)确定气体浓度:微处理器或其他数字设备会根据传感器输出的电信号,计算出空气中所检测到的烟雾、甲烷、氢气、一氧化碳等易燃气体的浓度,并发出报警等信号,引起相关措施的采取。总的来说,MQ-2烟雾传感器通过化学反应和电信号输出,检测空气中的烟雾、甲烷、氢气、一氧化碳等易燃气体,其工作过程简单、灵敏度高、反应速度快、精度高、成本低。图3.1烟雾传感器模块原理图3.2.2GSM模块设计GSM(GlobalSystemforMobileCommunications)模块是一种使用GSM网络的硬件设备,用于实现无线数据传输及通信,能够实现语音识别、发送短信等通信功能。GSM模块可以通过多种模式进行,主要有GPRS、EDGE和4G这几种通信模式,其中GPRS是最常用的一种。GPRS可以提供高速数据传输,同时还可以使用TCP/IP协议栈进行网络通信,实现远程数据传输和控制功能REF_Ref22484\r\h[14]。GSM系统的工作原理可以分为以下几个步骤:1)移动设备接入:当手机或其他移动设备接入GSM网络时,它会发送IMSI(国际移动用户识别码)和TMSI(临时移动用户标识码)等一些信息到网络中。2)寻呼:GSM网络收到移动设备的信息后,会向移动设备发起寻呼,要求移动设备向基站发送响应信号。3)设备与基站建立连接:当移动设备接收到基站的寻呼信息后,它会向基站发送响应信号,基站再通过控制器将移动设备和网络进行连接。4)移动交换中心的处理:移动交换中心(MSC)负责管理和控制整个GSM网络,它会对移动设备的身份进行鉴别、验证,然后将其连接到需要去往的目标网络。5)数据传输:一旦移动设备与目标网络建立连接,数据传输即可开始。这通常包括语音数据、短信和数据传输等。移动设备和GSM网络之间的通讯协议如SDCCH(无线资源控制通道)、TCH(语音信道)和BCCH(广播信道)等协议。6)通话结束和断开连接:当移动设备使用完毕后,或用户结束通话时,设备会通知GSM网络断开连接,并告知网络它的退出信息。总体上,GSM系统是通过基站、控制器和交换中心三部分构成,实现移动设备和网络之间的通信连接。GSM网络采用识别码来鉴别和验证用户身份,并进行通讯加密,确保移动通信的安全性和稳定性REF_Ref23182\r\h[18]。原理图如下。图3.2SIM800C短信模块原理图3.2.3蜂鸣器电路模块设计蜂鸣器的应用广泛,常见于各种电子设备、汽车、电梯、安防系统、家用电器等领域中。使用仪器发出响声进行报警,这种报警方法所安装的报警机构具有装置体积小、安装容易、成本低等特点,完全能够满足用户的使用要求。综合考虑,蜂鸣器作为更加合理的选择。需要注意的是,在选择适合的提醒方式时,还需要考虑用户的使用场景和需求,以及产品的设计和定位。蜂鸣器报警电路结构一般为:蜂鸣器一种电声转换器,可以将电信号转换成声音信号。它通常由压电陶瓷振荡器、驱动电路和共振腔体三部分组成。蜂鸣器的工作原理是在振荡器中通过外加电压使得压电陶瓷发生振动,产生声音。在驱动电路的作用下,电压的频率和强度可随意控制,从而实现不同的音调和音量。三极管是一种半导体器件,由三个掺杂不同类型的半导体层组成,因此被称为“三极管”。它是一种电流放大器、开关和电压稳压器等元器件,被广泛应用于各种电子设备中。通常分为NPN型和PNP型两种。三极管的结构一般由发射极、基极和集电极三个区域组成。其中,发射极一般负责从外部提供信号,基极主要负责控制信号大小,而集电极则输出放大的电流信号。通过在其基极端加上小信号或控制电流,可以在集电极端获得大量的放大后输出的电流信号,实现信号的放大和增强REF_Ref11557\r\h[4]。其工作过程:当电源通电时,蜂鸣器会处于待机状态,没有声音输出。当触发器接收到触发信号时,触发器会向蜂鸣器发送一个电信号,从而激活蜂鸣器,使其开始振动,并发出声音。其原理图如下。图3.3蜂鸣器报警电路原理图3.2.4热释电传感器模块设计热释电传感器是一种基于热效应的传感器,可用于检测人体或动物等生物体产生的微小热量变化,并将其转换成电信号输出REF_Ref11714\r\h[5]。热释电传感器的原理是基于热效应和热电效应,通过感应生物体产生的微弱热能,从而产生电信号进行测量和分析。热释电传感器通常由一个小型探头和一个信号放大器组成。探头内部包含一个热敏电阻、一个红外线滤光片和一个热电偶,其中热敏电阻用于感应生物体产生的微弱热量变化,红外线滤光片用于滤除环境中的干扰信号,热电偶则用于检测探头表面的温度变化。信号放大器负责将探头输出的微小信号放大,然后进行数字信号处理和分析。热释电传感器具有灵敏度高、响应速度快、反应稳定等优点,因此被广泛应用于安防、医疗、环保等领域中的人体检测和环境监测。在安防领域中,热释电传感器常用于室内外监控、入侵检测等场景中,能够及时检测到人体或动物的热量变化,并发出报警信号。在医疗领域中,热释电传感器可用于测量人体体温、监测心率等生理参数。在环保领域中,热释电传感器可用于检测大气污染、水质污染等环境因素,帮助人们了解环境状况并采取相应的措施REF_Ref25469\w\h[23]。热释电传感器是一种利用物质吸收或辐射电磁波能量而产生温度变化的原理来检测红外线辐射的传感器。它主要由红外敏感材料、光学衰减滤波器、薄膜电阻、封装壳体等组成。热释电传感器具有灵敏度高、能耗低等优点。当然,热释电传感器也有一些局限性,例如容易受到外界环境的影响,灵敏度和测量范围也有一定限制。此外,在应用热释电传感器时需要注意温度变化、信号干扰等因素,以保证传感器的准确性和可靠性。总的来说,热释电传感器作为一种新型的生物传感器,具有很大的应用前景,未来将会有更多的新技术和新材料被应用到热释电传感器中,从而提高其灵敏度、稳定性和可靠性。热释电传感器检测人体是否闯入有以下流程:感应红外线:人体发出的红外辐射波长恰好处于热释电传感器敏感波段,因此当有人或动物从探测窗口通过时,热释电传感器就会感应到这些红外线。产生温度变化信号:探测器将接收到的红外线转化为细微的温度变化信号。由于内部敏感材料吸收了红外线后将受热自然冷却,产生的热量相对周围环境略微高一点。转化为电信号:热释电传感器的红外感应元件将从人体发出的红外辐射右侧能量转化成微弱电荷组合,并且放大这个信号加工处理,得到数字信号输出。分析信号:数字信号输入控制芯片进行分析和处理,以判断该信号是否属于人体、还是其他任何物体、精确定位到操作区域并增加其灵敏度。触发警报:如果确定信号来自人体且超过设置阈值,那么通常会触发警报,例如打开灯光、发出声音等。原理图如下所示。图3.4热释电模块原理图3.2.5温湿度模块设计DHT11是一款数字温湿度传感器模块。它包括一个用于读取数据的低功耗数字信号处理芯片和一个高精度的温湿度传感器。通常用于测量环境温度和相对湿度,DHT11模块采用单总线数据传输技术,将温度和湿度数据转换成数字信号,然后通过单总线传输给微控制器或其他处理器。DHT11模块内部有一个温湿度传感器,该传感器是由由一根导电电阻和一根玻璃纤维束作为传感元件组成。在电路供电后,导电电阻的电阻值会随着环境温度的变化而发生变化,同时也会受到环境相对湿度的影响。当DHT11模块被主控芯片拉低时,DHT11模块会开始工作,并开始采集温湿度数据。DHT11内部会发出一个40位的数字信号,其中包含四个字节的温度数据和四个字节的湿度数据以及一个数据校验位。DHT11模块的输出信号是数字信号,需要进行解码才能获取正确的温湿度数据。DHT11模块使用的是单总线传输技术,采用定时周期来编码数据,定时周期的长短来代表不同的数据位,以达到数据传输的目的。综上所述,DHT11的工作原理是通过温湿度传感器采集温湿度数据,然后将其转换成数字信号,并通过单总线传输技术传输给微控制器或其他处理器进行处理。具有以下特点:1)高精度:DHT11模块具有很高的温湿度测量精度,温度测量范围为0℃-50℃,湿度测量范围为20%-90%,温度精度为±2℃,湿度精度为±5%RH。2)低功耗:DHT11模块的供电电压为3V-5.5V,功耗非常低,使用方便。3)数字化输出:DHT11模块的输出信号是数字量,直接可以用来做数据采集和处理,非常方便。4)价格低廉:DHT11模块的价格非常便宜,可在各种嵌入式系统中广泛应用,成本低、性价比高。5)DHT11模块在各种领域有着广泛的应用,例如:农业、电子、建筑、医疗、家电以及智能家居等。在物联网领域,DHT11是智能温湿度采集的重要组成部分,在各种传感器网络中得到了广泛的应用。其原理图如下。图3.5温湿度模块原理图3.2.6LCD1602液晶屏显示模块设计LCD1602液晶屏是一种标准的16字符×2行显示器,属于主流的嵌入式产品用液晶模块之一,由于其易用性和功能强大,在各种数字嵌入式系统(如Arduino、树莓派等)中得到了广泛的应用。该模块采用了16个液晶点阵,每个液晶点阵包含5x8个点,加上1~2个像素的字符之间间隔,显示区域每行可显示16个字符REF_Ref21706\r\h[11]。本质上,LCD1602液晶屏由液晶模块和控制电路两部分组成,液晶模块采用的是STN液晶反射技术,具有对比度高、消耗电能低等特性。LCD1602液晶屏提供了简单、方便的代码操作方式,能够通过微控制器(如51单片机、STM32、Arduino等)进行控制,并提供了RS、RW、E等多个接口以便于写入数据REF_Ref11064\r\h[2]REF_Ref12998\r\h[10]。LCD1602液晶屏模块在各种应用中得到了广泛的应用,比如:计算器、电子钟、温度显示器、电子秤等。LCD1602液晶屏的工作原理基于液晶显示的原理,该液晶模块通过在液晶材料中施加电场,使其通过旋转和折射光线而产生图像。LCD1602液晶屏模块由于需要与微处理器进行通信,通常会选择并行接口或I2C接口两种方式。LCD1602液晶屏的控制电路中一般包含以下几个主要电路:1)驱动电路:LCD1602液晶屏驱动电路采用的是集成电路HD44780A或KS0066U等。该驱动电路能够将要显示的文字和图形信息自动转换成指令位信息,进行逐步传输;2)显示控制电路:这部分电路通过几个特定的控制线(如RS、RW和E线)控制显示屏的状态,比如控制行和列的移动、写入的数据类型、显示光标等;3)电源电路:液晶屏模块需要正负电源供电,正电源一般为5V,而负电源为-5V或者-10V。综上所述,LCD1602液晶屏的工作原理包括液晶显示原理和控制信号的传输原理REF_Ref16737\r\h[12]。在液晶显示原理的基础上,通过控制电路将输入的数据进行正确的解码和解析,才能最终得到在LCD1602液晶屏上显示的内容。图3.6LCD1602液晶屏模块原理图3.2.7按键设计本设计有设置、布防、撤防和紧急报警四个独立按键。单片机独立按键指的是将按键和单片机连接的一种电子元件。可用于控制电路中的开关、定时器、计数器和其他需要输入的功能。它具有稳定性高、反应速度快、使用方便、价格便宜等优点。图3.7按键模块原理图系统的软件部分设计4.1软件的主要流程系统能够检测周围环境温度、湿度、烟雾浓度,一旦超过设置的阈值,蜂鸣器就会警报;能够实现热释电传感器对人体的检测,按下“布防”按键,绿色LED灯闪烁20S,后进入“布防”状态,当检测到有人闯入时,红色LED灯常亮并且蜂鸣器进行报警,同时黄色LED闪亮一下,GSM模块将会向用户手机发送短信来提醒;再次按下“布防”按键,解除警报;有“紧急报警”按键,可以紧急报警。图4.1系统总体流程图4.2烟雾传感器模块软件设计当STM32单片机初始化后进行工作,烟雾气体传感器检测空气中的烟雾气体浓度。如果达到阈值则发送给单片机,随后单片机使GSM模块发送短信给用户。工作流程图如下。图4.2烟雾传感器模块工作流程图

4.3GSM模块软件设计当STM32单片机初始化后进行工作烟雾气体传感器和热释电传感器将获取周围空气中的烟雾气体浓度是否达到阈值和检测是否有人闯入。若有异常值则发送给单片机,随后单片机使GSM模块发送短信提醒用户注意。流程图如下。图4.3GSM模块工作流程图

4.4蜂鸣器电路模块软件设计当单片机初始化完成后系统开始工作。烟雾气体传感器和热释电传感器将获取周围空气中的烟雾气体浓度和是否有人闯入。若有异常值则发送给单片机,随后单片机使蜂鸣器模块工作以报警。也可以直接选择报警模式使蜂鸣器直接工作。流程图如下。图4.4蜂鸣器模块工作流程图

4.5热释电模块软件设计当STM32单片机进行初始化后,热释电传感器检测周围环境中是否有人体红外辐射波,若存在则说明有人闯入。则发送给单片机,随后单片机使GSM模块发送短信和蜂鸣器报警。工作流程图如下。图4.5热释电模块流程图

4.6温湿度传感器模块软件设计当系统初始化完成后,系统开始工作。温湿度传感器模块开始检测室内实时温湿度,当室内温度超过所设定阈值时判断为室内发生火灾,随后发送至单片机,单片机控制蜂鸣器模块工作报警处理。流程图如下。图4.6温湿度传感器模块流程图4.7显示屏模块软件设计当系统初始化完成后,系统开始正常工作。各个传感器对室内各项数据实时监测并发至单片机,单片机发送至显示屏显示,便于观察监测。流程图如下。图4.7显示屏模块流程图

系统测试5.1系统实物图图5.1系统总体实物图5.2测试原理在进行温度传感器测试之前,需要准备一些工具和材料,包括一台数字万用表、一个温度计、一些导线和连接器以及待测试的温度传感器。首先,将数字万用表设置为温度测量模式,并将测试针插入温度计的接口以进行校准。确保温度计读数与数字万用表的读数相匹配。接下来,将待测试的温度传感器连接到数字万用表上,通过导线和连接器将传感器的正极和负极连接到数字万用表上。在连接时,务必注意正确的极性。然后,将待测试的传感器置于一定的温度环境中,可以通过温度计测量环境温度,确保环境温度稳定且符合测试要求。待传感器稳定后,读取数字万用表上显示的温度传感器输出值。最后,将读数与温度计读数进行比较,确保测试结果准确。如果测试结果与预期值相符,说明该温度传感器工作正常。如果测试结果与预期值不符,则需要进一步检查传感器和测试设置以确定问题所在。在进行烟雾传感器调试之前,需要准备一些工具和材料,包括一个烟雾发生器、一个数字万用表、一些导线和连接器以及待调试的烟雾传感器。首先,将数字万用表设置为电流测量模式,并将测试针插入烟雾传感器的正极和负极以测量传感器的电流值REF_Ref24835\n\h[21]。确保传感器的正负极连接正确,并且测试针与传感器接触良好。接下来,使用烟雾发生器产生一定浓度的烟雾,并将烟雾引入待调试的传感器中。在传感器受到烟雾刺激时,电流值应该会发生变化。读取数字万用表上显示的电流值,并比较与预期值的差异。最后,根据测试结果进行调整。如果传感器无法正确检测烟雾,可能需要调整传感器的敏感度或者更换传感器。如果测试结果正常,则说明烟雾传感器工作正常。在进行热释电传感器调试之前,需要准备一些工具和材料,包括一个数字万用表、一些导线和连接器以及待调试的热释电传感器。首先,将数字万用表设置为电压测量模式,并将测试针插入热释电传感器的正极和负极以测量传感器的输出电压值。确保传感器的正负极连接正确,并且测试针与传感器接触良好。接下来,对传感器进行敏感度测试。使用一个热源(如火柴或者手指)在传感器附近移动,观察数字万用表上的输出电压是否随着热源的变化而变化。如果输出电压发生变化,说明传感器工作正常。最后,根据测试结果进行调整。如果传感器无法正确检测热源,可能需要调整传感器的敏感度或者更换传感器。如果测试结果正常,则说明热释电传感器工作正常REF_Ref11557\r\h[4]。5.3实物功能测试(1)开机,显示屏正常显示。按下“布防”按键,绿色LED灯闪烁20S,后进入“布防”状态,当检测到有人闯入时,红色LED灯常亮并且蜂鸣器进行报警,同时黄色LED闪亮一下,GSM模块将会向用户手机发送短信来提醒;再次按下“布防”按键,解除蜂鸣器警报;有“紧急报警”按键,可以让蜂鸣器快速报警。图5.2显示屏显示数据(2)使用打火机在火灾报警器或烟雾报警器附近打火,观察显示屏实时数据的变化,当数据超过所设定阈值时,蜂鸣器报警处理;图5.3超出阈值报警(3)检测人体闯入可以在热释电传感器附近用手轻微摆动,观察到上位机收到短信“警报!有人闯入!”,同时蜂鸣器报警。也可以直接通过按键开启报警模式,报警模式下蜂鸣器直接工作,随后将报警模式关闭,蜂鸣器停止工作。图5.4上位机收到短信提醒总结与展望6.1总结在本次设计中,学习了STM32F103C8T6主控芯片、继电器、热释电传感器、烟雾探测传感器的使用。借助网上的资源搭建了阈值分析等程序设计。家庭安全检测系统的调试主要是通过一块STM32开发板,再借助于Keil以及自己搭建的电路实现的。分部调试时偶尔会出现一些问题但解决方案都有迹可循。基本实现了家庭安全环境检测,利用烟雾传感器来检测发生火灾产生的浓烟、利用温湿度传感器来实时检测室内温湿度以及利用热释电传感器进行检测是否有人闯入家中,最后在利用GSM模块以短信的方式发送至上位机。此监测系统能够实现检测后不需要人为干预,自动进行操作。节省了大量人力资源,方便人们生活。6.2展望技术改进方向:针对本篇论文所提出的家庭安全监测系统,可以进一步开展功率管理技术、数据处理技术等方面的研究,让系统更加智能化、高效化。应用拓展方向:在未来的研究中,可以考虑将该系统拓展到更多的领域,如工业监测、医疗监测等领域。多模式监测方向:未来研究可以探索多模式监测技术,通过集成不同的传感器和算法,实现更全面的家庭安全监测。

参考文献曲家骇,王季秩.伺服控制系统中的传感器[M].机械工业出版社.2020张友德,赵志英,涂时亮.单片机微机原理,应用与实验[M].上海:复旦大学出版社,2021:122-136汪振华.远程智能火灾监控报警及控制系统的设计与实现[C],电子科技大学.2020.谢自美.电子线路设计.实验.测试[M].武汉:华中科技大学出版社,2021:212-230张福学.传感器使用电路150例.中国技术出版社[M].2020邬宽民.单片机外围器件实用手册,数据传输接口器件分册.北京.北京航空航天大学出版社.2021:189王贵悦.新编传感器实用手册.水利电力出版社.2020:67-89王芳.智能化住宅防盗防火报警系统[M].大连理工大学,2021.赵玉冬,黄亚坤,赵松.一种机载曲面液晶显示器设计[J].电子机械工程,2021,37(05):40-43.李国龙.加固液晶显示器设计[J].现代工业经济和信息化,2021,11(09):35-36.王妮娜.工业设计色彩基础[M].沈阳.辽宁科学技术出版社.2022.赵春华.可编程控制器及其工程应用[M].武汉:华中科技大学出版2022.02唐守锋,童敏.检测与转换技术[J].徐州:中国矿业大学出版社,2022刘元刚;熊刚;傅宁.基于GSM的家庭防火防盗报警系统[M].机械与电子,2022.陈雍.一种家庭防火防盗报警系统[P].中国科技信息,2020.韩璐斌;胡小峰.智能家庭防火检测报警系统[P].数字技术与应用,2020.王海燕.家庭智能防盗防火报警系统的研究[M].江南大学.2020.张胜;徐晓冰;龚良武;曾斌斌.利用AT89S52单片机实现GSM短信的防火报警系统设计[P].硅谷,2021.ReyRafaelaOliveira,deMeloRoseneiaRodriguesSantos,CostaDayanaBastos.DesignandimplementationofacomputerizedsafetyinspectionsystemforconstructionsitesusingUASanddigitalchecklists–SmartInspecs[J].SafetyScience,2021,143.ParkHayong,YiWaonho.ProposedImprovementstotheSafetyInspectionSystem:AnAnalysisoftheCurrentStatusofBuildingDisasterAccidentsandSafetyInspectionSystems[J].JournaloftheKoreanSocietyofHazardMitigation,2019,19(5).Anonymous.Cycle-Safedetectsmovingobjects[J].MotorTransport,2021.SravanAkuthota,SaiKrishnaN,Rakesh,D.DevaHema.VehicleCollisionSafetyDetectionSystem[J].InternationalJournalofEngineeringandAdvancedTechnology(IJEAT),2018,8(1).LeeChangBeom,JungNamSu,ParkSeongKi,JeonSangOk.AStudyontheSafetyInspectionSystemImprovementofAgriculturalReservoirConsideringFill-DamCharacteristics[J].JournalofTheKoreanSocietyofAgriculturalEngineers,2016,58.附录电路图源代码#include"main.h"#include"tim.h"#include"gpio.h"#include"adc.h"#include"socPort/stm32f1/delayTime.h"#include"socPort/stm32f1/DigitalBasicIo.h"#include"socPort/stm32f1/InsideFlash_BiShe.h"#include"socPort/stm32f1/Serial.h"#include"dev/basicIo/lcd1602.h"#include"dev/basicIo/dht11.h"#include"dev/basicIo/beep.h"#include"dev/basicIo/BasicKeyButton.h"#include"lib/limitNumberValue.h"#include<stdint.h>#include<stdio.h>#include<string.h>#include<string>DigitalBasicIo_io_lcd1602_rs(GPIOC,GPIO_PIN_14);DigitalBasicIo_io_lcd1602_en(GPIOC,GPIO_PIN_15);DigitalBasicIo_io_lcd1602_dat1(GPIOA,GPIO_PIN_0);DigitalBasicIo_io_lcd1602_dat2(GPIOA,GPIO_PIN_1);DigitalBasicIo_io_lcd1602_dat3(GPIOA,GPIO_PIN_2);DigitalBasicIo_io_lcd1602_dat4(GPIOA,GPIO_PIN_3);DigitalBasicIo_io_lcd1602_dat5(GPIOA,GPIO_PIN_4);DigitalBasicIo_io_lcd1602_dat6(GPIOA,GPIO_PIN_5);DigitalBasicIo_io_lcd1602_dat7(GPIOA,GPIO_PIN_6);DigitalBasicIo_io_lcd1602_dat8(GPIOA,GPIO_PIN_7);DigitalBasicIo*_arr_lcd1602_dat[]={&_io_lcd1602_dat1,&_io_lcd1602_dat2,&_io_lcd1602_dat3,&_io_lcd1602_dat4,&_io_lcd1602_dat5,&_io_lcd1602_dat6,&_io_lcd1602_dat7,&_io_lcd1602_dat8};dev::lcd1602<DigitalBasicIo,delayTime>lcd1602(_arr_lcd1602_dat,&_io_lcd1602_rs,&_io_lcd1602_en);DigitalBasicIo_io_dht11(GPIOA,GPIO_PIN_15);dev::dht11<DigitalBasicIo,delayTime>dht11(&_io_dht11);DigitalBasicIo_io_beep(GPIOB,GPIO_PIN_4);dev::beep<DigitalBasicIo>beep(&_io_beep);DigitalBasicIo_io_key1(GPIOB,GPIO_PIN_13);dev::BasicKeyButton<DigitalBasicIo,delayTime>button1(&_io_key1);DigitalBasicIo_io_key2(GPIOB,GPIO_PIN_14);dev::BasicKeyButton<DigitalBasicIo,delayTime>button2(&_io_key2);DigitalBasicIo_io_key3(GPIOB,GPIO_PIN_15);dev::BasicKeyButton<DigitalBasicIo,delayTime>button3(&_io_key3);DigitalBasicIo_io_key4(GPIOA,GPIO_PIN_8);dev::BasicKeyButton<DigitalBasicIo,delayTime>button4(&_io_key4);DigitalBasicIo_io_led1(GPIOB,GPIO_PIN_1);DigitalBasicIo_io_led2(GPIOB,GPIO_PIN_10);DigitalBasicIo_io_led3(GPIOB,GPIO_PIN_11);DigitalBasicIo_io_ledG(GPIOB,GPIO_PIN_12);DigitalBasicIo_io_reShiDian(GPIOB,GPIO_PIN_3);uint16_tadcDmaRecBuf[3];structstructAppSaveDat{ limitNumberValue<uint8_t,100,0>tempF; limitNumberValue<uint8_t,100,0>humiF; limitNumberValue<uint8_t,100,0>yanF; charphone[15];}appSaveDat={ .tempF=35, .humiF=40, .yanF=20, .phone=,};InsideFlash_BiShe<structstructAppSaveDat>flashSaveDat(&appSaveDat);limitNumberValue<uint8_t,100,0>readYan;dev::dht11<DigitalBasicIo,delayTime>::structdht11DatreadDht11;delayTimesysDelayTime;uint8_tserialGprsTxBuf[256];uint8_tserialGprsRxBuf[256];SerialgprsSerial(&huart1,serialGprsTxBuf,256,serialGprsRxBuf,256);boolbuFang=false;boolbuFangStatus=false;uint32_tbuFangToRunMs=0;boolbaoJing=false;booljinJiBaoJing=false;uint8_tsetMode=0;uint8_tsetNumber=0;boolsetS0=0;charsprintfBuf[50];////下面定义关于GSM的>本次设计中GSM用的是串口1unsignedcharUart1_Buff[50]; //串口1缓冲数组unsignedcharUart1_Count=0; //串口1累加变量unsignedcharAT_Count=0; //通信索引unsignedintAT_Time=0; //发送延时unsignedcharPhone[12]="19937113246"; //暂存手机号unsignedcharLink_Error=0; //容错处理unsignedcharSend_Error=0; //发送容错unsignedcharSMS_Num=0; //发送第几条短信uint8_tphone_flag=0; //手机号存储标志位//voiddelay(uint16_tT) //延时函数//{// while(T--);//}//GSM相关函数beginvoidUart1Data(unsignedchardat) //串口1,发送一个字节{ //SBUF=dat; //while(!TI); //TI=0;while(gprsSerial.write(&dat,1)<0);}voidUart1DataByte(constchar*byte)//串口1,发送一串{ //while(*byte!='\0') //{ // Uart1Data(*byte++); //}while(gprsSerial.write((uint8_t*)byte,strlen(byte))<0);}//voidTimer2_Uart()//{// T2CON=0x34;// RCAP2H=0xFF;// RCAP2L=0xDC;// TH2=0xFF;// TL2=0xDC;// TR2=1;// SCON=0x50;// ES=1;// EA=1;// PS=1;//}voidmemory()//存储数据函数{ //unsignedcharq=0; if(phone_flag) { phone_flag=0; //SectorErase(0x2200); //for(q=0;q<11;q++) //{ // byte_write(0x2200+q,Phone[q]); //}//insideFlash.writeAutoErase((uint8_t*)Phone,0x0801f000,11); strncpy(appSaveDat.phone,(char*)Phone,11); flashSaveDat=true; }}voidread_memory(){ //unsignedcharq=0; //for(q=0;q<11;q++) //{ // Phone[q]=byte_read(0x2200+q); //}//insideFlash.read((uint8_t*)Phone,0x0801f000,11); strncpy((char*)Phone,appSaveDat.phone,11);Phone[11]='\0'; if(Phone[0]==0xff){ strcpy((char*)Phone,(char*)"19937113246"); } }chargprsZBuf[200];voidSim900_AT_CMD(){ unsignedcharG_Tab[13]={"\0"}; //unsignedcharIAD[13]="21040715"; if(AT_Time==0) { AT_Time=40; switch(AT_Count) { case0: Uart1DataByte("AT\r\n"); break; //先发送下AT,同步下波特率 case1: Uart1DataByte("ATE0\r\n"); break; //关回显 case2: Uart1DataByte("AT+CNMI=3,2,2,0,1\r\n"); break;//设置短信 case3: Uart1DataByte("AT+CMGF=1\r\n"); break;//设置短信格式 case4: Uart1DataByte("AT+COPS?\r\n"); break; //查询注网是否成功 case5: Uart1DataByte("AT+CGCLASS=\"B\"\r\n"); break; //设置Sim900,B交换协议,SIM900A模块仅支持类别"B"和"CC", case6: Uart1DataByte("AT+CGDCONT=1,\"IP\",\"CMNET\"\r\n"); break; //[设置PDP上下文标志为1,采用互联网协议(IP),接入点为"CMNET"] case7: Uart1DataByte("AT+CGATT=1\r\n"); break; //附着GPRS case8: AT_Count=11;// Link_Error++;// if(Link_Error>=8)// {// Link_Error=0;// Uart1DataByte("AT+CIPCLOSE=1\r\n");// }// elseUart1DataByte("AT+CIPSTART=\"TCP\",\"101.200.208.33\",\"2000\"\r\n"); break; //连接服务器 //上传数据前发送指令 case9:// Send_Error++;// if(Send_Error<2)Uart1DataByte("AT+CIPSEND\r\n");// else// {// Uart1Data(0x1A);// AT_Time=20;// Send_Error=0;// AT_Count=11;// } break; //开始发送数据 case10:// Uart1DataByte(IAD);// Uart1DataByte("d,data:IAD,");// Uart1DataByte("123,456,789,123");// Uart1DataByte("OK\r\n");// AT_Time=10;// AT_Count++; break; case11: // Uart1Data(0x1A);// Send_Error=0; if(SMS_Num==0) {// AT_Time=20; //等待// AT_Count=9; } else { AT_Count=20; AT_Time=0; } break; //下面是GSM发短信部分 case20://选择短信模式 if(SMS_Num==1)Uart1DataByte("AT+CMGF=1\r\n"); //发送短信格式为英文 elseif(SMS_Num==2)Uart1DataByte("AT+CMGF=0\r\n"); elseif(SMS_Num==3)Uart1DataByte("AT+CMGF=0\r\n"); elseif(SMS_Num==5)Uart1DataByte("AT+CMGF=0\r\n"); break; case21: Phone[11]='\0'; if(SMS_Num==1) { Uart1DataByte("AT+CMGS=\""); Uart1DataByte((char*)Phone); Uart1DataByte("\"\r\n"); } elseif(SMS_Num==2) { Uart1DataByte("AT+CMGS=35\r\n");//如果是英文,就发送手机号,如果是中文,就发送数据的长度 } elseif(SMS_Num==3) { Uart1DataByte("AT+CMGS=37\r\n"); } elseif(SMS_Num==5) { Uart1DataByte("AT+CMGS=31\r\n"); } break; case22: G_Tab[0]=Phone[1]; G_Tab[1]=Phone[0]; G_Tab[2]=Phone[3]; G_Tab[3]=Phone[2]; G_Tab[4]=Phone[5]; G_Tab[5]=Phone[4]; G_Tab[6]=Phone[7]; G_Tab[7]=Phone[6]; G_Tab[8]=Phone[9]; G_Tab[9]=Phone[8]; G_Tab[10]='F'; G_Tab[11]=Phone[10]; G_Tab[12]='\0';//交叉放入手机号 if(SMS_Num==1)//短信内容,英文直接发送字符串即可,中文除了前面跟的固定的数据,后面实际的短信内容要是Unicode码 { Uart1DataByte("SetEnd"); } elseif(SMS_Num==2) { Uart1DataByte("0011000D9168"); Uart1DataByte((char*)G_Tab); Uart1DataByte("0008A914");//发送固定的数据以及交叉放入的手机号,最后跟的数据的最后两个是数据数 Uart1DataByte("6E295EA6503C8FC79AD8FF0C8BF76CE8610F0021");//温度值过高,请注意! } elseif(SMS_Num==3) { Uart1DataByte("0011000D9168"); Uart1DataByte((char*)G_Tab); Uart1DataByte("0008A916");//发送固定的数据以及交叉放入的手机号,最后跟的数据的最后两个是数据数 Uart1DataByte("70DF96FE6D535EA68FC79AD8FF0C8BF76CE8610F0021");//烟雾浓度过高,请注意! } elseif(SMS_Num==5) { Uart1DataByte("0011000D9168"); Uart1DataByte((char*)G_Tab); Uart1DataByte("0008A910");//发送固定的数据以及交叉放入的手机号,最后跟的数据的最后两个是数据数 //Uart1DataByte("70DF96FE6D535EA68FC79AD8FF0C8BF76CE8610F0021");//烟雾浓度过高,请注意! Uart1DataByte("8B6662A5002167094EBA95EF51650021");//警报!有人闯入! } //delay(1000);//稍稍意思一下,然后发送一个0x1a,说明数据发送完毕HAL_Delay(100); AT_Count=23; break; case23: Uart1Data(0x1a); break; //发送0x1a,确保模块接收到1a之后返回OK case24: Uart1DataByte("AT+CMGF=1\r\n"); SMS_Num=0; AT_Count=11; break; } }}//>Uart1voidGprsUartRun(){ unsignedchari=0;unsignedcharSBUF; if(1) { //RI=0;if(gprsSerial.IsDataExists()==false){return;}else{intreadGprsDat;readGprsDat=gprsSerial.read();if(readGprsDat<0){return;}SBUF=(uint8_t)readGprsDat;} Uart1_Buff[Uart1_Count]=SBUF; Uart1_Count=(Uart1_Count+1)%50; Uart1_Buff[Uart1_Count]='\0'; if(AT_Count==9||AT_Count==21)//这个命令有点特殊,不会返回回车,所以在这里处理下返回的是">" { if(Uart1_Count>=2&&Uart1_Buff[Uart1_Count-2]=='>'&&Uart1_Buff[Uart1_Count-1]=='') { Uart1_Count=0; AT_Count++; AT_Time=2; } } if(Uart1_Count>=2&&Uart1_Buff[Uart1_Count-2]=='\r'&&Uart1_Buff[Uart1_Count-1]=='\n') //接收到回车符 { if(AT_Count==0||AT_Count==1||AT_Count==2||AT_Count==3||AT_Count==5 ||AT_Count==6||AT_Count==7||AT_Count==20||AT_Count==22||AT_Count==23) { if(Uart1_Count>=4&&Uart1_Count<6&&Uart1_Buff[Uart1_Count-4]=='O'&&Uart1_Buff[Uart1_Count-3]=='K') //接收到OK { AT_Count++; AT_Time=2; } } elseif(AT_Count==4)//查询注网 { if(Uart1_Count>=20&&Uart1_Buff[Uart1_Count-20]=='+'&&Uart1_Buff[Uart1_Count-19]=='C') //+COPS:0,0,"CHINAMOBILE"因为移动卡信号好,所以现在都强制使用移动卡 { AT_Count++; AT_Time=2; } }// elseif(AT_Count==7)// {// if(strstr(Uart1_Buff,"+CREG:0")!=NULL)// {// AT_Count++;// AT_Time=2;// }// } elseif(AT_Count==8)//连接TCP { if(Uart1_Count>=12&&(strstr((char*)Uart1_Buff,(char*)"ALREADYCONNECT")!=NULL||strstr((char*)Uart1_Buff,(char*)"CONNECTOK")!=NULL))//CONNECTOK ALREADYCONNECT { AT_Count++; AT_Time=2; } } if(Uart1_Count>=11&&Uart1_Buff[Uart1_Count-11]=='S'&&Uart1_Buff[Uart1_Count-10]=='E'&&Uart1_Buff[Uart1_Count-6]=='F'&&Uart1_Buff[Uart1_Count-5]=='A'&&Uart1_Buff[Uart1_Count-3]=='L')//SENDFAIL { AT_Count=10; AT_Time=2; } elseif(Uart1_Count>=10&&Uart1_Buff[Uart1_Count-10]=='C'&&Uart1_Buff[Uart1_Count-8]=='O'&&Uart1_Buff[Uart1_Count-6]=='E'&&Uart1_Buff[Uart1_Count-5]==''&&Uart1_Buff[Uart1_Count-3]=='K')//CLOSEOK重连接处理 { AT_Count=8; AT_Time=2; } elseif(Uart1_Count>=8&&Uart1_Buff[Uart1_Count-8]=='C'&&Uart1_Buff[Uart1_Count-7]=='L'&&Uart1_Buff[Uart1_Count-6]=='O'&&Uart1_Buff[Uart1_Count-5]=='S'&&Uart1_Buff[Uart1_Count-3]=='D')//CLOSED重连接处理 { AT_Count=8; AT_Time=2; }//SENDFAIL if(Uart1_Count>=23&&Uart1_Buff[Uart1_Count-23]=='P'&&Uart1_Buff[Uart1_Count-19]=='E'&&Uart1_Buff[Uart1_Count-15]=='S'&&Uart1_Buff[Uart1_Count-14]==':') { for(i=0;i<11;i++) //保存到单片机中的手机号 { Phone[i]=Uart1_Buff[(Uart1_Count-13)+i]; } SMS_Num=1; phone_flag=1; } if(Uart1_Count>=5&&Uart1_Buff[Uart1_Count-5]=='G'&&Uart1_Buff[Uart1_Count-4]=='e'&&Uart1_Buff[Uart1_Count-3]=='t'){ //获取经纬度 SMS_Num=5; } Uart1_Count=0; } }}//extern"C"voidStart();voidStart(){ flashSaveDat.begin(); HAL_ADC_Start_DMA(&hadc1,(uint32_t*)adcDmaRecBuf,1); read_memory(); _io_led1.setOut(1); _io_led2.setOut(1); _io_led3.setOut(1); _io_ledG.setOut(1); _io_reShiDian.setInput(); button1.begin(); button2.begin(); button3.begin(); button4.begin(); beep.begin(); dht11.begin(); lcd1602.begin(); HAL_TIM_Base_Start_IT(&htim3); gprsSerial.receiveStart(); }voidDisplayRun(){ std::stringdisplayStr=""; if(setMode==0){ sprintf(sprintfBuf,"temp:%03dhum:%03d\n",(int)readDht11.temp,(int)readDht11.humi); displayStr+=sprintfBuf; sprintf(sprintfBuf,"yan:%03d",(int)readYan); displayStr+=sprintfBuf; if(buFang==true){ displayStr+="buFang"; } else{ displayStr+="No"; } } elseif(setMode==1){ if(setNumber==0&&setS0==true){ sprintf(sprintfBuf,"tF:hF:%03d\n",(int)appSaveDat.humiF); } elseif(setNumber==1&&setS0==true){ sprintf(sprintfBuf,"tF:%03dhF:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论