智能安防系统设计_第1页
智能安防系统设计_第2页
智能安防系统设计_第3页
智能安防系统设计_第4页
智能安防系统设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

智能安防系统的设计Designofintelligentsecuritysystem

内容摘要安防系统,是以维护安全为目的。安防系统在生活中常常都可以见到。安防系统其实就是各种安防产品的结合,组合到一起就成为了一个完整的安防系统。其中包含有各式的具有报警、预警、监控、控制功能的安防产品。安防系统的目标是保障特定场景或范围内的安全。而在日常家居生活中,火灾、盗窃等安全问题时有发生,针对这些问题衍生出的安防系统也并不少见。随着科学技术的发展,新鲜的科学技术不断出现。从前人们无法想象的对于安防系统的需求也可以通过智能化一一实现。各种类型的安防系统与现代科学技术相结合,变换出各式各样的不同类型的新式安防系统。智能安防系统除了需要保证基本的安防功能,如温度感应、湿度感应、烟雾感应以及防盗功能等功能外,还需要紧跟科技的发展步伐。人脸识别、各类传感器数据的结合预警以及公众号智能推送预警信息,使得安防系统更加智能化。智能安防系统是一种对于多种常发在日常家居生活中危害安全的智能预警系统。本文中以这种智能安防系统为研究对象,使用RaspberryPi作为核心的预警数据处理设备,各个检测模块通过GPIO口接入RaspberryPi(树莓派),处理相关数据,并且得出需要提示的预警信息。最后将预警信息通过微信公众号传输给用户。实现远程监控家居安全的功能。关键词:智能安防系统;RaspberryPi(树莓派);微信公众号;预警信息;检测模块

AbstractThepurposeofsecuritysystemistomaintainsecurity.Securitysystemisoftenseeninlife.Indailylife,fire,theftandothersecurityproblemsoccurfromtimetotime,andthesecuritysystemderivedfromtheseproblemsisnotuncommon.Inthepast,peoplecouldnotimaginethatthedemandforsecuritysystemcouldalsoberealizedonebyonethroughintelligence.Inadditiontothebasicsecurityfunctions,suchastemperature,humidity,smokeandanti-theftfunctions,theintelligentsecuritysystemalsoneedstokeeppacewiththedevelopmentofscienceandtechnology.Facerecognition,earlywarningofvariouskindsofsensordataandearlywarninginformationofofficialaccountintelligentpushthesecuritysystemmoreintelligent.Theintelligentsecuritysystemisakindofintelligentearlywarningsystemformanykindsofhazardsindailylife.Thispapertakesthisintelligentsecuritysystemastheresearchobject,usesraspberryPiasthecoreearlywarningdataprocessingequipment,eachdetectionmoduleaccessesraspberryPI(raspberryPI)throughGPIOport,processestherelevantdata,andobtainstheearlywarninginformationthatneedstobeprompted.Realizethefunctionofremotemonitoringhomesecurity.Keywords:Intelligentsecuritysystem;RaspberryPi;detectionmodule;WeChatofficialaccount;earlywarninginformation

