基于Android平台的保险箱异动监控系统的设计
扫描二维码
随时随地手机看文章
摘要:为了实现远程监控保险箱,及时地预警和报警,降低损失,在传统保险箱基础上增加了振动传感器、GPS模块、GSM模块、摄像头模块等监控设备,并利用WSN,GPS,GSM,拍照等现有的技术提出了一种基于Android平台的保险箱异动监控系统。介绍了保险箱监控系统体系结构和硬件平台,重点论述了Android平台下保险箱异动监控客户端的设计思路与实现过程。在无线局域网络的环境下对保险箱进行测试,实现了Android手机对保险箱定位,图片显示,远程拍照等功能,达到了利用手机进行保险箱异动监控的目的。
关键词:远程监控;Android;异动监控;客户端;手机监控
0 引言
随着黄金,白银等贵金属价格的飙升,人们投资黄金的热情不断高涨,投资类金条屡次签出大单,黄金饰品销量也随之攀升,越来越多的家庭开始拥有黄金、珠宝首饰等贵重物品以及大量现金或房产证等,这些贵重物品的保管成了一个难题。传统的保险箱虽然有防火,防盗,防潮等功能,但还存在很多弊端,主要表现在:
(1)物主不在家中贵重物品被盗时物主不能及时被通知,也不能捕捉犯罪证据,报警后也难以立案,给办案人员增加了不少困难。
(2)物主要时常打开保险箱查看里面的贵重物品是否丢失和变质,以及保险箱内环境是否潮湿,给物主带来不便,尤其是物主长期在外出差。
为了解决以上问题,存传统保险箱基础上增加一些必要的传感器,如振动传感器,倾角传感器,湿度传感器、通信模块,如GSM(Global System for Mobile Communications)全球移动通信系统/GPRS(General Paeket Radio Service)通用分组无线服务模块,GPS(Global Posi tioning System)全球定位系统定位模块、摄像头模块,数据处理设备等,利用现有的WSN(Wireless Sensor Network)无线传感器网络技术,GSM技术,GPS技术,摄像头拍照技术对保险箱当前状态进行监测,当保险箱出现异常状态时能将保险箱状态等信息可靠的发送到指定的服务平台。同时保险箱也能解析从服务平台发送过来的特定指令,如保险箱防盗配置,查看等互动操作指令,并且能根据这些指令做出相应的动作。本文将使用Android智能手机为保险箱异动监控系统的客户终端,开发出一套网络化,智能化的保险箱异动监控系统移动客户终端。
1 保险箱异动监控系统简介
保险箱异动监控系统整体分为硬件部分和软件部分。硬件设备有监测设备,数据库,服务器,电脑,手机终端组成,其中监测设备的硬件框图如图1所示。
监测设备主要包括供电模块、传感模块(振动传感器、倾角传感器、红外传感器、摄像头)、控制模块、GSM/GPRS模块、GPS模块、蜂鸣器、Ethernet以太网卡、存储卡。软件部分从功能上分为数据采集程序,数据传输程序,数据处理程序等。软件部分各功能子模块程序独立设计运行,从而使系统运行更流畅,更具灵活性。整个系统的网络架构如图2所示。
(1)监控设备负责感知整个保险箱的状态。例如,如果有报警事件被触发,则要么通过短信方式,要么通过GPRS方式,将报警信息发送至GSM/GPRS网络。
(2)GSM/GPRS/Internet网络负责数据的中转。
GSM/GPRS与Internet之间内部是通过专有网关负责转发。
(3)服务器是一台连入公网的服务器,负责接收来自Internet网络的数据。
(4)PC(Personal Computer)个人计算机终端与服务器相连,可获得来自服务器端数据信息,在终端显示。
(5)手机终端可获取报警的短信信息,通过手机客户端软件实现对保险箱定位,图片显示,远程拍照等功能,达到利用手机对保险箱异动监控的目的。
2 Android系统介绍
Android是Google公司开发的基于Linux平台的开源手机操作系统。Android显著的开放性使其拥有众多的开发者,应用日益丰富,不仅应用于智能手机,也向平板电脑等方向急速扩张。同时,Android智能手机操作系统具有5大优势:开放性,摆脱运营商的束缚,丰富的应用选择,开发商不受任何限制和无缝合的Google应用。Android平台由操作系统,中间件,用户界面和应用软件组成。它的体系结构主要分为4层,从高层到低层分别是应用程序(Application),应用程序框架(Application Framework),核心类库(Libraries and Android Runtime),Linux内核(Linux Kernel)。
应用程序层是Android系统自带的一系列核心应用程序的集合,其中所有的应用程序都是采用Java语言编写的。
应用程序框架层是Android平台为应用程序的开发设计的,开发者完全可以访问核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布它的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。
核心类库层包括一个被Android系统中各种不同组件所使用的C/C++类库,同时包含了一个提供Java编写语言核心库的大多数功能的核心库。
Linux内核层是系统内核层。Android核心系统服务依赖于Linux 2.6内核,Linux内核作为硬件和软件之间的抽象层,它隐藏了具体硬件的一些细节而为上层提供统一的服务。
开发Android应用程序最简捷的方式是安装Android SDK和Eclipse IDE。Eclipse提供了一个丰富的Java环境,Java代码通过编译后,Android DeveloperTools会将它打包,用于安装。
3 监控客户端的设计与实现
Android智能手机在硬件上有CPU等设备,在系统运行上有更高的数据处理能力。利用智能手机对数据处理能力,结合保险箱异动监控系统可以实现对保险箱定位,图片显示,远程拍照等应用,从而进一步提高整个监控系统的运行效率。
3.1 监控客户端的设计
作为保险箱监控系统的移动客户端,Android智能手机在功能上主要实现用户登录,保险箱定位,实时图片显示,主动拍照等功能,同时为了能满足客户端程序的可移植性,在客户端程序上还设计了用户配置的辅助功能。手机客户端与服务器采用C/S(Client/Server)客
户端服务器架构进行设计开发。为了程序的可移植性,手机客户端软件不直接跟监控设备连接。手机客户端采用HTTP(Hypertext Transport Protocol)超文本传送协议和SOAP(Simple Object Access Protocol)简单对象访问协议同Web服务器通信来进行数据交互。客户端功能设计如图3所示。
当保险箱受到外力非法破坏,倾斜后会自动启动GPS模块,在GPS能正常接收到卫星定位数据后把保险箱当前的位置信息不问断地发送到服务器。用户手机通过设定固定的数据请求频率请求服务器中保险箱的经度,纬度信息,同时调用高德Android地图API,达到对保险箱实时定位的功能,为用户了解保险箱去向和警察破案提供了一定的帮助。
当保险箱受到振动时保险箱自动启动摄像头拍照,将拍摄到的图片或视频存到SD卡以及通过GSM/GPRS上传到服务器,用户手机可以读取服务器上的最近图片,为用户远程的了解当前谁动过保险箱,也为报警提供了很有利的证据。
保险箱内安装湿度传感器,当保险箱内超过一定的湿度后会提醒用户。同时,用户也可以通过手机请求服务器中保险箱的湿度信息实时的查看保险箱内的潮湿度,方便用户更好地管理保险箱内贵重物品,使贵重物品不易被受潮损坏。
远程拍照是用户通过手机调用系统内短信发送功能,向摄像头发送启动拍照指令。摄像头收到指令后开始拍照,并同时向服务器发送拍照图片信息。这样用户可以通过手机随时地拍照保险箱前的环境,了解保险箱的状态。
用户登录后可以查看个人信息,可以选择保险箱号,了解自己某一个保险箱当前状态。同时,可以查看当前版本号和对系统的更新操作。
通过对服务器地址和数据元等信息的配置,从一定程度上提高了系统的移植性。
对于整个系统,对于保险箱位置信息的获取可以提供系统的其他模块进行利用,比如超出一定范围触发报警,启动蜂呜器。实时图片功能,箱内潮湿度功能和远程拍照功能增强了监控中心对保险箱的监控力度,提高了预警率,降低了误警率。随着手机功能的不断增强,利用手机可以实现的功能还有很多,资源还待利用,功能还待完善。
3.2 监控客户端的实现
从客户端主要功能上看,手机主要需要用到地图调用,图片操作,远程调用摄像头,手机与服务器之间数据的交互。
保险箱定位地图采用的是高德地图。在Android应用程序中使用高德地图API的步骤如下:
(1)创建工程,并在工程Build Path>ConfigureBuild Path...>Libraries中选择“Add External JARs…”,选定MapApi.iar,点击OK,这样就可以将高德地图Android API库文件引入。
(2)在工程Build Path>Configure Build Path…>Order and Export中将引入的库文件MapApi.iar选中,点击OK,这样可以在Android应用程序中使用高德地图API了。
地图图片的显示利用Android中View类来实现。地图的显示基于一个图层管理器上,每张图片的显示都是由多个图层组成,每个图层都由View构成。通过建立Canvas画布来显示高德地图,保险箱位置等信息,同时利用图片的放大缩小系数实现图片的放大缩小和地图坐标的改变实现图片移动等图片处理功能。
实时图片和远程拍照功能都是通过调用监控设备上的摄像机模块来实现的。远程拍照功能以短信指令向监控设备发送,监控设备接收到短信,解析短信内容后,启动摄像头拍照。之后获取拍照图片跟实时图片功能机制一样。当摄像头拍照后,监控设备将图片数据信息以字符输出流的形式保存到SD卡,同时以GSM/GPRS方式发送到服务器,服务器接收到相应的字符流后以规定的协议把图片数据转成相应的图片并存到指定的位置上,手机从服务器指定的位置获取相应的图片。这样,用户手机实现了实时图片的获取和远程拍照功能。手机终端与服务器间的通信的数据格式采用XML(Extensible Markup Language)可扩展标记语言格式,手机通过HTTP和SOAP方式与服务器进行数据交互。手机界面设计和界面间的转换主要是通过Activity类来实现,每个界面采用一个Activity类进行界面UI设计,同时通过利用Intent类中的setClass方法对页面间的转换进行设置,并通过startActivity来实现页面间的转换。
3.3 系统功能展示
保险箱异动监测系统很有实用意义,基于保险箱异动监测系统功能的实现还能衍生出更多的应用,比如公司保险柜安防,银行保险柜安防等等。目前,该系统已经在实验室进行了测试,客户端软件安装在Android手机上,通过WiFi接入到无线局域网中与服务器建立连接,可实现远程查看保险箱位置,获取实时图片,查看保险箱潮湿度,远程拍照等操作。监控客户端界面如图4所示,其中左边的是保险箱定位界面,右边的是实时图像拍照界面。保险箱定位界面中红圈表示保险箱当前的位置,同时通过对手机的操作可以对图片进行放大缩小功能,使用户更加清楚地知道保险箱所处的位置。实时图像拍照界面中的图像表示保险箱发生振动报警时记录下来的情景。
4 结语
通过对整个保险箱异动监控系统的介绍,对手机监控功能进行设计,开发了一套基于C/S模式的保险箱异动监控系统Android手机客户端程序。程序通过HTTP和SOAP与服务器进行数据交互,并对系统数据进行分析和展现。通过对系统的设计,一方面推广了Android智能手机等移动设备的应用领域,另一方面也增强了保险箱监测系统的监控力度。该保险箱异动监控系统能让用户全面及时地远程观察保险箱情况,并可在异常情况发生时自动发出报警,捕捉犯罪现场证据,及时地提醒用户,这体现了监控系统与物联网的融合。此监控系统具有良好的便携性,预警率高,误警率低,功能较为完善。