1. 引言
随着汽车保有量的增加,现有停车位数量不足、私有车位的利用效率不高、车位管理水平不高、空闲车位共享难,致使停车难问题已经成为影响城市交通发展的重要瓶颈 [1] [2] 。不少研究者给出一些缓解停车难问题的解决方案,主要有两种 [1] :一是增设公共停车位,设计更多占地面积小、停车容量大的立体公共停车场;二是充分利用现有停车资源,共享部分城市私有车位。借鉴共享理念,在便捷、效益和安全的驱动下,充分利用现有城市私有停车位资源,采用智能技术设计车位锁系统,整合利用城市私家车位,一定程度上为缓解停车难问题提供一种新的思路 [2] [3] 。
在智能车位锁系统设计方案中,李云强等 [1] 设计基于RFID的共享自动感应车位锁系统完成了停车位的无人化管理。谢静等 [4] 以STM32芯片作为微控制器,利用无线通信技术实现车位的信息化管理。陈灏铖等 [5] 应用ZigBee模块自组网络实现对车位锁开启和关闭的智能控制。覃志华等 [6] 采用基于NB-IoT的物联网智能平板车位锁系统,实现了车位的无人值守与数字化、智能化管理。
新型车位锁的推广与应用已经成为大众关注的热点话题。为充分利用现有城市私有停车位资源,实现私人车位在空闲时间对外出租,缓解“城市停车难”的问题,设计基于云服务器的智能车位锁。通过以STM32F103RCT6单片机为核心的智能车位锁、手机App和云服务器实现系统互连互通,运用云服务器上位机实现车位锁共享管理、车位在线预订、车位定位导航、自动计费及快捷支付等功能。基于云服务器的智能车位锁,车位信息采集与共享实时、功耗低、使用方便,可以实现停车位管理的数字化、网络化和智能化。在保障安全前提下,盘活存量车位,实现错时停车,有效提高资源使用效率,为市民开车出行带来了极大的便利。
2. 智能车位锁的总体设计方案
市面中使用的车位锁类型较多,如图1所示。车位锁主要有机械式车位锁,有电子遥控车位锁,有结合RFID、Zigbee、WIFI、蓝牙等技术的智能车位锁。机械式车位锁操作不方便将逐步淘汰;电子遥控车位锁采用蓄电池供电,充电十分不便;结合RFID技术的车位锁能实现全自动感应升降,但是车锁稳定性相对较差且不易安装;蓝牙控制的智能车位锁控制距离短,需要靠近停车锁才能控制,影响了推广使用。
(a)(b)(c)(d)
Figure 1. Common parking lock
图1. 常见的车位锁
通常,智能车位锁系统由硬件感知层、通讯控制层、数据处理层和应用表现层构成。借鉴共享理念,以车位共享和操作自动化为需求目标,以实现现有车位的最大使用价值。文中所设计的智能车位锁系统分为3部分:能自动感应并定位的智能车位锁(下位机)、手机客户端APP (手机微信小程序)和云服务器端(上位机)停车信息管理系统,如图2所示 [1] 。
下位机即智能车位锁,以STM32F103RCT6单片机为核心,包括4G通信模块、电机驱动模块、车辆检测模块、锁臂位置检测模块、电源模块、语音报警模块等,完成当前车位定位信息的传送和驱动电机实现车位锁开关动作。客户端手机APP,利用手机微信小程序设置车位共享时间段、查询车位、预定车位,实现目的地停车位选择、运程操控开锁以及停车费用支付。云服务器端对智能停车位信息进行管理,实现停车位和用户间的信息交互,可接收用户的停车请求,实现余位查询、车位预约、车位诱导和在线支付等操作,向用户发送可共享的车位锁信号,向用户手机发送停车费金额,接收车位锁的计费金额。当车主离开时,发送车位锁擦除指令,清除本次停车的车主信息等功能。
3. 硬件部分设计
智能车位锁系统的硬件部分以STM32F103RCT6单片机为核心控制器,由4G通信模块、电机驱动模块、车辆检测模块、锁臂位置检测模块、电源模块、语音报警模块等组成 [7] ,这些模块都集成在车位锁的内部,系统硬件结构如图3所示。
Figure 3. Hardware block diagram of intelligent parking lock
图3. 智能车位锁系统硬件框图
3.1. 智能车位锁主控模块
主控模块为该智能车位锁系统硬件部分的重要组成部分,主要对车位锁进行控制和响应等。主控模块以STM32F103RCT6单片机为主控芯片,外围电路包括晶振电路、供电电路、JTAG调试接口电路以及复位电路,如图4所示。STM32F103RCT6是一种嵌入式–微控制器的集成电路,芯体是32位,速度是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是48K,具有高性能、低功耗、丰富的外设接口和易于开发和集成等特点,广泛应用于工业控制、智能家居和智能仪表等领域。由晶振电路、复位电路、供电电路构成MCU最小系统电路,JTAG调试接口电路为软件在线调试及程序的下载提供便利。
Figure 4. Peripheral circuit of the main control module
图4. 主控模块外围电路
3.2. 电机驱动模块
电机驱动模块采用L298N。L298N是ST公司生产的双路H桥驱动芯片,可对电机进行直接控制,通过主控芯片的I/O输入对其控制电平进行设定,为电机进行正转反转驱动,操作简单、稳定性好,具有过热自断和反馈检测功能 [3] 。
3.3. 4G通信模块
塔石4G通信模块E21V可实现串口与互联网通过GPRS、4G网络相互传输数据,具有定位功能,实现车位锁与云服务器间的通信。通过配置软件完成对4G模块波特率、数据宽度、停止位、校验位、工作模式、目标服务器IP地址及其端口号的配置,实现单片机串口向服务器发送电机状态查询指令,以及云服务器通过4G模块获取车位锁所处的地理位置信息、编号信息等操作。4G通信模块外围电路如图5所示。
Figure 5. Peripheral circuit of 4G communication module
图5. 4G通信模块外围电路
3.4. 锁臂位置检测模块
锁臂位置检测模块使用光电传感器来控制车位锁锁臂的升降,通过两个光电开关和两个光电发射管来实现。当智能车位锁锁臂降落后,两个光电开关都收不到光电发射管发出的信号;当车位锁臂上升或下降时,其中一个光电管能接收到光电发射管发出的信号,而另一个接收不到;而当车位锁锁臂升起时,前一个光电开关能接收到信号,后一个不能接收到信号,通过开关管的状态可以判断出车位锁锁臂升降的位置。光电开关逻辑功能如表1所示。
Table 1. The function table of photoelectric switch logic
表1. 光电开关逻辑功能表
3.5. 车辆检测模块
选用OMRON的E3Z-D62光电传感器,利用红外光通过光电发射器发射,被物体反射后由光电接收器接收回来,根据接收到的光线信号来判断物体是否存在或位置信息,从而实现物体的检测。E3Z-D62光电传感器安装在车位锁上,当车位锁上方有车辆时,光电传感器能输出高电平,从而判断有无车辆。该模块电路如图6所示。
Figure 6. Circuit diagram of E3Z-D62 photoelectric sensor
图6. E3Z-D62光电传感器电路图
3.6. 语音报警模块
当车位锁设备收到意外撞击或电量不足等故障时,触发语音报警模块进行语音报警功能,通过语音播报的方式通知用户。车位锁采用MP3-TF-16P语音模块,该模块支持串口控制,支持3.3V TTL电平,适用于强电磁干扰场合。主控制器通过串口与语音模块相连,实现对语音模块的控制。语音模块管脚DAC_R和DAC_L是其音频输出左右声道,连接输出喇叭。
3.7. 电源管理模块
电源管理模块包含车位锁控制系统供电方案的选择、控制系统内部电压电源的设计和电池电量的检测三部分,为单片机控制系统与电机驱动模块供电。考虑到车位锁安装范围广、分布散且多应用于室外,选择使用锂电池供电。通过对智能车位锁各模块的分析,STM32控制器的工作电压为3.3 V,直流有刷电机和4G模块的工作电压为12 V,光电传感器E3Z-D62的工作电压为12 V。
4. 软件设计部分
智能车锁系统软件的主要功能包括车位锁开关控制、车辆状态监控和与云服务器的通信。系统软件设计主要包括智能车位锁控制系统设计、云服务器及数据库设计、手机客户端APP设计组成。
4.1. 智能车位锁控制系统设计
智能车位锁控制系统主要控制车位锁的自检、与云服务器通信、监测车位状态信息、车位锁升降等功能,保证数据可靠性、时效性。系统开机后,车位锁先进行自检,包括电池电量是否充足、车位的占用状况等内容的自检。若自检正常且车位处于空闲状态,则升起车位锁,进入休眠状态,等待接收服务器发指令; 当接收到服务器发来的开锁指令后,降下车位锁以便停车并检测车位状态。当检测到车位空时结束计时并发送离开时间到服务器,同时升起车位锁,进入下一个循环,等待新的停车任务。具体的工作流程如图7所示 [4] 。
Figure 7. Workflow of intelligent parking lock
图7. 智能车位锁工作流程图
4.2. 云服务器与数据库设计
云服务器帮助用户获取信息资源,实现平台各个页面数据信息的增删改查,包括车位锁采集数据,车位的相关信息(如车位锁编号、车位主人信息、车位对外共享时间、车位使用者信息,车位的使用情况等),处理移动端与后台管理界面数据的请求与传输,连接第三方支付服务器,管理车位对应的收费信息,用户可通过手机支付进行支付。由于中国移动OneNET平台提供免费的物联网云服务,在设计时选择OneNET云服务器来保存车位锁信息,确保系统高效、稳定运行。系统选用的数据库是关系型数据库MySQL,通过编程可对不同表进行连接,能够直观地梳理数据之间逻辑,同时能够移植到云服务器上。
在JDK-8的java开发环境下搭建智能车位管理平台。基于SpringBoot + Vue技术的Maven项目,服务器端开启Apache-tomcat的Web服务器,通过Servlet、Session,Cookie、Filter技术的基本使用,通过shiro框架、payCloud、MySQL数据库,实现对数据进行存储、分析、发送,在线支付等功能。硬件数据服务端应用层基于Tomcat等web服务器,服务器接收到硬件端发送的请求路径以及携带数据,自动解析路径定位到对应controller层,由业务层进行相对于数据处理并存储到数据库。通过移动端发送http请求给服务器端,服务器端开启Apache-tomcat服务器,利用servlet、http、request技术,服务器端接收数据。服务器端接收到移动端的HTTP请求后,主要是以JSON格式或者表单的形式返回数据给移动端,移动端采用OkHttp框架来解析数据,服务器周期性地自动读取数据库中的数据 [4] 。
在用户手机APP上将用户的请求发送给服务器,服务器对用户端APP的请求进行处理,从数据库服务器得到相应的结果并返回给手机APP [8] 。采用OneNET云服务器,在虚拟机上安装系统所需的数据库。MySQL数据库中主要存储的信息表有:用户信息表、小区信息表、停车场信息表、车位信息表等。用户信息表主要用来存储用户的注册信息,如用户名、密码、是否业主、绑定的支付方式等;小区信息表主要存储小区名称、小区所在区域、小区地址、小区地图、小区停车价格等;停车场信息表主要存储车场位置、车场名称、车场内部图等; 车位信息表主要存储车位所在小区、车位所在停车场、车位位置、车位业主电话、车位是否出租、车位出租时段、车位是否预订等信息。
4.3. 客户端APP设计
系统的手机客户端APP的功能模块包含用户信息模块、车位信息模块、车位使用模块 [9] ,如图8所示。在手机客户端APP上,用户可完成定位、搜索、信息发布、授权分享、预约车位、导航、结算等操作。APP系统为用户提供空闲车位信息、导航预定等功能,用户通过一台智能手机即可完成自主停车,为人们出行提供更多便利。车位主人或停车场也可在服务平台发布空闲车位信息,把自己的车位授权分享出去,可增加收入,提高车位利用率。APP设计包括界面模块、用户注册登录模块、车位查找模块、车主发布车位信息模块、用户开关锁模块等。
Figure 8. Function module of mobile app
图8. 手机客户端APP功能模块
手机客户端APP软件基于 Android 操作系统进行开发,开发环境是Android Studio。移动端通过http请求以JSON的格式发送数据给服务器端,采用OkHttp框架来解析数据,服务器主要是以JSON格式或者表单形式传输数据给移动端。私家车业主可以通过APP进行车位认证后发布车位,而用户可以通过手机客户端APP实时查看目的地周边可租用的车位、对空闲车位进行预订。当用户到达预订车位后,点击App 中的开锁按钮,就可通过服务器发送指令打开车位锁,进行停车服务,此时系统开始计时;用户结束停车离开车位后,点击APP的关闭车位锁按钮,服务器就结束计时,根据时长收费 [4] 。
5. 测试结果分析
在完成对车位锁内部硬件的连接前,需对4G通信模块进行相关数据配置,包括波特率(115200)、数据宽度(8)、校验位(0)、停止位(1)、目标服务器的IP地址(139.159.145.139)、端口号(777)、工作模式(TCP/UDP透传)以及注册包(01)等。
整体系统搭建完成后,焊接电路,在确认各模块都完好无损的情况下,用杜邦线连接电路与单片机各个管角,利用万用表测试出单片机各个引脚的输出输入。为了测试软件、硬件及服务器之间的通信是否正常,需要进行车位锁系统相关功能测试。
当车位锁的主控单片机以及4G模块完成上电后,利用嘀嗒定时器定时每1秒向服务器发送“check status”指令,用于查询数据库中当前的车位锁状态值。
将4G模块的注册包功能作为车位锁的编号进行上传,当服务器收到车位锁的编号信息后,向连接该车位锁的4G模块发送远程获取GPS信息指令(@DTU:0000:GPSINFO),4G模块收到该指令后将车位锁的地理位置信息以经纬度方式返回至后台服务器,保存至数据库中,以实现对车位锁的联网功能测试,测试效果如图9所示。
Figure 9. Remote acquisition of parking lock GPS information
图9. 远程获取车位锁GPS信息
在对车位锁的开关控制测试中,当服务器收到从车位锁主控单片机发来的车位锁状态查询命令后,对数据库中的车位锁状态值进行查看,若此时车位锁状态值为−1,则不做任何操作,电机保持静默;若该值为1,则向车位锁返回d1控制指令,主控单片机成果接收到指令后,将控制电机进行反向转动,锁臂下降,车位锁被打开,同时,主控单片机将向服务器返回“d1 Direction:Reverse”;若该值为0,则向车位锁返回d0控制指令,控制电机进行正向转动,锁臂上升,车位锁被关闭,同时,主控单片机将向服务器返回“d1 Direction:Positive”;测试效果如图10所示。
Figure 10. The control effect of parking lock switch
图10. 车位锁开关控制效果图
车位锁系统功能测试主要包括车位锁状态测试、车位锁的联网功能测试、车位锁的开关控制测试、移动端与OneNET云平台接口测试、APP与本地服务器接口测试等对部分功能及整体做功能测试,完成硬件与软件间的通信,实现对车位锁的远程控制。为了测试智能车位锁控制系统的整体功能,分别选择3个距离车位锁位置为10 m 、100 m、200 m的地方作为远程控制点,分别测试50次,测试成功次数分别为50,49,37次。随着测试距离的增加,测试成功次数有所降低,考虑到云服务器端的稳定程度以及4G通信模块接收信号等因素影响,该结果属于正常范围之内。实验统计数据可以得出用户在离车锁100 m 范围内使用App来控制车位锁,车位锁均能正常使用。
6. 结论
针对城市停车资源紧张、部分车位利用率低的问题,在停车位供给缺口持续扩大的背景下,文中从共享资源角度出发,充分利用现有城市私有车位资源,将物、网、人充分结合组成网络。以STM32单片机为核心控制器,结合4G通信模块、云服务器等设计智能车位锁,整合车位供需双方、停车位、APP平台等资源,在私有车位拥有者设置的开放时间段内社会车辆可以付费使用,实现闲余资源共享与优化,提高停车位的利用率。在一定程度缓解了当今严峻的城市停车难的问题,有效地减轻市政交通管理压力,同时为私有车位拥有者增加额外收益,实现双赢,符合绿色经济与可持续发展的理念。
基金项目
本文得到韶关市科技计划项目“智能共享车位系统的研究与设计(项目编号:210720154531311)”的资助。
NOTES
*通讯作者。