基于物联网的智能家居安防监控系统软件开发

2014-08-06 05:39蒋天发文莹莹李珊珊牟群刚
关键词:智能家居服务器监控

蒋天发,文莹莹,杨 红, 钱 凯,李珊珊,牟群刚

(中南民族大学 计算机科学学院,武汉 430074)

家居安防历来就是人们家庭生活不可缺少的一部分,但在当今随着科学技术的发展,不安全因素显著增加,新的家居安防系统方案的研究迫在眉睫.传统的家居安防系统由于性价比低、安装复杂等原因一直无法打开市场大门.物联网(the Internet of things,IoT)[1]和智能技术的出现以及无线网络技术的发展为智能家居自动安防监控系统提供了很大的支撑[2],使得具有大范围覆盖、可远程控制、可靠性高和可实时操作等优点的安防监控系统软件的实现成为可能[3].本文设计了一种基于物联网智能家居安防监控的系统.该方案利用高鲁棒性、低功耗、低成本的无线传感网络构建的安防监控网络系统.无论是在性能、价格、还是在可操作性方面都有着极大的优势[4].由于采用的是无线网络技术,系统无需重新硬件布线,使其可扩展性变得更加灵活[5].该系统还采用全球移动通讯系统(GSM)通信网络跟因特网Internet进一步扩展家庭安防体系的覆盖范围,只要在网络覆盖范围内,主人就能够实现对家内情况监控,从而使家居环境更为安全[6].

1 系统软件框架设计

该系统的软件设计主要包括主控中心的软件设计、基于PC的服务端软件设计和基于ZigBee的客户端设计等[7,8].其中主控中心的软件主要完成短消息的收发、与全新无线网络数据通信(ZigBee)[9]模块的数据通信和基于PC的服务器的数据传输;服务器端的程序主要通过无线或有线网络接收来自主控中心的视频和所有设备的状态信息数据,并将信息保存在日志文件中;ZigBee节点程序主要接收来自主控中心的控制信息,接收传感器的采集数据和报警信息并将数据上传到主控中心[3,10].系统的软件功能如图1所示.

家居安防监控系统的主控中心首先对系统进行初始化处理,其次检测硬件模块是否连接好,包括ZigBee射频模块的配置[7],主控芯片I/O口的设置,GSM模块初始化等.初始化完成后进入主程序执行,等待中断时间发生,具体流程图如图2所示.

图1 系统软件功能架构图 Fig.1 The architecture diagram of system software functions

图2 主控中心软件流程图Fig.2 The software flow chart of main control center

2 系统数据收发程序设计

系统流程如图3所示,系统设计的硬件连接完成后,先进行各模块和串口的初始化,然后在设计的上位机软件上查看有无接收到特定字符串.若有,即为接收到报警信号,要及时采取相应的处理措施;若没有,用户可以做相应的操作,服务器也会发送相应的数据串给中央控制器,控制器会发送相应的控制信号给各模块从而实现对各模块的控制,同时各模块做出相应动作后也会反馈信息给控制器,再由控制器反馈特定字符串给服务器,这样就实现了对各家居模块的远程操作[3,11].

图3 系统流程图Fig.3 The system flow chart

在该系统报警数据格式设计中,为了确保在无线网络中能安全、便捷地传输数据,需要对传输的数据格式进行统一的设计.该系统对传送参数的数据格式做了一个统一的规定.该系统中普通节点主要包括:指纹传感节点,温度传感节点,烟雾传感节点,煤气传感节点.其中,指纹传感器返回0或者1,分别表示是否有非法入侵发生[12].而温度传感器,烟雾传感器和煤气传感器向主控节点发送的数据是采集到的具体数据.主控节点接受这些数据,需要知道具体是哪个终端节点的报警信号,因此该系统设置了一个源地址,同时设置一个参数类型来判断传送的数据类型[13]:具体的数据值(温度、烟雾浓度、煤气浓度),0或1(是否有非法入侵),图片数据.参数数据格式如下所示.

#$#参数设置标志模块参数编号参数数据#$$

无线网络数据传输时,需要设立起始标志和结束标志位来触发接收的开始和结束.该系统在参数数据包开始部分设立#$#来表示参数数据的开始,设立#$$表示参数数据的结束.起始标志#$#和结束标志#$$区别于常用数据,避免干扰数据所造成的错误处理.模块参数可以从0到255,表示256个终端模块.参数数据是一个9个字节的的数据,主要包括9个参数,其内容如下所示.

