基于无线传感器网络智能保险箱安防系统的设计(二)
扫描二维码
随时随地手机看文章
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层为所有应用程序提供基础系统服务,应用程序并不能直接是用这些服务,但它们是系统很多部分赖以建构的基础。
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机,短信,用户网站与手机客户端等多种方式进行查询与追踪。