基于无线传感器网络智能保险箱安防系统的设计(二)
摘要: 本设计提出了一种基于无线传感器网络技术的智能保险箱安防监测系统。该系统由前端监测设备、物联网网关和手机客户端3部分组成,实现了集远程监控、实时报警和、远程动态管理于一体的安防监测功能,并提出了部分重发算法等调优算法以减低丢包率。
摄像头工作流程图
3.2 节点软件调优
3.2.1 模式的选择
该模块拥有2种发送模式,分别是命令模式与透明模式,他们的特点为:
命令模式在该模式下,模块可解析AT命令并作出回应与发送数据。
透明模式模块收到的任何从串口得到的数据均会被转发出去,包括数据与AT命令。
在通常情况下,人们会默认使用命令模式来进行配置与数据解析,但在该模式下发送过程会因遇到某些特殊位而停止(例如中止位一般为0x1A),因此在该模式下无法发送例如JEPG 图等16 进制数据。但若使用透明模式,则无法解析短信或AT命令,使模块处于为了解决这个问题,在本系统中引入混合模式,即命令模式与透明模式。
如图7所示,系统在初始化和不发送数据时工作在命令模式,以处理用户的配置短信。当有数据需要发送时,模块进入透明模式,数据以16进制格式发送,完毕后回到命令模式继续等待。在引入混合模式后,得以使系统同时兼顾处理AT命令与发送16进制数据。与采用该模式之前,发送效率大幅提高,并因此降低了丢帧率。
切换模式流程
3.2.2 丢帧的解决
(1)部分重发机制:仿滑动窗口协议在本系统中,由于选用超低功耗芯片MSP430,因此不可能将整张图片保存在FLASH中。本文在此借用了TCP/IP中的滑动窗口协议原理实现部分重发机制。
如图8所示设定窗口大小为3,在网关接收到数据包后,向单片机发送对应ACK 表明接收成功(图中ACK1,ACK2)。若在规定时间内没有收到则重发对应数据包(重发Pack3)。当窗口内数据包都被成功接收后,窗口向后滑动进行下次发送(准备发送Pack4,Pack5,Pack6)。
部分重发机制的实现
(2)丢帧后的校正
此部分算法在网关服务器上实现,大致流程为:在服务器上将JEPG图像转化为BMP图像(利用GDI+实现),并获得其缩略图。然后利用灰度图像处理中的膨胀算法,通过计算空白区域周围的像素点获得内部像素点。
设f(x,y)是输入图像,b(x,y)是结构元素。用结构元素b 对输入图像y 进行膨胀的运算被定义为:
最后空白的地方利用缩略图放大进行填充。引用此算法后,丢帧图像得到一定程度纠正,效果如图9所示。
丢帧的解决
3.3 iPhone客户端实现
3.3.1 iOS系统与Objective-C介绍
苹果iOS 是由苹果公司开发的手持设备操作系统。iOS与苹果的Mac OS X操作系统一样,它是以Dar-win为基础的,因此同样属于类Unix的商业操作系统。
iOS 架构分为4 层:Cocoa Touch 层,Media 层,CoreServices层与Core OS层。其中Cocoa Touch层提供了基本的系统行为支持,可降低开发者的工作量。Media层包含图形,音频,视频技术。Core Services层为所有应用程序提供基础系统服务,应用程序并不能直接是用这些服务,但它们是系统很多部分赖以建构的基础。
[#page#]
iOS 开发所需语言为Objective-C,它是扩充C 的面向对象编程语言。
3.3.2 iOS客户端设计
作为此监测系统的移动客户端,在iOS平台上实现主要功能为:用户登录,查询保险箱位置,查询实时图片,主动拍照与定位以及基本配置。这些功能既满足了客户的基本需求,又具有了一定的可移植性。
手机客户端采用客户端/服务器(CLIENT/SERV-ER,C/S)架构进行设计,通过采用超文本传输协议(Hy-pertext Transport Protocol,HTTP)和简单对象访问协议(Simple Object Access Protocol,SOAP)与Web服务器进行通信与数据交互。客户端系统结构如图10所示。
手机客户端架构
如上节所述,当保险箱报警模块被触发后(异常震动,湿度温度过高等),会将最新GPS位置信息,连同所采集到的图像信息发送至服务器。此时服务器会向iOS客户端发送一报警信息,随后客户端通过PUSH(推送)功能向手机使用者推送报警信息。若用户查看客户端,可以获取当前最新的所有信息,有助于帮助用户更好地管理以及追回保险箱。同时,该客户端提供用户主动查询位置与拍照功能,使用户了解保险箱的实时状态。
3.3.3 iOS客户端实现
从用户角度进行需求分析,该应用主要用到与服务器交互,地图定位,图片操作,发送短信等功能。以上功能的实现将逐条介绍。
(1)与服务器交互
手机终端与服务器间的通信的数据格式采用可扩展标记语言格式(Extensible Markup Language,XML),手机通过HTTP和SOAP方式与服务器进行数据交互。
SOAP 方式可通过开源类“ASIHTTPRequest”与“GDATA”共同实现。
具体实现流程为:首先按照WEB Service 提供SOAP 1.2请求示例打包SOAP请求字符串,同时按照该示例创建请求实例,所包含字段为:HOST,Content-Tpye,Content-Length 与SOAPAction.完成后将该请求发送至Web服务器,在收到回复后利用SOAP类解析其中内容即可。
(2)地图定位
在iOS 5.x 及以下版本中,都可采用谷歌地图实现该功能。本软件利于MapKit 框架并配合CoreLocation框架进行开发。在进入地图页面后,客户端访问Web服务器获得用户保险箱所在位置坐标,并对坐标值进行校对,而后标注在地图上。考虑到若保险箱丢失,用户无法判断陌生地点的情况,客户端允许用户分别以标准/卫星/混合3 种方式查看地图。在载入地图后,客户端通过调用MKReverseGeocoder 类反相查询坐标点信息,以获得所处位置的国家/城市/街道名,供用户更方便的追踪设备位置。
(3)数据信息处理
客户端提供3 种数据信息服务:查看最新报警数据,查看历史数据与手动采集数据。查看最新报警数据是利用Web 服务器从服务器读取最新数据,用户若认为此数据有用,那么可以连同该图片所在位置信息等保存至客户端,方便以后查看。另外,客户端可以通过短信方式控制用户拥有的监控设备进行数据采集,随后在更新服务器数据后显示在客户端上。
4 功能测试
本系统分为3 个部分,因此,本章节将分两个小部分展示:前端监测硬件,前端监测与数据平台的测试,数据平台与手机客户端的监测。前端监测硬件如图11所示,图中可看出硬件主体,天线,摄像头与电池。
前端监测硬件
前端监测与数据平台之间的交互主要为信息的发送,需发送信息包括心跳帧,警报信息(含GPS位置),图片信息等。服务器上接收程序接收区如图12所示。
数据平台接收数据
图12中,第1条为震动后发送的报警信息,第2,3条为心跳帧,均以16进制显示。在图片发送完毕后,客户端可显示最新照片。由于超广角摄像头安置于保险箱内,周围会出现黑色区域,这是由于隐蔽措施所导致的,如图13所示。
摄像头实拍图
机客户端对现代安防系统有非常实用的意义,并可以以此为基础衍生出更多具有实际应用的功能。目前该应用处于演示版阶段。加一个测试结论如图14所示。
客户端测试图
5 结语
在对基于WSN 的安防监测系统进行功能分析,系统设计与软硬件实现后,开发出了一套基于C/S架构的安防监测系统。该系统的硬件以超低功耗单片机MSP430为核心,具有无线传感器网络的优点,并结合了多媒体技术,具有稳定性高,正确报警率高,监测信息完善等特点。同时该套系统具有较为完善的用户服务,提供包括PC机,短信,用户网站与手机客户端等多种方式进行查询与追踪。
本文由大比特收集整理(www.big-bit.com)
暂无评论