123456789指纹传感器图片数据烟雾传感器烟雾报警值温度传感器温度报警值煤气传感器煤气报警值呼叫

其中,若1,3,5,7,9参数设置标志置为1,表示该中断模块已开启,具有该功能,置为0,表示没有这种功能.物主也可以根据个人需要,设置4,6,8项的参数报警阈值[3].

3 服务端与客户端程序设计

该系统是基于PC的服务器端,通过无线或有线网络接收来自M3的图片和传感器采集的状态信息数据,从而将这些状态信息存储到日志文件中,服务端程序是基于Windows下C++Builder6.0环境下设计的.C++Builder的网络组建库中提供了许多关于网络通信的组件,TServerSocket与TClientSocket就收录了WinSock中相关API,因此,很容易地编写网络通信程序.使用组件开发WinSock程序时,最少要有一对Socket,一个客户端,一个服务端.

编写网络程序主要依靠Socket套接字,Socket选用的是请求/应答模式,也遵循数据分包传送的根本规则.Socket将底层的细节差异屏蔽掉,实现不同计算机间的通讯[4].建立一个Socket要有4个基本要素:本地地址、本地应用端口号、远方地址、远程应用端口号.首先建立服务器端Socket,在事先约定的端口通过调用Open()函数开始监听;客户机指定欲连接的服务器Socket地址和端口号,调用Open()函数或者将Active属性设置为true,客户端Socket就会向服务器端Socket申请连接服务;如果服务器套接字处于侦听状态,它将自动接受申请并创建通信[10].

3.1 服务器工作流程

服务端主要接收所有传感器和摄像头的采集数据,在上文中描述接收的数据用信息头加以区分[7].这里规定,状态信息数据头以“Status”开头,视频数据头以“#Video#”开头.服务器工作流程如图4所示.

图4 服务器工作流程Fig.4 The flow chart of server working

3.2 服务器数据接收设计

服务器接收的数据有两种,状态信息数据内容较小,在接收的过程中不存在因为网络堵塞而丢包的现象;但对视频数据而言,因为视频数据过大,在网络拥塞时会丢包导致视频无法恢复,因此在视频数据接收过程中,采用分块接收的方法,把要传输的视频数据分成n个小的数据块,每个数据块的传输都采用握手的方式,当一个数据块在服务器端传输完毕后会向客户端发送一个握手信号,客户端紧接着传送下一个要传输的数据块,一帧数据运送结束,便把视频图像整合[14].具体流程如图5所示.

视频数据接收主要代码如下:

datain -> tempSize -> tempTimes ->tempSend;//读取当前块大小、总块数、当前块数

datain.readRawBytes(tempData, Buf_Size);//读取目前视频数据

if ((tempSend ==1) || (getSize == tempSize && tempSend == (getSend + 1)))

{

getSend = tempSend;//更新已接收到的块数变量

getSize = tempSize;//更新已接收到的当前块大小变量

char *pDEST = dataStack[getSend];//接收当前视频数据

}

如上述代码所示,每一个视频数据都包括当前块大小、总块数、当前块数.数据中只有总块数是固定的,当前块大小和当前块号都是可能随时更新的数据,其中,握手信号函数主要用来传送握手信号和已收到的块数[3].只有当前块数等于总块数时,视频数据才传输完整.

图5 服务端接收数据流程图Fig.5 The flow chart of server receive the data

3.3 客户端程序设计

客户端程序主要包括数据通信、发送控制命令和视频采集3个方面,其中数据通信包括与GSM模块的RS232通信和与ZigBee、服务器端的无线网络通信;视频数据采集主要包括客户端的视频预览和视频数据传输;传送控制信息主要是基于消息的内容.

4 系统功能测试

在硬件和软件的设计工作完成以后,需要对家居安防监控系统的功能进行测试,以验证系统是否实现了设计中所提出的的基本功能.对通信质量的测试采用点到点的通信方式,分为两个部分:一是通信距离的测试,二是障碍物的传输测试.

通信距离主要测试协调器节点和一个终端节点之间的直线通讯长度.具体测试方法为:如果协调器节点A固定不动,终端节点B从节点A处开始逐步沿直线向远处移动,采用定时器使节点B每隔3 s向协调器节点A发送一个test消息,并通过串口显示出来,直到不再接收到test消息.

