基于北斗/GSM技术的掌上智能防丢防盗系统
2013-02-21陈丽珠
陈丽珠
(福州大学 数学与计算机科学学院,福建 福州 350108)
随着通信网络的发展和手机的普及,人与人之间只是一个网络的距离,随着物联网技术[1]的发展,人与物之间也将只是一个网络的距离,物体的防丢防盗管理将有重要的意义。目前的防丢防盗设备多数基于无线通信原理[2]或红外线与GSM通信原理[3-4],实现近距离防丢防盗警报或单纯的红外人体检测警报。鉴于此,本文结合现有的北斗二代定位技术[5]、GSM网络通信技术,在Android智能手机上实现防丢防盗远程智能监控系统[6]。系统实现物品或人员的监控、搜索、定位等掌上智能化管理;系统实现移动轨迹追踪功能,区别目前的地图软件,可在手机端存储用户移动的轨迹。
1 移动位置服务技术研究
1.1 北斗设备监控端位置服务技术研究
北斗设备监控端定位模块使用的是MXTOS2-200模块,该模块是由北京时代民芯公司开发的GPS、BD-2双模兼容接收机,具有低功耗、小体积、高性能等特点。该模块提供了串口、I2C和SPI 3种通信接口,本文使用串口0,速率为 115 200 b/s。发送来的字符串为:$GPGGA,〈UTC 时间〉,〈纬度〉,〈纬度标识符 N 或 S〉,〈经度〉,〈经度标识符 E或 W〉,〈定位状态〉,〈正在使用的卫星数量〉,〈HDOP 水平精度因子〉,〈海拔高度〉,〈地球椭球面相对大地水准面的高度〉,〈差分时间〉,〈差分站 ID号〉,〈校验值〉。截取经纬度信息,根据经纬度距离公式(见4.2节)计算距离,从而判断其是否脱离监控范围。
1.2 Android平台移动位置服务技术研究
Android平台有着严格的安全机制,位置服务、手机地图服务等操作需在AndroidManifest.xml文件中申明权限。GPS要获取ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION等权限,百度地图需ACCESS_NETWORK_STATE、WRITE_EXTERNA-L_STORAGE等权限。
2 数据存储研究与设计
Android手机端采用两种数据存储方式,一种采用SharePreference存储,将数据存储到文件系统中;另一种采用SQLite数据库存储。对于小数据量且不经常改变的数据采用第一种方式,比如地图级别、北斗设备报警音效提醒、GPS更新距离等;北斗设备信息、追踪路径等数据量较大且经常操作的数据就采用第二种方式。其中,北斗设备数据库设计如表1所示。
表1 北斗设备信息表
3 系统设计
3.1 系统整体功能设计
本文的整体功能设计框图如图1所示。
3.2 GSM无线通信协议设计
防丢防盗远程监控功能是通过GSM无线网络进行通信的,本文自行拟定的通信协议如下所示。
(1)手机端监控上锁/解锁指令
#LOCK,〈手机端号码〉,〈监控距离〉,〈蜂鸣器警报〉,〈LED灯警报〉/#UNLOCK,〈手机端号码〉
如#LOCK,13246830424,100,1,1表示监控距离为100 m、开启蜂鸣器和LED灯警报。
(2)北斗设备端经纬度位置请求指令
图1 系统整体功能设计框图
手机端发送 #REQLOC,〈手机端号码〉请求北斗设备端经纬度,北斗设备端接收到请求后,发送#REQLOC,〈经度〉,〈纬度〉指令给手机端。
(3)手机端搜索北斗设备指令
#SEARCH,〈 手机端号码〉,〈蜂鸣器〉,〈LED 灯〉
(4)北斗设备警报指令
北斗设备端超出监控范围后,将发送#ALARM,〈北斗端号码〉,〈经度〉,〈纬度〉,〈超出范围〉指令。
4 北斗设备监控端设计与实现
4.1 功能描述
北斗设备端主要是由北斗定位模块、GSM模块、LPC2478处理器模块、蜂鸣器LED及按钮模块组成。北斗定位模块负责位置信息服务,GSM模块负责通信,蜂鸣器和LED灯用于警报,按钮模块用于紧急联系和位置推送。流程图如图2所示,主要部件原理图设计如图3所示。
4.2 移动轨迹距离计算
图2 北斗设备监控端流程图
图3 北斗设备主要部件原理图
获取两点经纬度信息,将其转为球面坐标,计算两点间的一段劣弧的长度,即为移动轨迹的长度。现假设获取到两坐标点A、B,如图4所示。点O为球心,球面半径为 R,球面上的点 A(lon1,lat1)、B(lon2,lat2),lon1、lon2为经度,lat1、lat2为纬度。AC、BD垂直于赤道平面,垂足分别为 C、D。
图4 地球上两点间球面距率
4.3 模块实现
北斗设备端使用μC/OS-II操作系统开启了GSM模块、北斗经纬度模块和按钮中断3个任务。北斗监控端命令结构体如下所示。
北斗经纬度任务中通过strstr函数判断是否接收到"$GPGGA"开头的字符串,再通过strtok命令截取经纬度。结构体中的monCmd命令等于LOCK,且监控状态mon-Status等于MONITING时,通过4.2节距离公式计算移动距离。如果距离超出监控范围,将monStatus状态置为 ALERT,若isLed或 isBeep等于ON,则开启LED灯和蜂鸣器。同时构造警报信息,调用Send_SMS函数给手机监控端发送警报。
5 Android手机监控端设计与实现
5.1 功能描述
手机端进行北斗设备端和手机端通信时,按3.2节约定的协议构造信息。手机端主要包括北斗设备增删查改功能,北斗设备加锁、解锁、位置请求、搜索等功能;手机用户或北斗设备百度地图位置显示、手机用户移动轨迹记录和查询、删除等功能。点击主界面设备列表记录可进行加解锁、位置请求和搜索操作;点击底部的新建按钮可建新的监控设备;点击底部的系统设置按钮可设置地图显示级别、语言报警提示等设置;点击位置服务按钮可查看手机用户当前位置和按地址查询地图位置;点击路径追踪按钮可记录用户移动轨迹以及管理用户移动的轨迹。
5.2 模块实现
Android手机端软件可安装在Android2.1及以上版本的系统上,本文软件在酷派8150手机Android2.3版本上进行测试,下面将介绍软件的功能实现和测试结果。
(1)北斗设备端防丢防盗功能
北斗设备记录以圆角列表显示,如图5所示;点击列表记录后,创建GridView弹出窗体,可选择设备加解锁、搜索、修改等操作,选择设备加锁和设备搜索都要进行参数设置,设备操作如图6所示;点击新建对象按钮可新建设备,勾选上锁按钮则调用SMS模块通知北斗设备端,如图7所示。
(2)位置服务和路径追踪功能
位置服务地图上显示手机用户和北斗设备位置,系统实现中SMSreceiver类继承了BroadcastReceiver类,在onReceive方法中截获到"#REQLOC"位置请求指令后,将启动Intent调用地图类显示当前位置。
图5 列表界面
图6 功能操作界面
图7 新建设备界面
路径追踪功能用于管理用户移动轨迹,距离采用4.2节推导的公式,代码实现为R*Math.acos(Math.sin(Lat1r)*Math.sin(Lat2r)+Math.cos(Lat1r)*Math.cos(Lat2r)*Math.cos(Long2r-Long1r))。点击左上角按钮可在弹出窗体中查看追踪轨迹,如图8所示。
图8 查看轨迹
(3)系统参数设置功能
系统参数设置地图默认级别、北斗设备警报语音报警和振动警报等,Menu菜单的快捷按钮可关闭和开启语音警报。效果如图9所示。
图9 参数设置
SMSreceiver类的onReceive方法中截获北斗设备警报截获"#ALARM"指令后,获取语音和振动警报参数,开启相应警报;通过PendingIntent设置警报通知内容和运行的 Intent;最后,调用 NotificationManager类中的notify发送警报通知栏消息。手机用户点击通知栏警报可查看警报信息,如图10所示。
图10 警报通知
随着北斗定位技术和物联网技术的发展,物体快速定位将非常方便,物品的远程智能化防丢防盗管理有着重要意义。本系统还可以用来监控小孩和老人,当小孩跑离监控范围后,系统马上向家长发送警报,防止孩子走丢,可通过位置请求服务实时了解他们的位置动态。在将来人与物品都网络化的社会中,掌上智能防丢、防盗管理只需一掌的距离便可掌握各方动态。
[1]顾征宇.广电物联网智能家居体系设计[J].物联网技术,2012(11):60-62.
[2]王啸东,尤凤翔.基于单片机的智能防丢器系统设计[J].河 南 科 技,2011(11):61.
[3]任杰.基于彩信的无线红外防盗报警系统的硬件设计[D].天津:河北工业大学,2007.
[4]张晔.基于红外检测与GPS坐标变化判据的电力设施防盗装置[D].长春:吉林大学,2011.
[5]黄建华,吴升.面向北斗二代终端的导航地图更新框架[J].福州大学学报(自然科学版),2012,40(3):347-351.
[6]ABUZALATA M,MOMANI M,FAYYAD S,et al.A practical design of anti-theft car protection system based on microcontroller[J].American Journal of Applied Sciences,2012,9(5):709-716.