目 录TOC\h\z\t"一级标题(论文),1,二级标题(论文),2,三级标题(论文),3"1.绪论 .绪论1.1智能安防系统的概念和意义在日常生活中,家居安全是一个十分重要的话题。人们的生活被工作、学习占据了一大部分,这些场景中的安全系统都是相对完备的。对于家的港湾,很多人都注重舒适性而忽视了其安全系统的重要性。安防系统,是以维护安全为目的,运用各种安防产品构成的,包含有各种类型报警、预警、监控、控制功能的安全防范保障系统或系统组合。保障特定场景或范围内的安全是安防系统的目标。除了被工作、学习占据了一大部分的家庭,需要一个完备的可远程的安防系统外,对于一些老年人,他们在家生活的时间更加多。这样使得他们在家居生活中,面临的不只是因为家居危险中的财产损失,还有人身安全。本课题目中所提到的智能安防系统,是将家居生活中会面临的常见的几种风险结合到一个系统内,并且兼具远程预警功能。常见的几种风险包括火灾风险检测、有害气体泄漏风险检测以及被盗风险检测,这几种风险均为家居生活中较为常见的。能对家居安全防护有一个更加完善的保障。1.2智能安防系统发展历程和行业现状目前市场上的智能安防系统,智能化正处于发展阶段。传统安防系统正在不断融入新鲜的科技技术,而正是因为不断地需要融入新鲜的科技技术。导致传统的安防系统的智能化变得困难了起来。对于智能化所需要的技术门槛和知识储备有了极大的提高。虽然对于有一定规模的传统安防系统企业,他们依靠着自身的技术以及对于安防系统的了解,快速将传统安防系统智能化,并不断融入新鲜的科技技术。但传统的安防系统龙头企业毕竟只是少数。对于大部分的中小型安防系统的企业而言需要兼顾各种不同技术以及紧跟科技潮流,并不是一件容易的事情。而对于大多数人而言,智能安防系统也未能普及到大部分的家庭。人们对于智能安防系统的了解不足,以至于在日常家居生活中智能安防系统的功能远大于人们对其的需求程度。1.3智能安防系统研究的意义与目的智能化的安防系统正在处于发展阶段,并且会随着科技技术的不断发展而不断更新发展。如何将对于家居生活来说,充当保卫角色的智能安防系统设计得更加具备适用性和实用性。如何正确地了解以及普及智能安全防护系统。以及如何将专业知识融入生活。这些都是本课题目智能安防系统的设计的意义。而究竟智能安防系统需要达到什么目的?具备什么功能?首先,智能安防系统对于不同的用户家庭也需要兼备适用性和实用性,并非盲目地将很多安全防护功能加入到一套系统中就可以的。其次,远程预警功能对于安全防护系统也是十分重要的,这可以使得用户不在家的情况下都可以对家居中可能面临或者正在面临的危险情况有一个清晰的了解。最后,预警信息的存储,预警信息的存储方便用户对其进行翻阅。本课课题主要目的为设计并研制出可远程预警的智能家居安防系统。包括各种模块对于需要警报的信息的收集;使用RaspberryPi(树莓派)作为警报信息的接收以及处理器;防盗功能的人体红外对人进行识别并将相关图片信息上传到OSS库;预警信息的存储;以及通过微信公众号对警报信息进行远程警报的设计与研发。

2.整体方案2.1智能安防系统整体方案智能安防系统的设计分为两个不同的部分。第一部分是关于硬件系统的设计。第二部分是有关于软件系统的设计。其中硬件系统的设计使用包括了以下几个模块的使用。DHT11型号的温湿度模块传感器、MQ2型号的有害气体模块传感器、人体红外感应模块、RaspberryPi扩展模块摄像头以及RaspberryPi的结合。温湿度传感器数据、有害气体传感器数据通过GPIO传输口,向RaspberryPi传入相关信息。人体红外检测模块则检查是否有人在检测范围内,若有人在检测模块范围内通过RaspberryPi会通知摄像头进行拍摄。软件系统包括,RaspberryPi通过不同GPIO传入的相关信息,进行判断是否达到阈值,并进行相应的预警处理,防盗信息,将拍摄出的图片数据上传到阿里云OSS对象存储库中。最后系统判断需要进行预警的相应信息会传输至后台管理系统。后台管理系统将预警信息保存入数据库,并通过微信公众号主动推送消息到已绑定该智能安防系统的微信号上。2.2系统整体框架图图2.1系统整体框图3.硬件系统设计3.1硬件系统设计在本课课题中,所研究的智能安防系统的硬件部分构成主要硬件包括了以下几个部分的传感器的使用。1.DHT11温湿度模块传感器。2.人体红外感应模块。3.MQ2有害气体模块传感器。4.树莓派扩展模块CSI摄像头。5.RaspberryPi第三代B型。硬件功能框如图3.1所示:图3.1硬件系统功能框图

