梁栩才,王芊丁,覃纤纤,农春玲,杨子靖,李家海
(广西民族师范学院 数理与电子信息工程学院系,广西崇左,532200)
随着社会不断地发展,生活水平质量也随之提高,私家车也越来越多。传统的停车场管理系统只解决了出入口控制的问题,这导致停车位的利用率比较低,造成了人们停车难的问题。为了解决停车难这个问题,智慧停车引导系统出现了。本文主要采用了物联网、传感器和嵌入式等技术设计一款智慧车场引导系统,用户可通过微信小程序提前查找停车位,在用户选好停车位后可直接进行导航前往停车位停车。该智慧车场停车引导系统可以减少停车场的人工管理成本;实时更新停车位信息,使停车位能够更高效地被使用起来;让用户在微信小程序上提前选车位,让用户更有方向性,大大节省了用户的选车位时间。该系统适用于各大型商业区、居民区、办公区等停车场,停车更有目的性,有效改善停车服务困难的难题。
LoRa是作为一种扩频技术的远距离无线传输技术,因其传输距离远、功耗低、零资费的优点,近几年在物联网行业领域得到了广泛应用[5]。
LORA的智能停车引导系统主要由下位机、上位机、服务端和协调器四大部分构成。上位机为手机小程序终端,小程序终可根据收到的车位数据和决策程序实施相应措施;协调器根据既定网络通信协议,负责与各LORA节点模块协调自组建局部无线传感网络,管理和存储各网络节点上传的相关信息,并提供各节点之间的路由信息,把数据传给服务器,同时服务器处理数据并将产生的控制信息下传到下位机,实现对受控现场设备的控制;下位机为车位空闲识别系统组成,包括测距模块,测距模块固定在车位附近,采集车位上的车辆数据。智能停车引导系统功能框图如图1所示。
图1 智能停车引导系统功能框图
该页面中有登录,注册的选项。如用户已注册过,则直接输入账号(电话号码或者邮箱)进行登录。若未注册,则需要进行注册,在注册时,如果用户的操作不当或者注册成功,都会有弹窗提醒用户。
该页面中显示着用户的基本信息,如有用户想修改用户名,可直接选择编辑进行修改。用户如果有退出登录的需要,在该页面即可实现。
在选择停车位之前,用户要先添加车牌号。该页面也为新能源汽车用户设计了新能源车牌号的添加。用户可根据自己的需求添加多个车牌号。在用户停车后,在相对应的车牌号会显示已停的状态。如用户想离开停车位,可直接点击离开车位。停车位的状态信息会实时更新。
用户选择自己想要去的停车场,随后就是选择停车位。在选择停车位的页面,有提醒用户选择即停车牌号的文字,如用户添加有多个车牌号,用户可根据提示选择车牌号。用户预约好停车位后,可直接进行导航前往停车场停车。
服务器将使用JAVA语言编写,编程工具为IntelliJ IDEA ,使用MyBatis、Spring等主流框架搭建,将具备数据持久化、数据分析、一定的并发性等能力,可以实现实时的数据处理返回功能。数据导通图如图2所示。
图2 数据导通图
服务器基于阿里云服务搭建,具有公网IP。项目主要采用Springboot、Lobok、Mybatis、Swagger等技术框架,接口采用restful风格,保证安全的前提下优化连接。在接口中利用相对应的方法实现相对应的功能。如在usercontroller中,POST方法中的insertUsers是用于添加用户;GET方法中的selectFreeSpace用于查询某区域所有的空车位等。user接口中方法展示页面如图3所示。
图3 user接口中方法展示页面
数据库方面是基于腾讯云TDSQL的MySQL数据库,充分发挥关系型数据库的大容量存储优势。一共设计5张表,基本遵守数据库设计三范式,中间表用来连接用户表、区域表和车位表,日志表作为业务以外的表用来存储用户操作数据,作为只读记录供用户查看。用户和车牌号是n对n的关系,即一个账号可以拥有多辆车,一辆车也可以有多个用户使用,这是充分考虑到亲人朋友之间可能会借对方车子开的现实状况决定的;区域表与车位表是1对n的关系,一个区域里可以有多个车位,但是一个车位仅属于一个区域。数据库表如图4所示。
图4 数据库表
测距系统主要由Arduino、距离感应模块、电源模块、LoRa模块组成,距离感应器采集到数据通过串口传输经过Arduino到LoRa模块,LoRa模块再将数据通过无线传输到LoRa网关,实现联网。测距系统设计框图如图5所示。
图5 测距系统设计框图
测距系统的电路图设计如图6所示。
图6 测距系统电路图设计
对初代小程序进行第一轮测试,发现了以下几点错误:(1)车牌信息显示不正确,未考虑到用户与车牌号之间的关系是一对多的关系,而不是一对一的关系,导致用户无论绑定了多少个车牌号信息都只能显示最初绑定的车牌号信息。(2)停车场的车位信息显示有误,未能正确显示车位是否为空的问题。对以上问题做出相应的整改,查找相应的资料和信息发现可以通过小程序中的条件渲染和列表渲染的知识点来解决以上功能不足的问题。在完善以上功能的同时在个人中心页面添加了修改用户信息的功能,以及考虑到程序中只能停车而不能离开车位所以在车牌号信息页面添加了离开车位的功能,只需点击离开车位按钮刚点击停车的车位就会为空。进一步考虑到用户可能出行的车辆不同、出行车牌号的不同,在选位停车页面添加了车牌号选择器的功能,原先的程序则是自动获取用户初次绑定的车牌号进行选位停车服务。
对进一步完善的程序进行测试,发现了以下几点问题:(1)注册页面的初次输入的密码与检验密码不一致时也能成功注册,经检查发现程序中并无初次输入密码与检验密码判断是否一致的条件判断逻辑。(2)在车位显示页面中的剩余车位显示有误并且其中的车牌号选择器显示了车牌号信息却不能选择车位,虽然页面上显示了车牌号实际上后台并没有拿到车牌号的信息,经调试发现其问题出在了车牌号选择器上。车牌号选择器绑定了点击事件,需点击车牌号选择器才能触发点击事件从而拿到车牌号的车牌信息。
对程序进行第三轮测试,寻找新用户体验停车小程序,发现以下不足的地方:(1)选位停车页面中的车牌号选择器不明显,导致新用户不知道页面中有车牌号选择的功能,对其功能进行样式上的调整,使其功能部分更加亮眼明显。(2)用户发现同一车牌号竟然能进行多次选位停车服务,相当于一辆车占了好几个停车位,理论上来说应该是一车一位。经调试发现是因为停车选位页面中的部分数据没有实时更新的原因。在用户选择即停的车位停车成功后弹出提示窗口,而用户点击取消键则重新加载部分数据并获取新的数据从而时间数据的实时更新,点击确认则跳转到车场导航功能。目前已改善的最终版本还需进一步页面美化。部分微信小程序页面如图7所示。
图7 停车位预约页面
本文设计的基于LoRa的智慧车场停车引导系统所采用的技术有微信小程序开发技术、传感器技术和嵌入式技术等。该智慧车场停车引导系统由四个大模块设计而成,分别是微信小程序模块、服务器模块、数据库模块和硬件模块。智慧车场停车引导系统的设计主要用于减少车主寻找车位的时间,还有车位状态识别的功能。用户可通过小程序查找车位,小程序根据收到的车位数据和决策程序实施相应措施,实现停车智慧化、管理可视化和运营高效化,能够为车主提供车位查询、车位导航等价值体验,从而解决了从寻找车位到安稳停车的问题,同时也实现了停车场的智能化,大大减轻了管理负担。