基于GPS的车辆定位监控系统
2016-03-17任晓莉
任晓莉
(宝鸡文理学院 计算机学院,陕西 宝鸡 721016)
基于GPS的车辆定位监控系统
任晓莉
(宝鸡文理学院 计算机学院,陕西 宝鸡721016)
摘要:针对车辆被盗、非授权驾驶等车辆安全问题和公车私用现象,提出基于GPS技术实时地进行车辆跟踪和定位,实现车辆轨迹汇报、防盗等功能;在Linux环境下,使用C语言编写了一套简单的车辆定位系统,系统采用GPS模块,实时地采集车辆的经纬度、海拔高度、车辆行驶速度等信息,实现了车辆定位信息的记录、输出、锁定、打印功能,并通过TCP协议将车辆监控数据上传到网页上,实现让监控人员可以清晰地查看车辆行驶状况的功能;并使用QT设计了一个显示界面输出定位信息,同时实现了根据时间将符合条件的定位数据进行筛选的功能。
关键词:GPS;车辆监控;定位; 防盗
0引言
随着经济的飞速增长,人们的生活水平也日趋提高,私家车也越来越多,但是由于停车场数量少,大部分车辆停放在无人看守地带,容易发生车辆被盗情况;车辆在保养或维修期间,车辆可能会被一些维修人员非授权驾驶,一旦出现意外事故,会对车辆和车主造成严重的经济损失和精神伤害。另外,目前公车私用现象也比较普遍,部分单位的人员利用公车游玩、接送家属,部分企业的人员利用工程车辆接私活。上述情况都是由于缺少对车辆的监控所致,如何实现对车辆的有效监控是个人和单位迫切需要解决的问题。
本文采用GPS技术对车辆进行实时监控,实现车辆的定位、轨迹汇报、防盗等功能。
1基于GPS的车辆定位监控系统设计
GPS可以提供车辆定位、防盗[1]、反劫、行驶路线监控及呼叫指挥等功能。车辆定位管理系统是将GPS端数据采集的技术和互联网技术相结合,将车辆的位置信息、状态信息等数据向车辆管理人员反馈,从而实现车辆监控和防盗功能。车辆定位管理系统可分为两大功能模块,即:车载端与监控中心。车载端通过使用GPS接收机去接收卫星信号,然后运算出相关的定位数据,包括经度、经度半球、纬度、纬度半球、世界时间、车辆速度、行驶方向和状态数据等[2-3],经过计算打包处理,将数据上传到服务器端,服务器端接收来自车载端的定位及状态数据,判断数据类型,将其中的能够显示车辆位置、状态的GPS定位数据、状态数据等并且以表格的形式在网页上显示出来,并将分析出的数据保存到本地文件中以作备份,从而实现车辆的实时监控管理。
要实现上述功能必须具备GPS终端、传输网络和监控平台3个要素。
1.1GPS终端
GPS模块系统采用第三代高线式SiRFStarIII,该芯片的定位精度小于10 m,定位速度快,灵敏度较高。该芯片接收的位置数据通常以GPRMC精简数据格式表示[4]。
1.2传输网络
把通过GPS接收器采集的数据以网页的形式展现,需要在GPS接收器与服务器之间建立连接并进行数据传输,传输过程中需要遵循一定的网络传输协议。TCP/IP协议可以为网络中的各个主机提供面向连接的可靠通信服务,所以选择TCP协议。
1.3开发平台
Linux是基于Unix的开源、免费的操作系统,它支持多用户、多任务、支持多线程和多CPU。Linux具有良好的兼容性,它可以运行主要的Unix工具软件、应用程序和网络协议[5]。
由于要了解GPS底层的配置、工作方式,开发环境采用Linux操作系统,用vim编辑,gcc编译和gdb调试程序,用makefile来管理设计中用到的几个文件。
2基于GPS的车辆定位监控系统实现
2.1GPS串口的配置
使用GPS之前,首先要做的就是配置串口的属性,在Linux系统下安装minicom,然后使用 minicom -s 命令进入,选择Serial port setup,进入后将Serial Device选择为/dev/ttyUSB0,接下来选择E,将其更改为9600 8N1。在代码部分,首先保存串口的原有属性,避免配置出错后无法恢复,然后获取原有属性,ret = tcgetattr(fd,&old),接下来修改波特率,将波特率设置为9 600,同时串口属性为8N1,即1位起始位,8位数据位和1位停止位,PATH地址是/dev/ttyUSB0,最后通过使用tcsetattr函数设置新的属性[5]。
2.2GPS数据采集和分析
因为GPS接收器所接收到的数据是一个很长的字符串,通常可以用逗号来区分数据,同时因为外界因素的影响和接收器本身的误差问题,接收到的数据可能是一个并不完整的坏数据,所以首先要做的就是判断当前所读到的数据是否有效[6]。当确认有效后,就要分析数据的类型。所使用的GPS模块接收到的数据主要是GPGGA格式。GPS数据采集流程如图1所示。
图1 GPS数据采集流程
2.3数据的保存
因为GPS的数据采集是实时的,只要模块运作正常,数据会不停地被接收,所以存储的方式就需要慎重考虑,模块内存为8K,在C语言中,链表正好可以满足内存小的缺陷,创建了拥有15组链表的循环链表。每当从接收器里接收到一条数据后,分析到的各部分数据会存在单个链表的结构体中,并自动指向下一个链表。当15组链表填满后,会自动free掉链表,重新利用这些空间,将内存的利用率达到最大。
2.4记录
当在控制台输入’N’的时候,系统会自动检测所生成的记录文件是否有数据,当返回值显示文件内容为空,或者没有查找到记录文件时,则会重新开始记录,通常情况下当运行程序时会自动开始记录。
2.5输出
首先输入make,电脑会自动运行makefile里的命令,将所有源文件和头文件编译,最终生成两个可执行文件,main和main2。其中main是GPS启动文件,main2是网页服务器启动文件。先运行main,在控制台输入’Y’,控制台会直接显示当前GPS模块所接收到的数据,并分析成清晰明了的数据显示在控制台上,每读取一条显示一条。输出结果如图2所示。
图2 输出功能
2.6锁定
在控制台输入’L’,开启锁定功能。系统会自动读取当前的数据,查找出其中的保存经度和纬度数据段字段,并将所读取到的经纬度坐标作为原点,同时已选定的坐标位置为原点,设施判断函数,范围为正负0.001即100米,当读取到的经纬度范围超出预设范围后,即表示车辆发生移动,GPRS模块会自动读取保存好的短信信息,选取“您的车辆可能被盗,请检查车辆安全”这条信息发送给车主,提示车主马上查看自己的车是否被盗。
2.7服务器上传数据
本功能使用Html编写,使用循环从文件中读取每条信息,最后编译生成可执行文件main2。运行服务器可执行文件main2文件,打开服务器。当开启服务器后,打开任意浏览器,在网址处输入localhost:+所指定的端口号。通过设定好的端口,登陆网页,就可以查看到以表格形式显示出来的数据,查看车辆每时每刻处于什么地点,车速、方向海拔等信息。点击刷新页面后,网页表格下方会自动添加新采集并分析好的数据[7],如图3所示。
图3 网页界面
2.8导出
在网页左上方,有一个按钮,“导出EXCEL”。点击后会打开另一个网页,网页上以列表的形式将保存的数据显示出来,并且自动在本地生成一个EXCEL文件,可以查看文件内的存储结果,同时起到备份的功能,如图4所示。
2.9查看文件并筛选
由于GPS模块是每秒采集一次车辆信息,数据接收后输出的数据比较多,寻找需要查看的数据要逐条查看,即费时又费力,因此需要可以对输出的数据按一定的时间进行筛选。
图4 导出EXCEL后界面
图5 QT主界面
QT主要是使用信号和槽的机制来响应各个动作。界面设计需要一个包含两个Table Widget组件的主界面和一个输入参数的Dialog组件。在主界面的左上方加入一个名为operate 的Push Button组件,其功能是浏览文件,再在Push Button组件下方先放置一个Tab Widget组件,再在Tab Widget组件每页层叠放置两个Table Widget组件, 以Excel的表格形式显示数据。Dialog需要有一个Label组件,一个Line Edit组件,一个Push Button组件。主界面如图5所示,当点击“原样表格”选项卡后,在第一个Table Widget组件中显示成功打开EXCEL类文件的内容,当点击“搜索内容”选项卡后,会自动弹出一个QDIALOG,在对话框的文本框中输入查询时间,确定后会将文件中所有符合的数据在第二个Table Widget组件中全部显示出来[8]。
3结论
基于GPS技术对车辆进行实时跟踪和定位,实现了车辆监控、轨迹汇报、防盗功能。在Linux环境下开发了简单的车辆定位系统,通过GPS模块实时采集车辆的经纬度、海拔高度、车辆行驶速度等信息,实现了车辆定位信息的记录、输出、锁定、打印功能,并通过TCP协议将车辆监控数据上传到网页上,实现让监控人员可以清晰地查看车辆行驶状况的功能。并使用QT设计了一个显示界面输出定位信息,同时实现了根据时间将符合条件的定位数据进行筛选的功能。
参考文献:
[1]赵亭.基于车联网的汽车智能防盗系统设计[J].电子技术应用,2015,41(3):61-64.
[2]林涛,徐伟鑫,张震,等.基于嵌入式的车辆行驶记录系统设计[J].计算机测量与控制,2014,22(1):168- 171.
[3]何涛.车载GPS集成与应用维护[M].成都:电子科技大学出版社,2011.
[4] SiRFStarIII GPS Single Chip[EB/OL].http://wenku.baidu.com/view/c8f49c232f60ddccda38a0a3.html.
[5]刘忆智.Linux从入门到精通(第2版)[M]. 北京:清华大学出版社,2014.
[6]刘婧娟.基于GPS和GSM短消息的车载定位系统的研究[D].重庆:重庆大学,2008.
[7]李东博.HTML5+CSS3从入门到精通[M].北京:清华大学出版社,2013.
[8]霍亚飞. Qt Creator快速入门(第2版)[M]. 北京:北京航空航天大学出版社,2014.
Vehicle Positioning and Monitoring System Based on GPS
Ren Xiaoli
(College of Computer, Baoji University of Arts and Science, Baoji721016, China)
Abstract:Aim to the security problems that vehicle be stolen or unauthorized drive and the phenomenon that utility vehicle used by private, the vehicle tracing and positioning system based on GPS technology is proposed, which implement the functions such as trace report and anti-theft. Under the Linux environment, a simple vehicle positioning system is developed by C Language. In which, the GPS module is adopted to gather the vehicle longitude, latitude, elevation and running speed, etc. The process functions for vehicle positioning information such as record, output, lock and print are implement. The data for vehicle monitoring may be uploaded to website by TCP protocol, so that viewer may view the vehicle running condition clearly. An interface is designed by QT to output positioning information and filter the information according to the certain time condition.
Keywords:GPS; vehicle monitoring; positioning; anti-theft
文章编号:1671-4598(2016)02-0074-03
DOI:10.16526/j.cnki.11-4762/tp.2016.02.020
中图分类号:TP391
文献标识码:A
作者简介:任晓莉(1978-),女,宁夏中卫人,硕士,副教授,主要从事信号与信息处理方向的研究。
基金项目:陕西省教育厅自然科学类专项项目(14JK1047)。
收稿日期:2015-08-07;修回日期:2015-09-17。