3.2树莓派介绍本课课题设计采用RaspberryPi第三代B型作为硬件系统的核心数据处理器。RaspberryPi具有体积小、功能强大、开发容易等特点。RaspberryPi是一块小型电脑主板。小小的一块RaspberryPi基本上具备了PC机的大部分功能。只需要外接上屏幕和键鼠等操作显示设备即可使用。相当于一台小型的主机。本课课题中RaspberryPi型号采用3代B型(其正面图如图3.2所示),硬件配置采用了Broadcom四核1.2G赫兹BCM283764位的CPU;40针GPIO接口(其示意图如图3.3所示);1GB内存;4个USB接口;用于连接树莓派专用的CSI摄像头接口,这一专用接口在本课课题中会使用到,用于防盗功能的实现。5伏特/2.5安培的MicroUSB电源接口等。这一系列硬件配置使得开发更加方便快捷。40针的GPIO接口,也能容纳更多安全防护模块的接入。四核1.2G赫兹64位的CPU,能支持基本的安全防护系统的预警信息处理以及发送。树莓派专用摄像头本课课题采用了500万像素的摄像头,足以拍摄出所需要的人像图片。除了以上的一系列硬件设备,树莓派还支持多种编程语言的开发,包括Java、C和Python等。RaspberryPi的系统是基于Linux。这使得树莓派的可开发性更高。在本课课题中,树莓派内对于预警模块信息的处理以及发送会采用Python语言进行编写。如图3.2、图3.3所示为树莓派正面图以及树莓派GPIO口示意图:图3.23B树莓派正面图图3.33B树莓派GPIO口示意图3.3DHT11温湿度模块3.3.1DHT11介绍为了预防安防情况中经常出现的,由于温度过高而有可能导致的火灾问题。在本系统中使用的是DHT11进行检测。其为数字信号输出的温湿度传感器。其湿度的精度达到正负百分之五RH,温度的精度达到正负二摄氏度。而这款温湿度模块的量程也十分可观,可以满足本课课题中温湿度检测的所需。温度的量程达到零摄氏度到五十摄氏度,而湿度的量程则达到了百分之二十到百分之九十。DHT11使用了特殊采集技术。这个采集技术让整个模块的性能都变得更好了。其传感器包括一个湿度感应的元件和一个测温的元件。正是因为这些特点使得GHT11温湿度在各个领域被广泛应用于需要检测温湿度的场景中。其特点包括:第一个特点是,体积小,可以不占用过多的地方也能实现感应温湿度的功能。第二个特点是,低功耗,即使使用RaspberryPi供电也不会出现问题。采用4针单排引脚封装,使得连接更方便等。3.3.2DHT11特点介绍这一模块使用的是完全的数字输出,使得数据更加易懂;十分稳定,使得安防系统更加稳定不用经常更换所使用的温湿度相关器件;不需要接触、或是使用到额外部件,操作以及使用起来更加简便;超长的信号传输距离;超低能耗,资源占用率小;4引脚安装,使用更加直观简单;完全互换等特点。DHT11的四个引脚分别为VDD,供电引脚,工作电压在3.3伏到5伏之间。如图3.4所示为DHT11温湿度传感器的接线图及时序图:图3.4DHT11温湿度传感器接线图及时序图3.4MQ2烟雾传感器模块3.4.1MQ2烟雾传感器介绍MQ2烟雾传感器,是一个可以检测气体泄漏的装置。本次使用的这款传感器适用于检测各种可燃气体的浓度。其具有比较大的探测范围。因此在本课课题中就运用了这个传感器进行气体泄漏检测,安防系统的覆盖返回会更加大;高灵敏度,在发生气体泄漏的时候可以快速响应,可以防止从小泄露演变成大事故;寿命长,可以避免在应用时因为传感器故障导致的监测不到位或是频繁更换;简单的驱动电路,使用起来更加方便;抗干扰性强,降低误报的风险。3.4.2MQ2烟雾传感器工作原理MQ2型烟雾传感器使用的是二氧化锡半导体的气敏材料。当与可燃气体接触时,会引起电导率的变化。通过这个变化我们就可以获得想要的浓度信息。本次使用的这个传感器对于不同浓度或者是不同的气体都会有对应不同的电阻值,因此可以根据电阻值对气体是否泄漏以及泄漏的气体浓度作出一个判断。如图3.5所示为MQ2烟雾传感器模块的原理图及接线图:图3.5MQ2烟雾传感器模块原理图及接线图