由于本系统是要应用在普通家居环境中的,有必要对ZigBee节点在有障碍物传输时进行质量测试,采取的具体方法是:ZigBee协调器节点放在实验室里,将普通节点放在另一室内,协调器节点通过串口将普通节点发送来的消息显示在PC机上,普通节点通过定时器定时向协调器节点发送test消息,同样按无障碍测试时计算,测试结果如表1所示.

表1 有障碍物通信质量测试表

由测试结果可知墙壁会对数据的传输造成一定的影响,但是当节点间的距离小于10 m的时候,一般不会发生丢包的现象,在20m的时候,丢包率也很低,考虑普通的家居室内环境一般是3室一厅或者4室一厅的结构,面积一般在100~140 m2左右,若把协调器节点安放在室内的中心位置,其他节点安放在各个角落,它们的直线距离一般都在12m左右,能够满足家居安防监控系统数据传输可靠性的要求.

在门禁检测模块测试是将实验室模拟家庭住宅,将具有指纹识别功能的ZigBee节点设备放置在实验室门、窗等位置.陌生人开启房间门,测试ZigBee节点是否报警声,绑定手机是否收到内容为“有人强闯”的短信.在火灾检测模块测试时,火灾检测模块由温度传感器和烟雾传感器共同组成,普通环境下对这个模块的测试工作很难进行,因此这里人为给定一个容易触发的阈值,看两个模块能否做出正确的报警处理.

5 结束语

本文介绍了基于物联网智能家居安防监控系统软件开发方案.该系统采用模块化的设计思想对智能家居安防监控系统的软件进行总体设计,分别从主控中心、服务端、客户端等得以将该系统的各个功能予以实现.并对系统功能进行了测试,测试结果表明该系统软件能够满足普通家居环境的安防监控要求.

参 考 文 献

[1] 胡永利,孙艳丰,尹宝才.物联网信息感知与交互技术[J].计算机学报,2012,35(6):1147-1163.

[2] Walewski J W. Initial architectural reference model for IoT.EU FP7 Project Deliverable Report: D1.2,2011.

[3] 蒋天发,李珊珊.基于TD-SCDMA的实时智能家居安防系统的设计[J].中南民族大学学报:自然科学版,2012,31(4):108-112.

[4] Peter A.Lieberzeit,Franz L.Dichert.Sensor Technology and its Application in Environmental Analysis[J]. Analytical and Bioanalytical Chemistry,2007,387(1):237-247.

[5] 张永刚.我国智能家居现状与问题[J].智能建筑与城市信息,2012,3(13):19-20.

[6] 熊 雄,陈建勇.基于GSM短消息的测试数据远程传输技术研究[J].国外电子测量技术,2010,29(10):34-38.

[7] Sarma S.E,Weis S.A,Engels D.W.Radiofrequency identification:Secure risks and challenges[J].RSA Laboratories Cryptobytes,2003,6 (1):2-9.

[8] 帖 军,王小荣,蒋天发.移动实时环境下一种改进的广播调度算法[J].计算机科学,2012,39(5):147-150.

[9] 廖秋香.基于zigBee技术的智能家居安防系统设计研究[J].科技信息,2012(8):120-126.

[10] 王 鑫,蒋 巍,蒋天发.基于CACTI与飞信的网络实时报警平台[J].武汉理工大学学报,2011,33(12): 131-134.

[11] George Aggelou.Wireless Mesh Networking with 802.16.802.11 and ZigBee[M].NewYork:Me Graw Hill, 2009.

[12] 刘 艮,蒋天发.同态加密技术及其在物联网中的应用研究[J].信息网络安全,2011,(05):61-64.

[13] Nick Hunn.Essentials of Short-Range Wireless[M].London:Cambridge University Press,2010:35-38.

[14] 王 鑫,蒋天发.基于GRAILS的网络运维管理系统的设计[J].武汉大学学报:工学版,2010,43(6):681-684.

猜你喜欢
智能家居服务器监控
The Great Barrier Reef shows coral comeback
服务器组功能的使用
基于PLC的智能家居控制系统研究
通信控制服务器(CCS)维护终端的设计与实现
PowerTCP Server Tool
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
基于Zigbee的无线通信技术在智能家居中的应用
智能家居发展或将实现弯道超车
计算机网络安全服务器入侵与防御