随着经济水平和人们生活质量的不断提高,机动车数量迅速增加,传统停车系统无法满足高速增长的停车需求,智能停车管理系统的研究势在必行。通过对传统停车系统的分析,研究了智能停车系统需具备的基本功能,并以ZigBee传感网络、MQTT协议、Node.js与O2O模式等作为关键技术,提出系统的整体架构、系统组成和实现技术,该系统可有效利用城市停车资源,减轻停车压力。
王中生,韩康
(西安工业大学 计算机科学与工程学院,陕西 西安 710021)
智能停车;ZigBee;MQTT;Node.js;O2O
随着我国经济高速增长、城市化进程不断加快,机动车的数量迅速增加,日益增长的停车需求与城市所能提供的停车位数量之间的矛盾越来越突出,停车问题已经成为影响城市交通可持续发展的瓶颈。然而,传统停车场由于功能单一、效率低下、自动化程度低,己经不能满足人们的停车需求,因此发展城市各处停车场的智能化建设对于改善整个城市的交通管理状况起着至关重要的作用[1]。
传统停车场在停车效率、能源消耗、安全性能、车场管理运营等方面已不能满足现代化的停车发展需求,多数传统停车系统存在以下问题。
(1)停车系统仅记录停车场内车辆数目或剩余车位数目,无法提供具体的停泊位置信息。如果停车场规模较大,车主很难快速找到合适的停车位。
(2)无法提供空余停车位在线显示功能。对于一个开放性停车场,车主无法了解到该停车场是否会有空余车位,等到车主到达该停车场时才发现已经停满,这无疑是对时间和资源的浪费。
(3)停车系统之间很少进行资源共享。当前各个停车场的系统是各自分离的“信息孤岛”[2],停车系统之间无法进行数据共享,即使某些停车场爆满,而另一些停车场有大量空余车位,系统也无法为用户提供来自其他停车场的可选停车方案。
因此,开发和设计一套完整的智能停车管理系统非常必要。智能化的停车管理系统成为大中型综合商业建筑物、学校以及居民小区必备的配套设施[3],它可以有效减轻人们出行的压力,缓解现代城市堵车及停车难的问题。
1、系统功能
智能停车管理系统针对传统停车场的缺陷,结合国内外智能停车系统的研究现状,采用O2O模式,为系统添加了以下几方面功能。
1.1空余车位在线查看功能
在O2O(Online to Offline)模式下,用户可以通过PC网页或者手机等终端远程查看停车场的空余车位信息,车位上有车泊入或离开时,车位状态变化都会及时显示在用户终端上。如果用户想要在某个停车场泊车,可提前通过手机等移动终端查看信息并预定车位,进行有计划的安排,消除寻找车位的盲目性。
1.2车位预约功能
通过移动终端查看空闲车位,用户可以对其进行标记和预约,对于被用户标记过的车位系统会限制其他车辆泊入,待用户到达自己预约的车位时,可以通过移动终端操作,解除限制,泊车入位。
1.3停车引导功能
用户可以通过移动终端查看停车场布局图和停车情况,并根据引导找出事先预约或者空闲的车位。当停车场规模较大时,清晰的停车分布图可以引导用户快速泊车。
1.4停车场信息共享和停车位推荐功能
当用户通过移动终端预约车位时,系统控制硬件,采取强制措施保护车位,例如升起一排地桩或者档杆,阻止其他用户进入。但是这显然是对公共资源的一种浪费,更好的做法是,仅对被预约的车位进行标记,当用户预约的车位被其他用户占用时,系统可为用户推荐车位,提供可选的停车方案。停车位推荐的功能是依赖于信息共享的,各个停车系统之间能够信息共享,才能提供合理的车位推荐。
2、系统架构
该智能停车系统整体上划分为三大部分[4]:数据源层、数据服务层和发布层,如图1所示。
首先,系统中原始数据均来源于数据源层,通过红外、超声波等设备采集车位传感数据,采用ZigBee传感网络作为中间层进行通信,依照ZigBee协议进行组网和发送数据[5]。采集到的传感器数据可通过ZigBee传感网络传送至PC上位机进行数据的集中预处理。其次,数据服务层运行于服务器中,接收来自PC上位机的传感器数据,对其进行处理,终转换为车位状态信息存储于数据库内,并使用Webservice规范发布数据接口,提供数据共享功能。,在发布层,系统支持多种客户端,用户可方便地查看停车场车位信息,并使用车位预约、停车引导等功能。
3、系统设计与关键技术
系统整体实现思路是:按照O2O理念[6],线下使用ZigBee进行数据采集,配合Arduino控制器控制硬件,线上使用Node.js处理数据存储与数据分发,配合手机等移动端App,管理停车位资源。通过线上线下的有序配合,为用户提供空闲车位查询、车位标记预约、停车引导等功能。系统的整体结构如图2所示。
系统主要采用ZigBee数据传输、MQTT消息推送、Node.js数据服务、移动客户端等关键技术。
3.1 ZigBee无线传感网络
在智能停车系统中,下位机采用超声波传感器探测距离,从而判断车位上是否有车辆泊入。通过Arduino控制器操纵传感器采集数据经由ZigBee网络传递至PC上位机,数据在上位机上进行预处理(消除噪声)后,终递交至服务器。另一方面,除了接收和处理来自下位机的数据,上位机也可以接收服务器控制信息,并通过ZigBee网络发送控制信息至Arduino控制器,终由Arduino来控制硬件动作,实现反向控制,因此,系统中不仅可以通过移动终端获取传感器数据实现在线查看车位的功能,也能通过手机操作控制系统硬件,实现预约车位的功能。超声波传感器与Arduino控制器、 ZigBee与上位机均采用串口通信协议交换数据。
3.2 MQTT消息推送
智能停车系统要求数据能自主双向流动,即上位机与服务器通信过程中,一方面当传感器数据由于车辆位泊入或者离开发生变化时,上位机能主动通知服务器,服务器接收新数据并存储。另一方面,用户发送反馈数据去操作车位时,服务器能主动通知上位机,上位机再将用户控制指令数据传递至ZigBee网络,进而通知Arduino控制器操作相关硬件。由于HTTP协议具有被动性,在此过程中,单纯地使用HTTP协议只能保证传感器数据被正确提交至服务器,但无法保证服务器数据变化时能主动通知服务器,除非使用客户端长轮询的方式,即在上位机不断地发送HTTP请求获取的服务器数据。但是这种方式非常耗费系统资源,对一个物联网系统代价比较大,因此选用拥有“消息订阅机制”特点的MQTT协议实现服务器到上位机的通信更加合理。
消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)采用轻量级发布和订阅消息传输机制,支持双向消息推送[7]。在MQTT协议中有订阅者、发布者和代理三类角色,前两种以MQTT客户端的形式来展现,后一种以MQTT代理服务器的形式展现。订阅者和发布者的通信由MQTT代理来协调,具体运行机制是:MQTT代理服务器维护各个MQTT客户端之间的关系,当某一客户端发布消息时,代理服务器会首先接收消息,查询订阅该类型消息的用户,并将消息转发给订阅者,订阅者便可主动收到消息推送。智能停车系统中采用MQTT协议进行服务器到上位机的反向通信,PC上位机订阅服务器发布的数据库更新的消息,一旦数据库更新事件发生,便发布消息主动通知上位机,上位机再做相应处理。通信模型如图3所示,上位机PC和服务器均运行着MQTT客户端,用于消息的订阅或发布,某个MQTT客户端一旦发布消息,MQTT代理服务器便会将其转发给相应的订阅者。
本系统在上位机上采用基于Python的开源工具Paho实现MQTT客户端,与运行于服务器中的MQTT代理服务器进行交互,完成服务器到上位机的消息推送;使用HTTP协议实现上位机到服务器的通信,当传感器数据的变化超过一定阈值时发送HTTP请求,将数据提交给服务器。总的来说,通过HTTP协议与MQTT协议,数据可以在服务器与上位机之间自主双向流动。
3.3 Node.js数据服务
服务端采用Node.js技术,可实现服务挂载、数据操作、数据分发等多种功能。
(1)服务挂载。在Node.js环境中可以同时挂载MQTT代理服务器和HTTP服务器,满足服务器自主推送消息到上位机的需求,也允许上位机发送HTTP请求来提交传感器数据。在Node.js环境中,可采用Mosca[8]搭建MQTT代理服务器,同时创建MQTT客户端,在数据库更新时发布消息,通知上位机执行执行相应动作。
(2)数据操作。MongoDB是一种NoSQL数据库,基于分布式文件存储,可以存储比较复杂的数据类型,适用于大数据查询服务。在智能停车系统中,服务器接收到传感器数据后按照一定规则将传感器数据映射为车位的占用状态信息,以JSON格式表示,存储于MongoDB。
(3)数据分发。Webservice为运行于不同系统或平台的应用提供了一套交互规范,RESTful Webservice因其轻量、高效、易用、易设计等特点,在移动互联网应用中使用广泛。使用Node.js平台的轻量级Web框架Express,可设计符合REST规范的API,方便快捷地进行数据分发和共享。手机等移动客户端调用REST API可以从数据库中获取车位信息,展示在移动设备上。
总之,在Node.js环境下,各项功能可以便捷地实现[9],其整体组织结构如图4所示。
3.4 移动客户端技术
使用Java、Swift、React Native[10]等技术可开发各个平台的App,通过调用服务器提供的REST API 获取车位状态,并使用第三方SDK集成一些实用的功能,例如,使用百度地图SDK为App集成地图和导航功能[1112];使用支付宝SDK可以为App集成在线支付功能,停车收费通过移动支付技术完成。因此,用户通过App可以快速查看停车场的布局图和停车位的当前占用信息,提前预约车位,进行高效的停车管理,缓解城市停车压力。
4、结论
本文通过对现有停车系统的分析,结合当前物联网和移动互联网先进技术,根据O2O模式提出了一种智能停车系统的整体架构,并重点对其中的关键技术进行了研究。该系统可提供空余车位在线查看、车位在线预约、用户停车引导、附近停车场推荐和智能计费系统等功能,实现停车场自动化管理,缓解日益增长的汽车保有量带来的城市停车压力。
依据信息技术的发展趋势,未来智能停车场主要从以下几个方面进行深化。
(1)打破信息孤岛。依赖于互联网技术,停车场之间数据共享,构建统一物联平台,进行资源整合,使停车资源得到有效利用。
(2)实现高度自动化。通过移动支付自助缴费,使用传感器技术感知车辆泊入并自动计费,使用计算机视觉等技术实现快速识别。逐渐实现停车场无人化管理,节省人力资源。
(3)的停车诱导。通过传感器定位技术自动生成停车场布局图,为用户提供更的停车诱导、车位引导和反向寻车等功能。
(4)移动终端支持更多功能,如停车位自动导航、自动缴费、按照停车位反向寻车等功能。
随着物联网技术的发展,停车系统会变得越来越智能,“城市停车难”的问题也会逐步减缓。
参考文献
[1] 郭 腾. 智能停车管理系统的研究与实现[D]. 北京:北方工业大学,2015.
[2] 姚雄. 信息孤岛问题及PLM解决方案[D].南京:南京航空航天大学,2005.
[3] 党蟒. 一种露天停车场管理系统的设计与实现[D].郑州:郑州大学,2014.
[4] 李扬威,焦朋朋. 城市智能停车管理系统研究[J].交通信息安全,2014,32(4):160-164.
[5] 蔡文晶. 基于ZigBee技术的无线数据采集系统[D].杭州:杭州电子科技大学,2011.
[6] 卢益清, 李忱.O2O商业模式及发展前景研究[J].企业经济,2013(11):98-100.
[7] COLLINA M, CORAZZA G E, VACELLICORALLI A. Introducing the QEST broker: scaling the IoT by bridging MQTT and REST[C].2012 IEEE 23rd International Symposium on Personal Indoor and Mobile Radio Communications (PIMRC), 2012:36-41.
[8] Mcollina. MQTT broker as a module[EB/OL].(2016-05-08)[2016-06-26]https://github.com/mcollina/mosca.
[9] TILKOV Stefan. Node.js: using JavaScript to build high performance network programs[J]. IEEE Internet Computing,2010,14(6):1-15.
[10] A JavaScript library for building user interfaces[EB/OL].(2016-05-07)[2016-06-26]http://facebook.github.io/react/.
[11] 肖文汉,吴孝斌.基于百度地图API的停车场查询系统的设计[J].计算机技术与发展,2014,24(4):227-230.
[12] 任齐. 基于Android的LBS应用研究[D].上海:华东师范大学,2012.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。