3.5人体红外线感应模块3.5.1HC-SR501模块这个型号的人体红外感应电子模块是红外线技术的自动控制模块。这个模块使用了特殊的探头设计。其特点有:灵敏度高,在有可能发生防盗情况时快速作出反应,避免不必要的损失;低电压工作模式,使得本人体红外感应模块可以轻松接入树莓派的5伏电源中;自动感应,使得使用和维护都变得更加地方便。当有人进入范围内就会输出高电平,当范围无人时输出低电平。使用更方便,配置更加简单。工作的温度需要控制在负15摄氏度到70摄氏度。3.5.2菲涅尔滤镜菲涅尔滤镜作为HC-SR501人体红外感应模块工作原理的重要一环。其为根据菲涅尔原理制成。菲涅尔透镜有两种不同的工作形式。在本次课题中的人体红外感应传感器模块使用了这一滤镜,可以使得整个模块的灵敏度有了极大的提高。如图3.6透镜原理图如下:图3.6透镜原理图3.5.3HC-SR501模块工作原理人体有恒定的体温,这个特性使得模块可以通过检测特定红外。从而轻松地将人与其他生物或者物体区分开来。这个温度一般维持在三十六摄氏度到三十七摄氏度之间。而这个摄氏度就会发出波长为十微米的红外线。通过这个特点,就可以直接检测这个波长的红外进行工作了。虽然这个红外比较难以检测,或者说比较难以聚集在器件上。但这个时候就可以使用菲涅尔滤镜对这个红外进行增强。最后这个被增强了的红外被元件感应辐射带来的温度变化之后,会使得自身的电荷平衡被打破。当检测到元件的电荷失衡就马上改变高低电平的输出。如图3.7HC-SR501原理图及电路外接示意图如下:图3.7HC-SR501原理图及电路外接示意图

3.6RaspberryPi摄像头RaspberryPi从1代开始一直都配备了CSI接口以供官方推荐的摄像头进行使用,虽然这一摄像头的像素比较低,但适配做得比较好,方便本次课题的研究与实现。这个CSI接口是用排线进行连接。排线具有体积小、重量轻等特点,十分符合树莓派轻便的特点。本课课题中采用的是500像素的树莓派CSI摄像头,配置也比较方便,实用性强。如图3.8树莓派CSI接口原理图及引脚定义如下:图3.8树莓派CSI接口原理图及引脚定义3.7硬件系统成品图图3.9硬件系统成品图4.软件设计4.1主要软件设计软件设计主要分为两个部分,分别为第一,树莓派内对于各个模块的数据进行分析以及通过MQTT发送给后台管理系统。第二,后台管理系统将树莓派发送过来的信息存储到数据库并通过微信公众号发送给对应用户。软件流程如图4.1所示。图4.1软件框架图4.2树莓派软件系统设计树莓派通过循环获取GPIO口传输的数据,获得所需预警信息。经过不同的处理,判断是否为警报信息。若为需要预警的信息则将信息拼接成一条预警消息,并通过MQTT协议,经由MQTT服务器,发送给后台管理系统。4.2.1MQTT协议介绍MQTT协议(消息队列传输协议)。协议的设计初衷是通过发布加订阅的模式传输信息的。但要将消息的传输从原来的发送到接收,转变为将这两方面割裂开来。就像是人与人之间的对话,是一个讲(发送方)和一个听(接收方)。但如果遇上特殊情况,如网络情况不理想或者是需要远程传播,这种情况下就需要一个容器将这段对话做一个中间处理。这就是协议的设计初衷和原理。因此,协议的实施就需要到一个消息中间件(服务器)。而正是因为这个中间件的存在,导致消息传递的双方并不再局限在一种或者几种类型上,而是有更强的适用性。正是因为这种的适用性,适应多种受限场景。以致于在机器与机器、IoT通信等都使用了该项协议。4.2.2MQTT协议特点MQTT的工作模式和原理,是为了解决在大量计算能力有限,且工作在低带宽或是不可靠的网络中的传感器和控制设备通讯而设计的协议。MQTT的特点有:首先,使用将发布者和接收者割裂开来的消息传递模式。通过在传输的途中加入中间器的角色,可以实现一个发布者同时发送给多个接收者的效果,同时也实现了发送者和接收者之间的解耦。第二,隐蔽式的传输消息。接收方和发送方并不会清楚是谁接受或者发送了消息,使得整个过程更加地安全。第三,这一协议使用的是TCP/IP所提供的网络连接,TCP/IP的网络连接方式十分常见,因此MQTT也可以适配更多的场景,使用更加方便。第四,有三种不同的消息发布质量,适配了多种不同对于消息要求的情况。包括,第一种,确保信息到达,但有可能会出现消息重复。第二种,消息的发布依靠底层网络实现,但这会出现接受方所接受到的内容重复或丢失。最后一种则是保证消息只达一次,不会出现以上两种情况中的会导致接收方所接受的内容丢失或重复。在本科课题中则使用了最后一种方式,确保了消息不会因为节省资源而出现丢失的情况。第五,使用了特殊的方式去通知发送方或者接收方任意一方出现异常或者中断。最后,本协议的消耗量比较小,可以有效地降低所需要到的网络速度。MQTT发送预警消息核心代码:client_id=time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))#ClientId不能重复,所以使用当前时间client=mqtt.Client(client_id)#必须设置,否则会返回Connectedwithresultcode4client.username_pw_set("yx","123")mqttc=mqtt.Client()mqttc.on_connect=on_connectmqttc.on_publish=on_publishmqttc.on_disconnect=on_disconnectmqttc.connect(MQTT_Broker,int(MQTT_Port),int(Keep_Alive_Interval))4.2.3温湿度数据的接收及处理本课课题中所使用到的这种市面上比较普遍的温湿度传感器会持续在低功耗的模式中,使得传感器对系统的消耗大大减少。而启动其工作模式也十分方便,只要在接受到一次复位信号后,就会进入工作模式。而在复位结束后,就会向对应的信号接收方(在本课课题中使用的是树莓派)发送响应信号,并传输数据。本次使用的这个传感器向接收方传输的一次数据大小为固定的40bit。传输的数据格式是一个固定的方式,这使得系统更加容易对数据进行响应和分析。按照顺序分别为,湿度整数数据;湿度小数数据;温度整数数据;温度小数数据;校验和。校验和的目的是为了保证数据传输的准确性,本课课题中也会使用这一数据进行校验。校验和的内容为前4个字节数据相加。在本课课题中,接收DHT11温湿度传感器的数据时,需要引入RPi中的GPIO和time两个库。若DHT11温湿度传感器中传回的温度和湿度数值达到预警阈值,则存在火灾等风险,需要即刻作出预警消息发送的处理。DHT11温湿度传感器数据接收核心代码:#给出复位信号提示传感器开始工作GPIO.setup(tempChannel,GPIO.OUT)GPIO.output(tempChannel,GPIO.LOW)time.sleep(0.02)GPIO.output(tempChannel,GPIO.HIGH)GPIO.setup(tempChannel,GPIO.IN)#接收温湿度传感器数据whilej<40:#计数器j k=0 whileGPIO.input(tempChannel)==GPIO.LOW: continue whileGPIO.input(tempChannel)==GPIO.HIGH: k+=1 ifk>100: break ifk<8: data.append(0)#温湿度数值 else: data.append(1) j+=1

