大学生毕业论文|《智能停车场管理系统微信小程序的设计与实现》
题 目: 智能停车场管理系统微信小程序的设计与实现
学 院: 计算机与数据科学学院
专 业: 物联网工程
姓 名: xxx
学 号: xxx
指导老师: xxx
完成时间: 2020.5.10
摘 要
现在人们的生活被停车问题越来越困扰,缴费慢的问题给车主带来了无尽的烦恼,为了解决这类问题,停车场生产厂家和车主两方面都头疼不已。虽然出现了可以对车牌进行智能识别的产品,停车缴费仍麻烦不断,手机端支付可以稍微缓解人工收费和找零过程都效率低下等现状,所以设计一个智能车位管理系统成为必要。
本设计设计了一个智能停车场管理微信小程序的系统,采用微信小程序及微信开发者工具、API相关组件、微信支付技术、MYSQL数据库、MyEclipse等技术。
实现的功能模块有:用户登录管理、用户信息管理、车位查询和预约、行车导航和记录功能,以及实现小程序和数据库的交互。用户可以通过关注停车场管理系统的微信公众号进行缴费支付,或者扫描停车场内的二维码,即可实现停车场中查询车位信息、预约车位等一系列的功能,使得车主对停车过程非常满意。
关键词 微信;小程序;停车系统;智能
Abstract
Now people's life disturbing by the parking problem, the slow payment brings endless troubles to the car owners . In order to solve the problems manufacturer of parking system and car owner are headache. In spite of the emerceing of license plate can be recognitioned by intelligented lication,parking payment is still a enormace trouble,mobile phone payment can relieve the process of manual charging and change and so on.so to design a intelligence system is essible.
This graduation project is design a parking system based on Mini Program. The technique are WeChat applet and developer instruments, API correlative elements, WeChat payment technique, MYSQL database, MyEclipse and so on. The function module design are: user login in operation, manage user information, inquire parking and nominate, automobile data recorder functions, and the achieving of MINI program and database reciprocal action.The official account,or scan the QR code straightly in the parking,can do a series of operations such as inquiry,reservation car,payment and so on,which can be done in the WeChat official account. The car owner's parking posses is very approving.
Key words:WeChat;Parking system;Mini Programs;Intelligence
目录
1 绪论
1.1 选题的背景和意义
随着人们现实生活水平的提高以及车辆数目的迅速扩大,使得交通拥挤和停车难等一系列问题变得更加严重。本系统通过研究当前阶段的停车管理系统,对于市面上大部分系统并没有实行智能化管理,还属于封闭落后传统类型,造成停车位信息和快速预定等问题无法被车主提前了解,基于此提出了相关智能停车场的研究课题[4]。人们开始越来越重视停车位的控制是因为现有的车位对于停车需求而言仍供小于求,同时交通的安全和畅通也被车辆的任意停放带来了非常大的影响,也给交通管理工作带来了很多麻烦。不仅如此,停车场汽车数量的迅速飙升,规模不断扩张,都给停车场的车辆管理带来了新的挑战,而产品数量依然满足不了停车场管理类的系统,自动化和智能化管理系统的停车场依然凤毛麟角。配备一套智能、综合的收费及管理系统来让停车场安全、便捷运转成为了必要。作为腾讯下的一款智能产品,微信小程序是一种应用程序,安装在WeChat,同时也是WeChat系统的必不可少的组成部分。它的特点是:开发成本低廉、友好的用户体验、访问便捷且速度飞快、并可以实现共享等,同时还可以到微信入口来实现搜索的功能、访问用户及其信息。这种新理念是通过线上线下双结合,不仅实现了绿色环保,更有利于提升人们的体验度。
各类型的大型停车场是为解决停车难等一系列问题而出现的,然而收效甚微,并使得停车位寻找的问题更加突出。司机不能快速迅捷地找到距离最近的停车位;并且采用人力疏导停车的方式不仅效率超低,还耗费人力财力,总而言之,人员分配方面不能达到最合理,这也是这种管理方式带来的巨大的缺点。这种社会现象已普遍存在,它的出现不仅困于的城市规模,更是让社会的中高速发展变的迟缓。因此当前的焦点问题就在于怎样达到司机对车辆的停放管理需求,减少驾驶员寻找空闲车位的时间来缓解城市道路的交通压力,还要有益于社会的绿色发展,所以建设一个高效、科学的智能车位管理系统已成燃眉之急。结果证实,该系统不仅极大地提高了停车场的泊车管理水平,还加快了车辆的出入速度,顾客寻找车位的时间也大大节省,乱停车的现象亦减少,系统不仅可靠稳定,还实现了智能管理,又维护了社会的秩序。[1]
1.2 国内外发展现状分析
1.2.1 国内停车系统发展现状
停车场系统的研究和实践在我国起步稍慢,80年代,在我国交通工程界的努力奋斗下,国内才开始接触到相关的智能车位导航的概念和技术。但是总得不到相应的支持,同时技术上的弱项和落后,经济基础上的资金匮乏,相关管理体制也不完善。然而在一些慈善团体的慷慨捐助下以及政府的大力支持,我国的科技领域不断的在蓬勃发展,在国内专家学者的不懈奋斗下,在智能车位导航领域取得了一定的傲人成绩,并为后续的接力发展打下了坚固的基础。
目前停车场管理系统虽然存在,社会上虽然研发了相关智能停车管理系统的产品,但它的核心是车辆的图像管理,它对于车辆出入停车场的凭证是ID/IC卡,这种卡是非接触式的[5]。并且大多数为了对车位的数目详情进行实时显示,其硬件手段都是单一的,网络的共享和网络化管理不仅都不能实现,而且资源的利用率也是不尽人意。停车引导功能依然不完善,称不上智能、快速,采用人工记录的方法来统计车辆,浪费人力资源不说,对总体车流量的统计更是达不到标准。大多停车场不具备最短路径式的找寻功能,司机不能在第一时间内找到最优的停车路径。作为和智能交通管理系统紧密相关的部分,智能车位管理系统潜能无限,具有很光明的发展前景。
1.2.2 国外停车系统发展现状
德国是最早进行智能车位引导系统的,在发展中稳中求健,功能建设的相对完善、稳定。1971年,亚瞋研发了世界上第一个智能车位系统。在那期间,智能车位引导系统在英国、法国和瑞士也接续兴起。1973年,亚洲的第一个车位导航系统在日本的处于东京中心区域的新宿区得到逐步建立,智能车位导航系统开始得到普遍发展。日本的建立赢得了社会的一致好评,这促使了日本使系统功能更趋完善,逐渐地,逐步实现了其商业区域系统的建立。
在国外,智能停车场管理系统经过了数年积累和沉淀,其收费系统越来越智能化,无人操作进行收费的专用设备也得以实现。停车场管理系统的功能不断的被优化、完善,是因为许多管理系统配备了车位引导、查询等智能化设备,一些外国停车设备厂商正努力建立一个在稍微宽广地区内的多个停车场之间任意泊车的‘网络化存车’停车场管理系统,该系统的网络连接可以依赖Internet。这种新兴的停车场管理极大的扩展了它的使用范围,并使得功能更加延伸、完善、丰富。
1.2.3 停车系统未来发展前景
当前,人们出行的交通工具普遍是汽车,造成交通拥挤不堪的原因有很多,最主要的却是车辆数目的急速剧增、车辆的任意乱停乱放,对于传统的停车场,不仅占地面积大,而且车辆管理系统智能化程度偏低、停车位利用率等一系列纷繁复杂问题造成了停车难问题。鉴于此,从实时位置查看、精确定位、位置信息上报等通信卫星导航系统的特点出发,接口为物联网中间件成为必不可少的一环[6]。中国各大城市对泊车位的需求总是供不应求,其需求缺口约五成,所以可以预测智能停车行业有着光明的发展前景。“当斯定律”同样适用于智能停车领域:道路设施由于新建,所以会触发车流量的新增,而交通需求却依然偏向供过于求的交通供给的一方,这定律和道路交通极其相似。因此,智能停车管理系统结合互联网,不仅使用户可以提前进行车位状态信息的查询、停车时间的自动计时缴费,还可以有效缓解停车难的问题并使得停车效率更加高效。
停车诱导系统主要是平衡停车位和驾驶员车辆二者之间的关系,但是目前停车诱导技术并不从驾驶员所想的停车因素方面来进行诱导, 停车场外部的区域引导是主要方面,而内部停车场引导机制仅仅随机生成一条从停车场入口到空余车位的单一的最短路径。如果场外诱导系统可以增加停车场的空余车位预测技术模块的话,则会有效帮助停车场外部的引导[8]。而反向寻车系统不仅增加了反向寻车诱导的功能,同时系统还推荐给用户一些空余车位让用户进行自由选择,与传统停车场相比,该系统的功能更丰富、完善。它大大缩减了用户反向寻车的时长,停车位的使用效率更进一步提升[9],同时为达到选择算法最优的目的,并且只考虑一种因素下的最短路径问题,它把储物柜原理和蚁群算法相结合。最后,通过实施软件硬件相结合,车位引导系统得以完成开发和使用。[11]
由于停车市场的兼容性不断延伸,作用范围越来越普遍,阿里、腾讯等一些电商巨头都纷纷争先恐后的涌入市场,电子支付成为“香饽饽”已是必然。随着微信小程序的正式上线,停车缴费的“电子支付”迎来了春天,使用小程序可进行扫码预支付、更可通过小程序进行车牌号的绑定来实现无感支付功能,电子发票功能使得车主开票更便捷、凭证更得以长期保存。智能停车是帮助车主快速找到一个可用的、路径最优的停车位,它为司机提供导航路线的技术依赖物联网、大数据、人工智能等,在使用期间,传感器会监测到的大量的实时数据,这些数据会被传到司机手中设备的专用App或车载上面。未来停车管理产业的主打方向将会是智能化、无人化,而行业想要立足的基石将会是技术、终端、资金等。
1.3 研究的主要内容
为了推动“智能交通”向“智慧交通”过程的转换,需进行不懈的努力,如在交通管理中不断增科技含量、科学管理方法的创新、服务市民能力水平的提高等;实现交通管理数据化服务需要平台的大力支撑;为预防应用事故的发生,需要进行设施管理的融合,同时还要搭建大数据库[3]。人们已然适应腾讯服务的社交行业转到了付款方式,而本次基于智能车位管理系统微信小程序的毕业设计,使用现在数据并发处理非常流行的js代码,设计了智能车位管理小程序,可以通过扫描二维码或计时收费来实现模拟支付,具体分析设计有:系统分析及总体架构、数据库的设计,具有车位位置的显示、查询以往车辆的收费记录、车位信息查找等功能,方便节时。[2]
2 系统的相关技术
2.1 微信小程序
小程序不需要下载安装,应用因而变得触手可及,进入微信页面扫一扫就可以打开,同时它的新理念也体现在“用完就走”上,应用将会变得无时无地不在,不需要卸载省了手机内存。小程序存在的必要性和必然性:拥有订票功能、订餐等功能;服务号功能相对不完善,小程序的功能非常强大;附近的用户可以轻易的搜索到,还可以结合公众平台进行推广。[7]本系统主要从开发角度,简略地阐述小程序的开发过程,并综合分析了微信小程序的开发环境、页面框架、API组件等方面,讨论了针对小程序目前的发展现状以及未来的发展趋势。用户可以在微信公众平台获取服务,这是全新的方式,高校图书馆作为文献资料、知识服务的中心,也是一种提供服务延伸的方式[10]。电子商务平台与传统的手机应用APP相比有优势,不仅可以满足大众购物的需要,同时用微信小程序来构建占用的资源会更小、运行和操作更简单方便。系统需求会用到客户端微信小程序、并用Web服务器、Https协议进行数据传输等,系统功能更加稳定。[12]
本文主要工作:1.研究微信小程序的背景和国内外停车系统发展现状,使系统开发更具意义;2.根据市场上面的需求以及小程序自身具有的优势,梳通思路来进行可行性的分析;3.搭建开发环境、熟悉关键技术,前端和后端、数据库的设计;4.完善系统测试的功能。[13]小程序与APP的关系特点:跨平台;依赖于微信;小程序可通过扫一扫或搜一搜找到。微信小程序与APP关系如图2.1所示:
2.1.1 微信小程序的发展历程
(1)2016年1月,应用号的概念被微信团队第一次提出;
(2)2016年9月,微信公众平台对外发送内测通知;
(3)2016年11月,微信公众平台开始首次对外发出公测,但只允许提交审核,禁止发布上线;
(4)2016年12月,微信小程序的答疑公开课回应了没有应用商店、没推送消息等被别人疑惑的一些问题;
(5)2016年12月,当时的微信小程序最多只可以生成一万个含有参数的二维码,距离上线还有一段距离;
(6)2017年1月,小程序正式上线;
2.1.2 微信小程序提供的功能对比
(1)分享当前页面的功能,但是只能分享到群或一个好友;
(2)小程序支持线下扫码功能;
(3)小程序的挂起有时间限值;
(4)小程序具有消息通知的功能;
(5)小程序和公众号二者之间你中有我,我中有你;
(6)小程序可以进行搜索以及查询历史列表;
(7)小程序不仅没应用商店,还没有地方作为集中的入口;
(8)小程序无订阅关系;
(9)小程序不能进行消息的推送;
(10)小程序不含做游戏的功能;
2.1.3 微信小程序迅速发展的表现
生态体系:企业中会通过微信小程序来拓展业务,如滴滴打车、美团外卖等。
开放能力:主要为开发者进行深度挖掘提供便利。
用户黏性:随着小程序用户量的激增,许多诉求会随之而来,同样改进产品的机会也越来越多,小程序会快速崛起。小程序依赖微信的程度会加深,在未来用户获取小程序也会更加便捷。
2.2 开发环境的搭建和使用
2.2.1 开发环境
开发环境如表2.1所示:
表2.1 开发环境
开发环境 | 产品环境 | |
操作系统 | Windows 10 | Windows 10 |
开发工具 | 微信开发者工具、myEclilpse | 手机端 |
数据库 | Mysql 2008 | Mysql 2008 |
浏览器 |
2.2.2 注册开发者账号
首先,到微信公众平台,注册一个自己的微信开发者账号,复制网址“https://mp.weixin.qq.com”到浏览器;注册账号的类型需手动进行选择;单击“小程序”即可注册成功。如图2.2和2.3所示:
在微信公众平台左侧的“设置”里找到“开发设置”,即可查看自己的AppID号,如图2.4:

2.2.3 开发者工具的安装与使用
微信开发者工具的下载网址在微信公众平台里,如图2.5所示;创建项目:首次微信扫码登录,登录成功后选择开发模式,如图2.6所示;小程序项目创建成功后,就会进入到开发调试环境中,开发者工具的使用如图2.7所示:

编辑器分为前后两栏:前栏用于浏览项目目录结构,后栏用于编写代码。
在前栏中点击某个文件就可以在后面栏中编辑该文件。
调试器:和浏览器中的开发者工具相似。
Console:控制台,把调试信息打印输出。
Sources:源代码,查看和编辑源代码,支持代码的调试。
Network:记录服务器的网络请求信息,根据它进行网络性能优化。
AppData:数据面板,当前小程序运行时的数据可以被查看或者编辑。
Audits:审计面板,用于对小程序进行体验评分。
Sensor:传感器,模拟地理位置、重力感应。
Storage:存储,本地缓存数据的查看和管理。
Trace:跟踪面板,用于真机调试时跟踪调试信息。
Wxml:wxml面板,填充WXML组件和渲染WXSS样式。
2.2.4 项目的目录结构
“Hello World”小程序的目录结构如表2.2所示:
表2.2 目录结构表
project.config.json | 项目配置文件 |
app.js | 应用程序的逻辑文件 |
app.json | 应用程序的配置文件 |
app.wxss | 应用程序公共样式文件 |
pages/ | 存放页面文件目录 |
pages/index/ | 存放index页面的目录 |
pages/index/index.js | Index页面的逻辑文件 |
pages/index/index.wxml | Index页面的结构文件 |
pages/index/index.wxss | Index页面的样式文件 |
pages/logs/ | 存放logs页面的目录 |
pages/logs/logs.js | logs页面的逻辑文件 |
pages/logs/logs.json | logs页面的配置文件 |
pages/logs/logs.wxml | logs页面的结构文件 |
pages/logs/logs.wxss | logs页面的样式文件 |
utils/ | 存放公共脚本文件的目录 |
utils/utils.js | 脚本文件,保存工具代码 |
wxml、wxss、js和json四个文件构成了每个页面,如图2.9所示:

pages配置项是用来在json文件中生成index首页的页面,其中的pages数组有两个页面,index页面和logs日志文件。在事件处理函数中,绑定了一个视图点击事件bindViewTap,它的功能是调用wx.navigateTo进行跳转页面。
单击头像即可进入到登录日志页,查看用户登录的历史记录,如图2.10所示,在log.js界面中,有onload加载函数,其功能是调用wx.getStorageSync('logs')来进行缓存信息的打印,并将目前的时间一并输出到日志界面中。
2.3 API相关组件
微信小程序柜架里的UI组件有很多,如视图容器类组件、基础内容类组件、完善的表单组件、友好的逻辑交互操作反馈组件、导航组件里面的页面链接、媒体组件用于音视频播放、地图导航以及画布类组件。这些UI组件就像小时候玩的积木一样,使用这些积木可以建造一座房子、一座大桥,而每个UI组件也都有不同的用处,有了这些组件,就可以完成界面的布局和界面的渲染。
2.3.1 组件分类
(1)视图容器类组件;
(2)基础内容类组件;
(3)表单类组件;
(4)导航类组件;
(5)媒体类组件;
(6)地图类组件;
(7)画布类组件;
(8)开放能力类组件;
2.3.2 常用API阐述
(1)服务器数据的请求:请求、上传和下载的发起;
(2)媒体的操作:图片的添加、录音的插入、视频的播放;
(3)文件操作:文件的打开、保存和删除;
(4)数据操作:数据的获取、保存与删除;
(5)位置操作:当前位置的获取及查看;
(6)设备管理:系统的状态、重力的感应、电话的拨打;
(7)界面设计:交互逻辑的反馈、导航页面、过渡动画、下拉操作;
(8)开放接口;用户登录检测、状态信息查询、当前页面分享;
2.3.3 登录授权
平常所使用的应用程序,都离不开用户的注册和登录。小程序拥有完整的登录流程,在这套登录流程里,进行通讯交互的涉及到小程序端、应用自身的服务端、微信的服务端。小程序端首先调用API的wx.login()获取code,这个code是用户的临时登录凭证,它是有有效期的。获取到登录凭证后,需要向服务端发送一个request请求,并携带上刚刚所获取到的code,服务端在接受到这个请求后会带上小程序应用的appid以及appsecret,这个appsecret表示小程序应用的一个秘钥。服务端拿到code之后,调用微信提供的接口,这条接口是微信的登录凭证校验接口,这个校验接口包含三个实参,分别是appid和appsecret,第三个就是临时登录凭证code。在调用微信的这条登录凭证校验接口之后,会换取一个seccion_key和openid,这个seccion_key就是用户当前会话的一个密钥,这个openid是用户在小程序里面的唯一标识。
换取seccion_key和openid后,服务端需要将两者组合生成小程序应用中用户当前的登录态标识。服务端还需要将seccion_key和openid所生成的登陆态标识这三者相关联,存入到对应的数据库中。生成一个自定义的登录态标识之后,小程序拥有登录态标识后,将它存起来,这里不是通过小程序全局变量来存储,而是一般会将它存入到小程序的本地缓存中。服务器端在接收到这样的一个请求,并拿到所携带的登陆态标识之后就可以去数据库中查询当前所携带的登录态标识所对应的用户的openid及seccion_key,通过openid对用户的数据来进行存取,并且返回给小程序端结果。具体如图2.11所示:

在小程序业务端,应该如何对用户进行登录健全的操作?在这张流程图中,小程序启动的时候,也就是onLaunch生命周期函数内,会去检测本地缓存中是否存在一个skey,即自己下发的一个登录态标识,如果存在,就需要去调用小程序所提供的一个wx.checksession的API来去检测当前用户的一个seccion_key是否过期,如果用户的seccion_key过期,需要调用login进行重新登录,这个登录操作是自己去定义的,不是微信提供的API,如果调用API里面的wx.checksession后,用户的seccion_key没有过期,就可以进行用户正常的一个业务请求。如果本地缓存中没有登录态标识,同样需要进行login这样的一个登录操作,具体流程如图2.12所示:

2.4 微信支付技术
这个应用程序中也会涉及到微信支付的一个功能,小程序给用户提供了这个开放功能。在小程序管理后台,左侧有一个微信支付的入口,个人主体类型是没有这样的入口的,因为只有微信认证之后,其支付功能才能够使用,而个人主体类型没有微信认证的入口。开通微信支付有两种方式,首先是申请新的微信支付的商户号,否则只能绑定之前的商户号。在开通微信支付功能之后,会分配一个微信商户系统的登陆账号和密码,拿到账号和密码后就要去登录微信商户的一个平台来进行一些相关的设置,在账户中心找到‘账户设置’,再找到‘API安全’这一项,需要去进行一个秘钥的设置,密钥是32位的密钥,所有微信支付相关的接口都可以使用这个密钥来加密,同时需要去下载商户对应的一个证书,然后将这个证书部署到web代理服务器上,使用微信支付功能之前,要确保web代理服务器开通了一个HTTPS的服务。
在微信支付交互中,用户需要去主动的触发支付行为,并将这个行为传达给小程序,小程序在接收到这行为之后会向服务端进行一个下单的请求,在进行下单请求之前,要确保用户登录过小程序,并通过getuserinfo获取用户的openid标识,服务端在接收到下单请求之后,需要去生成对应的商户定单数据,然后去调用微信支付所提供的一个统一下单的API,这个统一下单API会在微信支付服务后台来生成一个预支付的交易单。在所有的支付方式中都需要通过统一下单这个API来获取到一个支付的凭证。 服务端调用微信支付统一下单接口成功的情况下,会返回一个预付单的信息prepay_id,它表示当前商户系统预支付交易单的标识,然后组合前面所传入的一些参数的数据进行再次签名,并将签名结果以及前面所传入的一些参数下发给小程序,小程序端就可以通过wx.requestpayment结合这些参数以及签名来发起支付的操作。支付交互如图2.13所示:

2.5 MySql数据库
2.5.1 MySQL简介
MySql是一种传统关系型数据库类型的产品,它拥有开放式架构,并且技术日渐成熟,性能也在不断增强,支持的功能也日益完善,用户对平台的支持量以及社区的开发与维护人数也在逐日增多。目前,在遵守GPL协议的条件下,因MySql功能优越、性能稳定可靠,并可以免费的使用和修改而得到用户的青睐。关系型数据库不是把所有的数据都融合、统一地放一起,它鲜明的特点是将数据存到不同的工作表里,然后再将这些工作表放进不同的数据库中,这样不仅加快了MySql的读取速度,而且其变通性和可管理性也得到了极大的改善。Sql——结构化查询语言是对MySql数据库访问和管理的最常用的标准化语言。对数据库进行增添、删除、修改、查找的操作因Sql变得更加简单、方便。
2.5.2 项目数据库技术
在项目中,可以后台录入数据进行测试。即用到了数据库来查询个人信息、车位信息等。当后台录入数据后,在小程序中再次进行查询和登录等操作时,即可正常进行存取操作。
例如:当用户查看个人信息时,会调用wx.getStorageSync('sessionid')方法来获取storage中的信息,并返回对应的session_key来查看信息,js界面调用wx.request方法,用getStorageSync同步获取小程序的sessionid,成功之后会调用一个带有参数的callbackFun函数来获取用户个人信息userInfo,否则就显示图标为加载的提示框wx.showToast,代码为:
3 系统分析及总体设计
3.1 系统概述
在智能停车管理系统小程序中,本系统基于小程序平台的客户端,主要解决车主寻找停车位的问题。首先,用户通过手机号来注册账号,注册后进行登录,登录系统后可以查看目前所在的位置,停车场的详细信息也可以被查询到,如车库所在位置、是否有空余车位等。其次,用户还可以通过小程序来进行空余车位的预约,并查看导航路线,根据路线进行驾驶。用户查询服务主要是客户端,可以根据个人中心的页面详情来进行信息的查询,如停车记录、我的钱包、充值等信息。设计较为人性化、简洁的界面,与小程序的特点相吻合。
本系统设计了一个智能车位管理系统的微信小程序,以此来把传统停车场进行智能化、自动化等不同程度的改进,让设备来处理需要花费人力的问题,如停车收费、人力疏导式导航等。这不仅使得数据更加实时、精确、高效,同时还帮助车主更加方便快捷的寻找泊车位、取车,进而解决停车难的问题。预约车位的功能可以让车主提前查看是否有空余车位,避免到场后才发现没有车位的情景;自动计时的功能可以使用户的停车收费更加透明化,自主付费结合微信应用,可以有效的推广,并且提高用户满意度,增加社会以及经济效益。
3.2 功能总体描述
该系统主要实现微信小程序用户的注册和登陆、个人信息的管理、车位状态的查询和预约、线上的支付模块等功能。项目将实现以下功能:
1)用户登录管理:用户注册,用户登陆
2)用户信息管理:查看和修改个人资料,密码等信息
3)车位信息查询:实时查询某车库位置信息以及车位的状态
4)车位预约:提前进行预约车位,并进行支付策略
5)其他:1、云端管理系统:用户管理、车位状态查看;2、微信小程序:①功能:显示停车场名称、地址等信息;短时车位预定;车费在线支付;②界面设计遵循简洁原则、信息量最小原则;
3.3 业务功能分析
3.3.1 用户登录管理
用户登陆管理模块分为用户的注册和登陆。用户注册后才方便对自己的信息进行管理,并且使用系统相应的功能。用户注册需要用到手机号。用户登陆主要是用户查看和管理个人信息、停车的记录、车位信息等业务活动。用户登陆系统可以防止非法数据的写入,用户登陆需要填写正确的账号和密码才可以进入系统。
3.3.2 用户信息管理
用户登录后,可以查看个人信息,包括头像,昵称等信息;同时还有停车记录、我的钱包、消息通知等其他信息。用户信息管理模块的功能主要有:查询个人信息,查询停车记录,同时添加车牌号以及删除之前的车牌信息等操作来管理车俩信息。登陆后可以查看之前的停车记录信息,并且可以对车辆的车牌信息进行查询、增加和删除。
3.3.3 车位查询和预约
1、寻找导航上的停车场;2、查看停车信息;3、可短时预约车位。实现方案:通过程序提供车场地址,结合网商地图组件实现功能;利用传感器车辆检测技术结合嵌入式系统实现功能,再通过云端与程序内置场内地图实时校对实现功能。
3.3.4 行车导航和记录
车辆入场:1、找到停车场后,通过地图组件导航至指定位置,同时自动生成车辆入场信息记录;2、入场后,计费系统开始计费;3、用户端可实时查看车位位置。实现方案:终端通过传感器的检测,可自动生成信息报表,计费系统开始计费,并与用户端通过云端实时同步实现功能。
3.4 系统总体架构设计
整体系统的流程结构如图3.1所示:

4 系统详细设计
4.1 用户登录管理模块
4.1.1 功能结构
用户登录模块的功能结构如图4.1所示:

4.1.2 流程设计
微信小程序的登录环节是不可或缺的,登录流程可以简单分为以下几步:调用wx.login()来获取临时登录凭证code;获取到code后再结合AppID、小程序的秘钥appsecret,服务端会调用微信登录凭证接口来获取session_key;拿到session_key再结合openid生成用户当前的登录态标识存储在本地缓存storage中;以后用户再进入小程序,先再storage获取信息,再根据这个去寻找合法的session_key。用户登录管理模块流程设计如图4.2所示:

4.2 用户信息管理模块
4.2.1 功能结构
用户的信息管理功能结构如图4.3所示:
4.2.2 流程设计
用户登陆后进入小程序首页面,会显示系统用户的基本信息,点击可进行密码的修改,修改成功后即可返回首页。用户信息管理模块的流程如图4.4所示。

4.3 车位查询和预约模块
4.3.1 功能结构
车位状态信息的查询、预约结构图如图4.5所示:
4.3.2 流程设计
用户登陆后,点击左方的车位信息管理即可进行车位信息添加和车位信息查询。在车位信息添加里可以进行车位号的添加;在车位信息查询里,可以搜索车位号以及查看具体车位的状态信息是停车还是空闲、车位是否被预约。并且在操作中可以对车位进行修改、删除、查看详细信息。车位信息查询功能如图4.6所示。

4.4 行车导航和记录模块
4.4.1 功能结构
行车导航和记录模块结构图如图4.7所示:

4.4.2 流程设计
小程序通过调用wx.getLocation接口来获得用户的当前位置,用户在查看当前位置后,可以选择到指定停车场的位置,通过调用wx.chooseLocation来选择指定停车场,同时查看位置是通过调用wx.openLocation来实现的,它使用的地图是微信自带的内置地图;最后通过moveToLocation方法移动到停车场的地点。调用wx.getStorageSync同步缓存数据到本地,方便浏览停车记录的信息,具体流程如图4.8所示:

4.5 数据库设计
4.5.1 数据库概念设计
以前学过MySql数据库,它是一种关系型数据库,而微信上面的云数据库是不同类型的文档型。云开发提供数据库,但它是json类型的,并且一个json格式的对象与数据库的一条记录相对应。一个数据库可以有很多集合,而集合相当于一个json数组,一条记录对应着数组中的一个对象,json对象是被记录的格式。
设置数据库的相关连接信息以及把数据库的模式信息写到配置文件中,这是 信息管理模块最主要的功能。数据库中数据表、视图的结构信息是指模式信息,而系统的核心功能模块是查询定义模块,并且根据查询的需求对所要查询定义进行配置,并将所配置信息存储到文件中。用户对数据的查询需求不仅在该系统被高效地回应,而且系统的开发效率也得以提升,同时系统维护起来更方便。[14]关系型和json文档型数据库的概念对比关系如下表4.1所示:
表4.1 关系型和文档型数据库的对比
关系型 | 文档型 |
database | database |
table | collection |
row | record |
column | field |
4.5.2 小程序与数据库的交互
在小程序开发过程中需要从小程序后台请求相应的数据,但是小程序直接连接后台服务的数据库是不能实现的,可以在微信小程序的index.js文件中编写请求数据库的小程序代码,var app = getApp()来获取App实例,然后在Page页面中启动加载onLoad函数,功能是向服务器发送wx.request请求获取服务器的url地址,并携带name为‘bob’的参数。
Page({
onLoad: function () {
wx.request({
url: //服务器地址
data: {
name: 'bob'//请求参数
} }) } })
Page页面中的事件处理函数是通过loadState函数实现的,其中向服务器发送request请求,获取全局变量的app.globalData,以及小程序API的页面中的json内容。核心代码句为:
loadState: function() {
wx.request({
data:{
sessionId: wx.getStorageSync('sessionid'),
} }) }
4.5.3 数据库设计代码实现
如用户个人信息的添加,在页面的初始数据中,通过switchChange函数功能来进行用户的性别的选择,然后进行formSubmit表单的提交,通过向服务器后台发送 wx.request请求,获取链接地址URL后通过POST方法,添加e.detail.value数据详情值,成功的话会显示‘添加成功’的图标,否则显示data.msg错误图标。
5 系统实现
5.1 系统界面
当用户首次登陆小程序时,会显示初始index界面,里面包含用户个人中心、当前位置、目的地查找、预约时长等跳转界面的组件,点击相应的组件,会调用一些函数完成相应的功能,如图5.1所示:
当用户点击首页的注册时,会进行个人信息的注册,注册完成后返回进行登录,如图5.2所示。点击个人信息,会跳转到个人中心界面,里面包含停车记录、消息通知、密码的修改等信息,点击相应的组件会完成相应的功能,如图5.3:
5.2 关键代码
5.2.1 index首页
当用户进入小程序首页后,通过const app = getApp()来获取小程序实例,在Page页面的data数组中,包含 markers数组的标记点,以及controls的数组控件,默认的经度longitude纬度latitude都为0,在timetxt文本框中显示‘预计时长’的字样。然后调用onReady函数里面的wx.createMapContext来创建MapContext对象,同时打印并判断longitude是否为0。
IF longitude != 0 THEN
Do this.gethearadr()
ELSE this.getAdrDate() THEN
DO this.loadState()
同理,在onLoad加载函数中,如果有e.longitude参数,就把数据设置成当前事件的经纬度。在searchFun的搜寻函数中,通过wx.navigateTo进行页面的跳转,跳转的URL地址包含在navigate组件中,还可以通过wx.navigateBack返回原来的页面。在导航函数中,通过调用wx.openLocation来打开用户当前所在位置的经纬度,查看当前地址,同时设置scale的缩放级别(3-20)。在选择预约时长的函数中,通过wx.showActionSheet显示操作菜单,首先是按钮的文字数组itemList中可以选择需要的预约时长。
5.2.2 登录
5.2.3 个人中心
在个人中心界面,通过系统后可以进行密码的修改,首先通过String olduserpass=request.getParameter("ymm")输入原始密码,其次通过代码String userpass=request.getParameter("xmm1")进行新密码的修改,最后
String copyuserpass =request.getParameter("xmm2")进行新密码的再次输入确认。如果输入的密码不等于原来的密码,则会返回错误信息,否则会重新进行密码的设置。
6 系统测试
6.1 车位信息管理
6.1.1 车位信息添加
进入系统后,添加车位号可以提交到系统,或者进行车位号的重置,具体如图6.1所示:
6.1.2 车位信息查询
点击车位信息添加,即可查看车位的具体信息,包括车位号、车位状态、车位是否预约、以及进行详细的操作如图6.2所示:
6.2 车位预约记录
通过查看具体车位状态信息后,可以对空闲车位进行预约,输入所空闲的车位号以及预约人姓名进行查找。在记录中,包含车位号、车主姓名、预约日期、具体的修改、删除和详细的操作,具体如图6.3所示:
6.3 停车记录
6.3.1 停车收费
点击停车收费可以进行具体车位的停车、结账等操作,具体如图6.4所示。
6.3.2 停车记录管理
点击停车记录管理可以查看车位、停车时间来进行查找。如图6.5所示:
总 结
本系统以物联网为核心,通过结合移动端设备和数据库,来有效利用空闲的车位资源,实现避免浪费人力资源的目的。本系统包括微信小程序端、后台管理平台、服务器端、数据库等几大模块,建立以停车位为核心的系统软件模型与功能框架,之后采用JavaWeb和Android技术开发基于微信平台开发小程序,最终实现车主查看车位状态信息来预约使用车位,即时使用停车位。
本系统设计的智能车位管理系统微信小程序是鉴于社会对停车场停车的硬性需求,核心是智能终端,同时加上物联网和互联网技术,通过手机端的微信小程序,来对停车场空闲状态的车位信息加以利用。本设计核心是停车位,主体是多样化,利用停车场中空闲的车位,通过共享的理念,使得社会少量资源得到了最大化的社会效益,不仅有效的解决了停车难的问题,而且让停车位真正的流动起来。
参考文献
[1]洪长平.一种停车场管理系统的设计与研究[J].漳州职业技术学院,2020年01期,ISSN 1673-1417
[2]姜俊杰,张毅,姚锡凡等.基于SQL的停车场管理系统软件[J].华南理工大学,2015.
[3]赵和平.对标“五型”政府 打造“智慧交通”[N].要闻·综合2019,12-D631.5.
[4]张恒.基于RFID的智能停车场三维分层定位的研究与设计[J].南京邮电大学,2019.
[5]刘文利.国内停车场管理系统的现状与发展趋势[J].北京信息职业技术学院,2011.01.185.
[6]祗旭,刘逸飞等.智能停车场定位推送服务系统的开发[J].西北民族大学电气工程学院,2019.18.006.
[7]袁堂青,亓婧.基于微信小程序的开发与研究[J].山东传媒职业学院,2018.
[8]赵戊辰.智能停车场泊位预测及诱导停车方法研究[D].哈尔滨商业大学, 2015.06.07.
[9]赵春展.大型停车场反向寻车系统设计[D].华南理工大学,2015.01.003
[10]刘小龙.河南省高校图书馆微信公众平台建设现状及对策探析[J].图书情报导刊,2017,01:26-30.
[11]段东辰.绵阳长虹国际城地下停车场车位主动引导信息系统设计与实现[D].电子科技大学,2015.08:03-09.
[12]傅伟,涂刚,张贤龙.基于微信小程序的电子商城设计与实现[J].江苏财经职业技术学院,2019.
[13]段萌萌.Design of Smart Campus System Based on WeChat Mini Program[D].
华中师范大学,2017.
[14]梁海燕.数据库通用查询系统的设计与实现[D].华中科技大学,2014.
致 谢
毕业设计即将完成,我兴奋不已,最要感谢的是我的毕业设计指导老师,正是因为她的无私帮助,我大学四年所学到的知识才有机会展现成果。
回想我的大学生活,还记得在大一第一次上计算机课时,老师给我们讲课的场景历历在目,记得学的第一本关于专业课的书,是老师让我对物联网工程这一门行业产生了浓厚的兴趣,这四年学了很多关于专业课的知识,每一位老师都让我难以忘记,还记得每一节课老师神采飞扬的讲课。那种印象,我想,无论过去多长时间都不会忘记,每一位老师在课堂上是我在计算机这个行业的领路人。每一次周末,老师都会对我们说欢迎大家去她家玩,大学可以遇到这样的好老师,我会铭记于心。还记得在第一次考证书时,无论是在晚上还是在周末向老师提一些自己不懂的知识,老师都会给我解答,对我鼓励。转眼间大学生活就要结束了 ,带着不舍即将离开校园,但我无论在哪工作,都不会忘记老师在课堂上对我的谆谆教诲,更不会忘记作为一名计算机人员的职业道德。
毕业设计结束了,但通过设计让我明白的道理以及学到的知识却让我受益终身。我深刻理解了在大学课堂上,老师们教学的辛苦和希望学生们学到知识的心愿。通过这次毕业设计不但检查了我的学习成果,同时也是学校和老师们给我们上的最后一堂课,目的是让我们缕清思路,容光焕发的去面对这个社会,为社会做出一份贡献。最后感谢大学四年的校园,感谢教过我的老师,感谢我的同学们。
最后,因为我当时是我们导师的项目组下的小组长,而且不和我一个学校的朋友也让我帮他改论文、改格式、降低查重率等,所以我这里还有很多他们的毕设题目(毕设资料),有感兴趣的同学可以关注我,给你们参考参考,也算是帮到你们一点吧!




有关毕设的所有资料、流程等,我都在这篇回答中详细的介绍了,感兴趣的同学可以看看,会对你有帮助的!
关于‘选题‘、‘开题报告’、‘论文格式‘、‘降低查重率’、‘毕业生资料归档’、‘论文答辩(流程、资料)’等其他方面,如果有同学不清楚或者有疑问的、感兴趣的都可以咨询我呀,我给你们解答!
其他有关毕设、大学生职业规划、答辩PPT等资料,后续我会持续更新,感兴趣的朋友可以先一键三连,以备后用!!!