• 图纸下载
  • 专业文献
  • 行业资料
  • 教育专区
  • 应用文书
  • 生活休闲
  • 杂文文章
  • 范文大全
  • 作文大全
  • 达达文库
  • 文档下载
  • 音乐视听
  • 创业致富
  • 体裁范文
  • 当前位置: 达达文档网 > 创业致富 > 正文

    基于RFID技术的电动车防盗监控平台设计

    时间:2021-01-14 08:02:54 来源:达达文档网 本文已影响 达达文档网手机站

    林健 郑梁

    摘 要:为了更好地满足电动车防盗需求,提高被盗电动车辆追踪效率、节约时间并降低人力成本,基于RFID技术设计了电动车防盗监控平台。平台由Web服务器集群、Nginx负载均衡器与数据库组成,阐述了平台各部分设计并进行性能测试。测试结果表明,该电动车防盗平台运行稳定、易于操作,能够在车辆被盗时及时帮助失主找回车辆,可基本满足电动车防盗的业务需求,并且能够较好地应对高并发访问。

    关键词:电动车防盗; 防盗监控; RFID;服务器集群; Nginx

    DOI:10. 11907/rjdk. 191579

    中图分类号:TP319   文献标识码:A                文章编号:1672-7800(2020)003-0172-05

    Design of Electric Vehicle Anti-theft Monitoring Platform

    Based on RFID Technology

    LIN Jian,ZHENG Liang

    (School of Electronics & Information, Hangzhou Dianzi University,Hangzhou 310018,China)

    Abstract:
    In order to meet the needs of modern anti-theft field of electric vehicles better and improve the efficiency, save time and decrease manpower cost of tracking stolen electric vehicles, this paper designs an anti-theft monitoring platform for electric vehicles based on RFID technology which is composed of Web server cluster, Nginx load balancer and database. This paper describes the design of each part of the system, and carries out performance testing and result analysis. The test results show that the electric vehicle anti-theft platform in this paper runs stably and is easy for users to operate. It can help the owner to retrieve the vehicle in time when the vehicle is stolen. It basically meets the business needs of electric vehicle anti-theft and can cope with the situation of high concurrency users.

    Key Words:
    electric vehicle anti-theft; anti-theft monitoring; RFID; server cluster; Nginx

    0 引言

    选择电动自行车(简称电动车)作为交通方式具有经济性、灵活性及方便快捷等优势,故电动车自1995年诞生以来,迅速发展成为人们出行的主要交通工具之一[1-3]。但电动车自身防盗功能较差,导致电动车频繁被盗,给人们带来了不少经济损失[4]。

    截至目前,传统电动车防盗方式主要有机械式防盗锁和电子防盗系统。机械式防盗锁是一种通过将电动车某个操作装置进行机械固定,使其不能正常运动的静态防盗方式,如龙头锁、电机锁等。机械式防盗锁价格低廉、易于安装,但不具备报警功能,故防盗性能不强且缺乏及时性;电子防盗系统主要通过各种传感器感应周围环境变化,从而发出声光报警信号,或者通过无线网络获取电动车位置信息,从而实现防盗。国内外已有部分学者针对该防盗方式提出了设计与实现方案。如张远文等[5]在GPS/LBS双模定位报警装置基础上,结合移动终端和监控平台提出一种改良方案,该方案定位精度高,但报警时噪音大,且容易在非防盗条件下误报警;Hossian等[6]提出一种由微控制器、GPS模块、GSM模块、报警器与基于车把旋转检测的防盗传感器等组成的防盗系统,系统通过检测车把从左向右或从右向左的旋转角度判断盗窃情况,可有效减少误报现象,但缺点在于没有为电动车搭建高效的监控管理平台;唐梦达等[7]提出的防盗系统通过GPRS将状态GPS+北斗定位模块的定位数据发送至服务器,再转发至用户手机,可实现对电动车的实时监控,但服务器在应对高并发访问方面存在不足。

    传统电动车防盗系统在防盗功能设计上以硬件为主,装载在电动车上的硬件装置比较容易被破坏,在被剪断供电线路、取出GSM模块中的手机卡等情况下则会失去防盗功能。同时,防盗系统中的服务器平台只是作为一个数据中转站,在高并发访问情况下难以保证其可靠性。本文基于RFID技术提出一个电动车防盗监控平台,采用RFID应用系统,只需在电动车的隐蔽位置贴载电子标签,即可避免上述风险,并且可将所有请求通过负载均衡器分配给服务器集群,保证了高并发情况下系统的可靠性。

    1 系统框架

    电动车防盗监控平台可分为3部分:服务器集群、负载均衡器和数据库。监测点架设的RFID阅读器通过非接触式通信采集信息[8-9],之后借助基站与电动车防盗监控平台进行通信。用户利用接入互联网的浏览器Web端注冊、登录与访问电动车防盗监控平台,可对电动车进行备案并查看监测数据。平台启动后则开始监听监测设备端发送的请求,在收到用户请求后创建新进程,接收数据并通过JSON格式解析出原始信息,根据信息中的监测点设备执行动作运行相关程序链,并同样以JSON格式反馈响应信息。

    本电动车防盗平台采用Nginx服务器实现负载均衡,以应对高并发访问情况,保证运行稳定性。Web服务器集群搭建完成后,在Nginx服务器安装目录的nginx.conf配置文件中添加Web服务器集群配置。用户请求由多个Web服务器分担,从而提高了并行处理能力。

    在数据存储方面,采用关系型数据库MySQL以持久化保存各种数据,以及非关系型Redis数据库缓存查询过的数据,以缓解MySQL数据库的访问压力,并存储用户访问时的Session,保证同一用户请求被发送到不同Web服务器时也能同步Session,防止用户信息丢失。

    2 監控平台设计

    2.1 功能设计

    监控平台可分为5个功能模块,包括:用户管理、车辆管理、监测点管理、地图显示与数据统计,如图2所示。

    (1)用户管理。本模块可分为用户信息和权限管理两部分。用户通过浏览器访问平台,进行注册、登录、上传头像和修改密码等操作,注册时需要绑定用户手机。用户可分为普通用户与管理员,两者具有不同权限。普通用户只能查看与修改自己的信息,管理员还可以修改普通用户信息、备案车辆信息及进行监测点管理等。

    (2)车辆管理。本模块分为车辆信息、数据显示与防盗告警3部分。用户在后台管理界面进行车辆备案并绑定电子标签,可对备案车辆进行信息修改,并通过图表查看上传至平台的电动车轨迹数据。当备案车辆被盗时,设置该车辆案件状态为“已被盗”,若云平台监控到被盗车辆轨迹信息,则通过短信方式告知车主车辆位置信息。

    (3)监测点管理。管理员可查询、增加、修改与删除监测点设备,设置监测点激活状态。对于处于未激活状态或未备案的监测点发送的请求,云平台则加以忽略,不作处理。该模块与监测点进行交互,负责接收监测点上传的数据。

    (4)地图显示。用户可通过浏览器在地图上查看已备案电动车辆指定日期的轨迹信息,非常直观、方便。

    (5)数据统计。采用表格和统计图方式展示用户指定车辆在指定时间段内的轨迹点统计信息,可直观反映电动车辆轨迹频次。

    2.2 分布设计

    为了将所有用户请求任务分配给服务器集群共同完成,电动车防盗监控平台采用Nginx服务器将访问负载分配给集群中的单一服务器节点[10]。Nginx是一款常用的轻量级反向代理服务器,具有占用内存少、并发能力强等特点[11-12],可使服务器集群在高并发访问情况下也运行稳定[13]。启动Nginx服务器后,Nginx内部运行进程,不使用线程[14]。master进程作为主进程,用来管理相互独立的worker进程,负责接收来自用户的访问信号,向各worker子进程发送信息,以及监控所有worker子进程运行状态[15]。若有worker子进程出现异常并退出,master进程会接收到信息并重新启动新的worker子进程。一个请求只可能在一个worker子进程中进行处理,一个worker子进程不可能处理其它进程请求。Nginx进程模型如图3所示。

    完成Web应用程序开发之后,将其部署至Tomcat服务器,利用Nginx进行负载均衡。在启动Nginx之前需要进行配置,在nginx.conf文件中添加如下配置:

    HTTP {

    upstream xxx{#集群名

    server xxx:xxx;#IP地址:端口号

    server xxx:xxx;

    }

    server {

    listen       80;

    server_name  localhost;

    location / {

    root   html;

    index  index.html index.htm;

    proxy_pass xxx;#上面的集群名

    }

    }

    2.3 交互设计

    通信模块是系统的基础模块。电动车防盗监控平台采用B/S模式,故电动车防盗监控平台通信包括平台与用户之间,以及平台与RFID基站之间的通信。通信采用HTTP协议,由浏览器或设备端发送HTTP请求,建立可靠连接。

    2.3.1 浏览器交互

    Web服务器应用程序开发采用Struts2框架,Struts2作为控制器(Controller)负责业务逻辑流转与控制[16]。使用Struts2框架首先要引入开发的jar包,并配置Struts2的前端控制器,在项目的web.xml中进行如下配置:

    struts2

    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

    struts2

    /*

    在Struts2框架下编写Action动作类,作为处理请求、封装数据、响应页面的核心控制器。电动车防盗监控平台的JavaWeb应用程序中编写了CustomerAction类、DeviceAction类和VehicleAction类,分别接收用户管理、监测点管理和车辆管理相关的HTTP请求。每个Action类都继承了ActionSupport类,以模型驱动的方式传递数据,实现对应的ModelDriven并添加getModel方法。因此,需要手动实例化T类型的JavaBean对象,以CustomerAction为例:

    public class CustomerAction extends ActionSupport implements ModelDriven{

    //手动实例化JavaBean

    private Customer customer=new Customer();

    @Override

    public Customer getModel() {

    // TODO Auto-generated method stub

    return customer;

    }

    }

    当电动车监控平台需要传递数据至前端页面时,可在处理请求后将要传递的数据存入值栈,其英文名为ValueStack。值栈相当于Struts2框架的数据中转站,向值栈存入数据,采用OGNL(Object Graphic Navigation Language)表达式在JSP(Java Servlet Pages)页面获取值栈中的值。值栈由root栈和context栈两部分组成,root存放Struts2压入ObjectStack中以List形式存放的动作与相关对象,而context存放压入contextMap中的各种映射关系(一些Map类型对象)。本平台多利用context栈将数据传递至发送请求的浏览器。以CustomerAction为例,向前端传递数据方法如下:

    (1)后台将值存入值栈(context栈)。

    //获取request

    HTTPServletRequest request = ServletActionContext.getRequest();

    //存入Session域

    request.getSession(). setAttribute(“logined_cst”,customer);

    (2) JSP获取值栈对象。

    本平台采用配置文件开发,所以还要对每个Action类进行配置。以本平台中的CustomerAction为例,在struts.xml中的标签之间先配置包结构,再在包结构标签中配置已编写好的Action类。

    <!-- 先配置包结构 -->

    xxx

    当浏览器采用表单或AJAX(Asynchronous JavaScript And XML)方式发送HTTP请求时,无论是Get请求还是Post请求,都要在URI路径中写入”customer_xxx”(“xxx”代表CustomerAction类中接收请求的方法)。若接收请求方法的返回值为String类型,且为该返回值配置了标签,则在CustomerAction类中处理完请求后,跳转到标示的结果页面逻辑视图。

    2.3.2 监测设备交互

    监测设备经由RFID基站與平台交互,同样采用HTTP协议,设备向电动车防盗监控平台发送Get请求,除在Get请求的URL中加入参数外,还有一些参数存放于请求头Header中,如表1所示。为了满足与监测设备交互的需要,平台提供了一系列API(Application Programming Interface)接口,如表2所示。

    服务器接收请求进行一系列相应动作后,返回JSON格式的字符串数据。以表2中的device_token为例,服务器向设备返回内容如下:

    {

    result:{

    access_token:”xxx”,

    expire_time:7 200

    }

    其中,xxx代表服务器传递给设备端的token,“7 200”表示token的有效时间,单位为秒。

    2.4 数据库设计

    电动车防盗监控平台采用支持多用户、多线程[17]的关系型数据库MySQL作为持久化存储方式。MySQL具有处理速度快、可靠性高、可移植性好及支持大量数据查询与存储等优点[18],广泛应用于互联网行业。同时,为了在高并发情况下缓解MySQL访问压力,使用Redis作为MySQL数据库的辅助数据库。Redis是一个高性能的key-value数据库,通过将数据放入内存以提高读写效率[19-20]。官方公布的测试结果表明,Redis读数据速度为110 000次/s,写数据速度为81 000次/s。

    另外,用户发送的请求经负载均衡到Tomcat集群中的某台服务器,将当前用户信息放入Session中,而下一次用户请求或许不是同一台服务器进行处理,因此存在着Session共享问题。故Redis同时被用来解决Session共享问题,将Session读取/存储到Redis服务器,使得用户请求由不同服务器处理时,可实现用户信息的同步。数据库架构如图4所示。

    Redis底层采用C语言实现,主要使用命令进行操作,Web端在代码中使用Jedis操作Redis。在Tomcat服务器文件lib目录下导入jar包,并在context.xml文件中配置如下:

    host=“xxx”<!—Redis网络地址-->

    port=“6379”<!—Redis本地端口号-->

    database=“0” <!—数据库标号 -->

    maxInactiveInterval=“1 800” <!—Redis有效时间,单位为s--> />

    3 性能测试

    在阿里云将服务器部署于Linux系统,使用压力测试工具Jmeter对部署的单一服务器与服务器集群进行性能测试。Jmeter是一款由Java编写的可用于实现负载功能的开源工具软件,小巧轻便,是一款主流的性能测试工具。测试服务器集群由3台Tomcat服务器组成,服务器操作系统为Ubuntu16.04。测试前需添加线程组、HTTP请求及汇总报告等,然后在DOS界面输入测试命令进行性能测试。

    本测试在不同的并发线程组下,对单个服务器和整个服务器集群的平均响应时间进行测试,通过平均响应时间反映本电动车防盗平台的并发能力。测试结果如表3所示。

    由表3可以看出,当并发数低于300时,服务器集群的平均反应时间多于单个服务器。在单服务器情况下,请求直接访问服务器,而在服务器集群情况下,具体由集群中哪个服务器进行处理则需要有一个负载均衡过程,所以在并发数未超过单一服务器承受能力時,服务器集群没有明显优势。当并发数达到300及以上时,并发数超过了单服务器承受能力,服务器集群的优势则会凸显出来。显然,服务器集群提升了系统性能,适合单服务器达到并发瓶颈的高并发应用场景。

    4 结语

    本文设计并实现了基于RFID的电动车防盗监控平台,只需在电动车上贴载电子标签即可进行防盗监控,避免了传统电动车防盗系统在硬件遭到破坏或切断电源线时丧失防盗功能的风险。为了应对高并发用户访问,电动车防盗监控平台搭建服务器集群并使用Nginx进行负载均衡。测试结果表明,分布式集群设计提高了平台并发量,减少了请求处理响应时间,适用于高并发应用场景,但在单服务器未达到性能瓶颈时的低并发访问阶段,分布式集群设计并没有明显优势。未来该电动车防盗平台将实现更为丰富的防盗告警功能,如将人工智能技术应用于电动车安全系数分析,并向用户发送提醒信息,从而实现一个更加智能化的电动车防盗监控平台。

    参考文献:

    [1]倪捷. 电动自行车产业20周年发展历程回顾与展望[J]. 电动自行车,2018(12):
    25-26.

    [2]陈晶. 电动自行车发展趋势[J]. 林业机械与木工设备,2017,45(4):7-9.

    [3]胡瑛琳. 我国电动自行车行业发展的草根现状及对策[J].  中外企业家,2017(28):
    27-28.

    [4]金鑫. 盗窃电动车犯罪及其防控对策研究——基于山东省J市S区的警务工作调研[J]. 黑龙江省政法管理干部学院学报, 2016(6):
    38-41.

    [5]张远文,董文宇. 电动车防盗定位装置和系统[J]. 中国新通信, 2014,16(21):104-105.

    [6]HOSSAIN M M, ISLAM M S, DIPU N F,et al. Design of a low cost anti-theft sensor for motorcycle security device[C]. 2017 IEEE Region 10 Humanitarian Technology Conference,2017:778-783.

    [7]唐梦达,徐飞艳,罗乐,等. 基于物联网的电动车防盗系统设计[J]. 吉林工程技术师范学院学报,2019, 35(1):
    91-93.

    [8]KAPUCU K,DEHOLLAIN C. A passive UHF RFID system with a low-power capacitive sensor interface[C]. 2014 IEEE RFID Technology and Applications Conference,2014:301-305.

    [9]QIANG L. Secure UHF-RFID tag for vehicular traffic management system[C]. 2017 IEEE International Conference on RFID (RFID),2017:26-29.

    [10]黎宇. Nginx在不同网络域名访问中的应用[J]. 通讯世界, 2019, 26(2):
    88-89.

    [11]WEN Z,LI G,YANG G. Research and realization of Nginx-based dynamic feedback load balancing algorithm[C]. 2018 IEEE 3rd Advanced Information Technology, Electronic and Automation Control Conference (IAEAC),2018:2541-2546.

    [12]CHI X,LIU B,NIU Q,et al. Web load balance and cache optimization design based Nginx under high-concurrency environment[C].  2012 Third International Conference on Digital Manufacturing & Automation,2012:
    1029-1032.

    [13]毛正雄,赵志宇,孙北宁. 基于Nginx的Web响应加速优化研究[J]. 动化与仪器仪表,2018(4):31-34,38.

    [14]LERNER R M. At the forge:Nginx[J]. Linux Journal,2016(266):3.

    [15]李杰. 一种高性能服务器的设计与性能评估[J]. 软件,2014(12):88-93.

    [16]杨晓吟.  ASP.NET MVC架构与Web开发分析[J]. 自动化与仪器仪表,2018(7):
    32-35,38.

    [17]周鹏. MySQL数据库的多线程引擎的实现思路[J]. 电子技术与软件工程,2018(19):155.

    [18]SONGKITTIROTE N,SETTHAPUN W,SINTUYA H. Smart plug control system development with MySQL database and MQTT protocol[C]. 2018 International Symposium on Computer, Consumer and Control,2018:76-79.

    [19]CHEN S,TANG X,WANG H,et al. Towards scalable and reliable in-memory storage system:
    a case study with Redis[C]. IEEE Conference on Trustcom,2017:1660-1667.

    [20]王景佩. 基于Redis的結构化数据缓存系统的设计与实现[D]. 武汉:华中科技大学,2016.

    (责任编辑:黄 健)

    收稿日期:2019-04-21

    作者简介:林健(1992-),男,杭州电子科技大学电子信息学院硕士研究生,研究方向为软件工程与项目管理;郑梁(1981-),男,杭州电子科技大学电子信息学院副教授,研究方向为电路与系统应用。

    相关热词搜索: 电动车 防盗 监控

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网