DHT11温湿度传感器数据处理核心代码:#转换成十进制数据foriinrange(8): #湿度整数位 humidity+=humidity_bit[i]*2**(7-i) #湿度小数位 humidity_point+=humidity_point_bit[i]*2**(7-i) #温度整数位 temperature+=temperature_bit[i]*2**(7-i) #温度小数位temperature_point+=temperature_point_bit[i]*2**(7-i) #校验和 check+=check_bit[i]*2**(7-i) #数据校验,校验位正确则判断是否达到警报温湿度ifcheck==tmp: iftemperature>25: #发送MQTT Publish_Data={} Publish_Data['Sensor_ID']="SecRobot" Publish_Data['Date']=(datetime.today().strftime('%Y-%m-%d%H:%M:%S')) Publish_Data['Temperature']=temperature Publish_Data['Humidity']=humidity Publish_Data['Temp_Flag']=1 Publish_Json_Data=json.dumps(Publish_Data) mqttc.publish(MQTT_Topic_Home,Publish_Json_Data)#错误输出错误信息else: print("errorMsg")4.2.4MQ2烟雾传感器数据接收及处理MQ2烟雾传感器数据传输,是通过GPIO口直接输入高低电平达到检测预警效果。所以树莓派可以直接检测MQ2烟雾传感器的DO口所接入的GPIO口中的高低电平实现检测是否出现有害气体。若检测出高电平,则说明正常。若检测出低电平,则MQ2烟雾传感器检测出有危险气体,可能存在有害气体的泄漏问题,需要即刻作出预警消息发送的处理。MQ2烟雾传感器数据接收核心代码:status=GPIO.input(mqChannel)#检测引脚口的输入高低电平状态MQ2烟雾传感器数据处理核心代码:ifstatus:#高电平,正常情况 print("气体检测正常")else:#低电平,检测出气体泄漏#发送MQTT Publish_Data['Sensor_ID']="SecRobot"Publish_Data['Date']=(datetime.today().strftime('%Y-%m-%d%H:%M:%S'))Publish_Data['Temperature']=temperaturePublish_Data['Humidity']=humidityPublish_Data['MQ2_Flag']=0Publish_Json_Data=json.dumps(Publish_Data)mqttc.publish(MQTT_Topic_Home,Publish_Json_Data)4.2.5人体红外感应模块数据接收及处理人体红外感应模块的数据传输,是通过GPIO口直接输入高低电平传输是否有人在人体红外感应模块检测范围内经过的信息。因此树莓派可以直接检测人体红外感应模块中OUT口所接入的GPIO口中的高低电平实现检测是否有人。若为高电平则有人;若为低电平则是正常情况。人体红外感应模块存在两种工作模式。第一种是L模式,即不会重复的触发。在成功检测到一次后,只会输出一次高电平。第二种为H模式,即会重复触发。若一直感应到人体的存在,就会一直输出高电平。本课课题中所使用的模式为H模式。(由于人体红外感应模块数据接收与4.2.4中MQ2烟雾传感器数据接受代码相类似,只是监测GPIO口不相同,故此处不再列出)人体红外感应模块数据处理核心代码:#有人经过检测范围,拍照。没有则休眠一段时间ifGPIO.input(cameraChannel):take_photo()else:time.sleep(cameraChannel)

