基于微信公众平台的停车位管理系统的设计*
2018-06-15
(1.四川文理学院 智能制造学院,达州 635000;2.四川文理学院 达州智能制造产业技术研究院)
引 言
随着城市经济的迅速发展,人民的生活水平得到了不断提高,私家车也越来越多,对停车位的需求也越来越大。但是很多城市的中心城区修建较早,规划不是很完善,加之停车场的扩建较为缓慢,导致中心城区停车难的问题日益严重。
为解决停车难的问题,有很多学者对此做了大量的研究工作,从利用RFID[1-3]、CDMA[4]、ZigBee[5-6]并结合计算机软件技术来提高停车位的管理水平,到利用大数据[7]、云平台[8]技术来提高停车位管理的智能化程度;从预订停车位[9]方便车主停车,到共享停车位[10-12]都有效提高了停车位的利用率。
与此同时,管理系统的个性化和便捷性也得到了改善,从基于云平台的停车位管理系统[8],到基于手机的APP停车位管理系统[13],这些都极大地提高了用户的体验度。但是,这些系统使用时需要在手机上安装一个APP软件,这不仅要消耗有限的手机资源,同时,每次操作都需要打开APP客户端,操作起来多有不便。为此,我们设计了一款基于微信平台的停车位管理系统,因为微信是目前比较流行的社交软件,用户在聊天的同时,就可以进行停车位共享信息的发布、预订及缴费等操作,从而在一定程度上方便了用户的操作,也提高了软件的个性化水平。
下面从系统方案的总体方案设计、关键硬件模块设计、软件系统设计三个方面来阐述基于微信平台的停车位管理系统的设计。
1 总体方案设计
本文设计的基于微信平台的停车位管理系统主要包括:车位探测器、嵌入式网关、服务器系统、微信公众平台四个部分。车位探测器主要负责探测车位是否空闲,并根据车位空闲与否自动控制车位锁的开关状态,然后将信息经由ZigBee通信模块转发给嵌入式网关;嵌入式网关主要负责接收ZigBee通信模块发送来的信息,并将其转发给服务器;服务器系统主要负责收费管理、停车位信息管理、出入库控制、监控管理和安全运行管理;微信公众平台主要负责微信用户注册、车位出租信息发布、车位预订及缴费等。系统整体方案图如图1所示。下面我们从关键硬件模块和软件系统两个方面对基于微信公众平台的停车位管理系统的设计过程加以阐述。
图1 系统总体方案图
2 关键硬件模块设计
综合考虑停车位管理系统的建设成本、用户使用的便捷性等方面的因素后,设计的停车位管理系统中关键硬件模块由车位探测器、嵌入式网关两部分组成。
2.1 车位探测器
车位探测器主要由无线通信模块、超声波数据采集模块和电源模块组成。无线通信模块主要负责数据的无线传输;超声波数据采集模块主要负责采集车位是否空闲的信息;电源模块主要负责给设备供电。下面主要介绍无线通信模块和超声波数据采集模块。
2.1.1 无线通信模块
现有可用于无线通信的模块有很多种,如WiFi、蓝牙、GSM、ZigBee等无线通信技术。由于ZigBee模块具有自组织网络的特性,网络中一个模块出问题后,其他模块可以自动更新网络拓扑结构,继续保持网络的连通性,这样既增强了网络的稳定性,成本又不高,所以选择ZigBee模块作为无线通信模块。
考虑到停车位上的每一个ZigBee模块除了要进行采集信息之外,还要兼作路由器的功能进行数据转发,且模块与模块之间的通信距离不能太短,所以我们选择CC2520这款射频收发器,该芯片可以在2.4 GHz频段、 -40~125 ℃下正常工作,并且提供了广泛的硬件处理技术,如可以支持帧处理、数据缓冲、突发传输、数据加密、数据验证、信道评估、链路质量指示和帧定时等功能,这可以有效降低主控制器的负荷。该通信模块的电路图如图2所示。
图2 无线通信模块电路图
2.1.2 超声波数据采集模块
车位探测器的一个主要功能是探测车位是否空闲,而功能的实现主要依靠数据采集模块。目前可以采集车位信息的模块较多,如红外线探测模块、超声波测距模块等。考虑到超声波传感器在短距离测距时,受环境影响比较小,选择了HC-SR05超声波测距模块作为停车位的数据采集模块。
每一个超声波模块对应着一个停车位。该模块由CC2530控制,安装在停车位底部中间位置,当测距大于1 m的时候,标记为空闲车位,当测距小于1 m的时候,标记车位被占用,这样能够记录停车场内车位实时变化情况。
HY-SRF05超声波数据采集模块的电路图如图3所示。
图3 超声波数据采集模块电路图
CC2530控制超声波模块采集数据的关键代码代码如下:
#ifdef WXL_COORD
if(RfRx.RXDATA.DataBuf[0] ==Y&& RfRx.RXDATA.DataBuf[1] ==D&& RfRx.RXDATA.DataBuf[2] ==W){
//接收到预定车位的信号
SendData(0xffff, RfTx.TxBuf, 32);
}
if(RfRx.RXDATA.DataBuf[0] ==M&& RfRx.RXDATA.DataBuf[1] ==D&& RfRx.RXDATA.DataBuf[2] ==W){
//未接收到预定车位的信号
SendData(0xffff, RfTx.TxBuf, 32);
}
#endif
2.2 嵌入式网关
嵌入式网关的主要功能是处理不同网络之间信息传输的问题。由于车位探测器到嵌入式网关是ZigBee通信,而嵌入式网关到服务器采用的是TCP/IP通信,所以嵌入式网关不仅要具备较强的信息处理能力,而且还要能实现将数据从ZigBee协议到TCP/IP协议的数据格式转换。所以,处理器芯片的好坏对嵌入式网关的性能起着决定性的作用。
为此,对多款芯片从成本、处理能力、通信能力和扩展能力等方面进行比较分析,最后选择STM32F103芯片作为嵌入式网关的主处理器。由于该芯片的数据处理能力较强,通信扩展接口丰富,且成本也比较适中。
根据嵌入式网关工作的需求,将STM32F102的USART1接口作为本体的数据传输接口,与CC2530模块的数据传输接口相连接;将USART2连接到WiFi模块的数据传输接口。这样既可以实现通信协议的转换,又降低了编程的复杂度。
嵌入式网关通过数据处理模块控制WiFi与ZigBee的通信,并处理在WiFi和ZigBee之间传输的数字信号,部分关键代码如下:
if (USART_RX_STA2 & 0x8000){//串口2接收到的信号
......
if (USART_RX_BUF2[0] == 21){
if (USART_RX_BUF2[4] == 10){ //查询
//查询,车位为预定情况
for (t = 0; t< 42; t++){
USART_SendData(USART2, full[t]);
//向串口2 发送没车位
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) != SET);
}
}
else if (USART_RX_BUF[0] ==M){
//查询,车位为空闲时
for (t = 0; t < 42; t++){
USART_SendData(USART2, empty[t]);
//向串口2 发送有车位
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) != SET);
}
}
}
elseif (USART_RX_BUF2[4] == 11){
//串口2(wifi)接收到的信号是请求预定
......
for (t = 0; t < 42; t++){
USART_SendData(USART2, mode[t]);
//返回请求预定命令——请求成功
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) != SET);
}
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);
for (t = 0; t < 32; t++){
USART_SendData(USART1, send[t]);
//向串口1发送数据
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);
//等待发送结束
}
}
}
3 软件系统设计
基于微信公众平台的停车位管理系统主要包括微信公众平台前端系统和后台服务器管理系统两个部分。
3.1 微信公众平台前端系统设计
微信公众平台前端系统主要通过公众号消息会话和公众号内网页来为用户提供注册、车位租赁、车位预订、缴费等功能的服务。本文根据微信公众号处理停车位租赁业务的实际需求,将系统的角色分为三种:系统管理员、车位出租方、车位承租方。根据角色不同,系统的账号分为管理员账号和普通账号,系统管理员是管理员账号,车位出租方和车位承租方是普通账号。每个微信帐号只能注册一个普通账号,每个普通账号在系统中既可以是车位出租方的角色,也可以是车位承租方的角色,账号的角色会根据用户的操作自动转换,但每种角色只能在这种角色的权限范围内使用停车位系统提供的功能。用户使用系统租赁车位的工作流程如图4所示。
图4 工作流程
综合考虑目前流行的前端框架技术的优缺点,结合系统的实际需求,本系统选择React+Bootstrap的框架设计技术。这不仅因为 React 的设计思想极其独特、性能出众、代码逻辑却非常简单,而且Bootstrap的css代码模块化、有较好层次感,便于理解与把握。另外,考虑到微信的js、css与许多前端库的兼容性问题,所以在微信语音、图片、拍照等部分功能使用了微信的JS SDK,因为它不仅可以兼容非微信浏览器,也可以兼容低版本微信系统。
3.2 后台服务器管理系统软件设计
后台服务器管理系统软件作为停车位管理系统的核心,主要负责收费管理、停车管理、数据库管理和后台管理,因此,整个系统包括支付服务平台、停车位管理软件、数据库和微信通信小程序4个部分,其结构如图5所示。
图5 服务器软件结构
① 支付服务平台负责系统收费业务的管理,连接第三方支付服务器,生成订单并向用户显示二维码;用户可以扫描二维码完成订单支付。
② 数据库负责保存支付服务和停车服务所产生的数据信息。
③ 微信通信小程序负责微信服务器与停车位管理服务器之间的数据传输。
④ 停车位管理软件连接智能车位锁、支付服务网站和数据库,并负责处理停车服务的相关业务,如负责收费管理、车位管理、出入库控制、监控管理和安全运行管理等业务。系统工作流程如图6所示。
4 系统测试
连接已设计完成的硬件与软件模块,搭建完整的系统平台,形成系统雏形,以便于下一步系统的测试。系统测试流程如下:
① 硬件模块测试。首先测试各硬件模块加电后的运行情况,然后将各硬件模块按照系统的拓扑结构进行连接测试。
② 服务器系统测试。对停车位管理系统软件进行测试,包括管理软件对数据库的通信测试、管理软件与网关和智能车位锁的连通与控制测试、支付平台的缴费测试等。
③ 微信公众账号的功能测试。主要包括微信公众账号消息会话功能测试、公众号内网页访问功能测试、微信公众号与服务器通信测试、微信支付功能测试、微信发布、预定车位信息功能测试等。部分测试界面展示如图7所示。
图6 停车场管理系统工作流程图
图7(a)是用户关注微信公众号后的主界面,车位出租方可以点击出租车位按钮,进行车位出租的相关设置并发布出租信息,操作界面如图7(b)和图7(c)所示;车位承租方可以点击租用车位按钮,查询空闲车位或预订停车位,操作界面如图7(d)所示。
图7 功能展示图
经过以上流程的测试,系统中存在的问题基本得到解决,预期的各项功能基本得以实现;软件的便捷性得以提高,用户可以边聊天边发布车位租赁信息;个性化水平也得到极大改善,用户可以根据自己的需要来设置租赁时间。
结 语
本文围绕城市中心城区停车难的问题,通过对当前私有停车位利用率不高的现状及现有方案的分析,结合现有的技术条件,提出一种基于微信公众平台的停车位管理系统,以此来提高停车位的管理水平,方便私有停车位的租赁,极大地提高了有限停车位资源的利用效率。
[1] 王子铭.RFID智能停车场管理系统的研究与设计[D].北京:北京邮电大学,2010.
[2] 郭稳涛.基于RFID的智能停车场管理系统的研究与设计[D].长沙:湖南大学,2010.
[3] 郭稳涛,何怡刚.基于RFID的智能停车场管理系统的研究与设计[J].自动化技术与应用,2010,29(6):60-64.
[4] 刘雨洲.基于CDMA的智能停车场控制系统研究[D].郑州:郑州大学,2011.
[5] 彭吉崇.基于ZigBee技术停车场车位的组网与通信设计[D].哈尔滨:哈尔滨理工大学,2012.
[6] 毛泉涌.基于无线传感器网络的停车位控制器研究与设计[D].杭州:浙江工业大学,2012.
[7] 骆超.大数据时代下的停车场系统发展[J].中国公共安全,2014(24):88-90.
[8] 陈新海,刘丽.基于云平台的停车管理系统设计[J].科技创新与应用,2016(1):67-68.
[9] 古辉,顾杰杰.一种预约式智能停车场及其LEACH路由算法改进[J].浙江工业大学学报,2016,44(2):134-139.
[10] 张真,王蒙蒙.基于共享车位的RFID智能停车管理系统的设计[J].信息通信,2017(10):70-72.
[11] 郑竞恒.基于停车共享的城市中心居住区停车行为特性及泊位调控优化方法[D].南京:东南大学,2017.
[12] 张瑞增.基于智能车位锁的共享停车位管理系统研究与设计[D].济南:山东大学,2017.
[13] 郭禹,邹常丰,丁柏群,等.基于手机APP的智能停车场系统研究[J].黑龙江科技信息,2017(14):40-41.