4.2.6RaspberryPi摄像头拍摄及图片处理RaspberryPi的CSI摄像头由于是官方推荐使用的摄像头,在摄像头拍摄和图片处理上都更加方便。只需要引入系统自带的picamera库就可以通过代码对摄像头进行操作了。在本课课题中,由于树莓派的内存较小,使用了一个阿里云的线上的对象存储库进行存储图片(需要引入阿里云对象存储器库oss2)。这一对象存储库会存储图片并可以通过URL链接访问图片,大大弥补了树莓派内存较小不适合大量存放图片的缺点。同时也避免了树莓派因为内存不足而无法拍摄图片导致的防盗功能失效的问题。树莓派CSI摄像头拍照核心代码:camera=PiCamera()#设置拍照分辨率,分辨率越高越清晰,相对所需要的上传时间也越长camera.resolution=(800,600)camera.capture(filePath)上传图片到阿里云的对象存储器: #上传图片bucket.put_object_from_file(bucketName,fileName)4.3后台管理系统后台管理系统总共分为两大部分的功能实现。第一部分,保存预警信息到数据库。本课课题中所使用的数据库为MYSQL数据库,具体表结构会在本设计4.4数据库设计中列出。第二部分,将从MQTT服务端中获取到的预警信息组织成完整信息发送给已绑定智能安防系统的微信用户。在本设计中,后台管理系统主要使用的是springboot结构框架,Mybatisplus数据库操作框架,pahoMQTT库等一系列第三方框架和库。4.3.1获取预警信息从MQTT服务端中获取预警信息,在后台管理系统中需要订阅相关主题才能从MQTT服务端中获取到对应信息。而MQTT接收端的使用方法简单,代码数量少,可以十分简易地获取到从树莓派智能安防系统发送到服务端的相关预警信息。本课课题中,使用的是pahoMQTT库。保持与树莓派发送端和服务端中所使用的一致。避免出现不同库之间的冲突情况。后台管理系统订阅MQTT服务端信息核心代码://设置当前时间戳为获取的clientId,防止信息的重复与丢失MqttPahoMessageDrivenChannelAdapteradapter=newMqttPahoMessageDrivenChannelAdapter(System.currentTimeMillis(),mqttClientFactory(),mqttProperties.getTopics()); adapter.setCompletionTimeout(5000);adapter.setConverter(newDefaultPahoMessageConverter());adapter.setQos(1);adapter.setOutputChannel(mqttInputChannel());returnadapter;4.3.2发送预警信息获取到相应的预警信息后,需要将这些预警信息整合成文字通过微信公众号的形式,发送给已绑定对应智能安防系统的用户。温湿度预警信息和有害气体预警信息,通过发送纯文本进行通知。并且5分钟内只发送一次。防盗预警信息需要发送图片,采用发送阿里云对象存储器中生成的URL链接进行预警提醒。同样是在5分钟内只发送一次。由于微信公众号对于公众号消息发送次数有限制条件,所以同时间段内不会进行多次发送。并且在超过发送次数后除非用户进行回复操作,否则无法继续进行预警消息的推送。但本课课题中所设计的软件系统会在用户即将到达限制次数前,进行信息回复的提醒。在本课课题中,采用了binarywang的weixin-java-mp第三方库实现微信公众号信息的接收以及推送功能。微信公众号发送预警信息核心代码:WxMpKefuMessagemessage=newWxMpKefuMessage();//通过微信用户特有的wxOpenId对特定用户发送消息message.setToUser(frontUser1.getWxOpenId()); //消息正文内容message.setContent(content); //消息类型message.setMsgType("text");//发送信息wxService.getKefuService().sendKefuMessage(message);4.3.3保存预警信息入数据库一个良好的智能安防系统除了可以实时进行安全防护方面的预警外,还需要可以对已预警过的信息进行一个回溯。预警信息的保留不仅可以让用户对安全防护作出合理的规划,还可以轻松方便地对数据信息进行回溯。若智能安防系统的预警信息出现问题,或者漏洞,都可以及时查询数据追溯原因。在后台管理系统中,对数据库的操作使用的是mybatisplus这一第三方库,大大减少了重复代码的编写。使得后台管理系统的整体代码更加简便,实用性更强。Mybatisplus的特点有,简单易学体积小;灵活操作便于统一管理和优化;大大地解除了sql语句与程序代码的耦合,实现解耦;提供各种实用性强的标签,以供使用。保存预警信息入数据库核心代码(以下以保存温湿度预警信息为例):NormalAlarmEntitynormalAlarm=newNormalAlarmEntity();normalAlarm.setSensorId(id);normalAlarm.setCreateDate(FormatConversionUtils.getDateString(date));normalAlarm.setTemperature((Integer)mqttMess.get("Temperature"));normalAlarm.setHumidity((Integer)mqttMess.get("Humidity"));normalAlarm.setTempFlag(tempFlag);normalAlarm.setMq2Flag(mq2Flag);normalAlarmDao.insert(normalAlarm);4.4数据库设计在本课课题中,由于考虑到安防系统需要对预警信息进行保存,方便用户日后查看或者对系统进行适当地调整,所以采用了数据库对预警信息进行保存。本课课题中使用的是MySQL数据库。并没有将数据保存在树莓派或者后台管理系统中的主要原因是考虑到这两个方面所需要的数据处理性能都比较高,并不适合缓存大量数据。所以使用了数据库将数据保存在不同的表中。本次使用的这种数据库具有体积小、速度快等特点。而且与Linux系统一样,MySQL数据库也是开放源码的。这些特点都十分符合本课题中对数据库的要求。在本课课题中,所设计的数据库表有三个,分别为用户表、普通预警信息表(保存温湿度预警信息和有害气体信息)和图像预警信息表(保存防盗图片信息)。4.4.1用户表用户表中主要保存了用户的微信openId(用于在微信公众号中推送信息给用户)、是否开通普通警报推送、是否开通图像警报推送、绑定的智能安防系统Id、微信可发送消息次数等相关信息。用户表具体信息如表4-1所示:表4-1用户数据库表列名数据类型长度默认值注释idint10null用户IDwxOpenIdvarchar255null微信用户IDwxMsgTimesint1020微信可发送消息次数normalAlarmFlagtinyint11是否开通普通警报推送monitorAlarmFlagtinyint11是否开通图像警报推送sensorIdvarchar255null智能安防系统ID4.4.2普通预警信息表普通预警信息表中主要保存了智能安防系统所发出的有关温湿度预警和有害气体预警信息。具体包括保存预警时间、温度信息、湿度信息、温湿度警报情况、有害气体警报情况等相关信息。普通预警信息表具体信息如表4-2所示:表4-2普通预警信息数据库表列名数据类型长度默认值注释idtinyint10null警报IDsensorIdvarchar255null智能安防系统IDcreateDatedatetimenull预警时间temperatureint50null温度信息humidityint50null湿度信息tempFlagtinyint1null温湿度警报情况mqFlagtinyint1null有害气体警报情况4.4.3图像预警信息表图像预警信息表中主要保存了智能安防系统所发出的与防盗功能(图像预警)相关的预警信息。具体包括保存图像警报ID、预警时间、图片链接、图像警报组ID等相关信息。保存图像警报组ID,主要因为单次防盗警报可能会出现多张图片,所以

温馨提示

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

评论

0/150

提交评论