基于物联网的智能辅助泊车系统设计与实现.doc
目 录摘 要IAbstractII引 言11 相关技术31.1 物联网技术31.2 JFinal框架技术31.3 uni-app技术41.4 本章小结42 智能辅助泊车系统的分析52.1 需求分析52. 11 系统的功能需求52. 12 系统的非功能需求52. 13 系统业务需求角色分析52. 14 车主需求分析62. 15 停车场管理员需求分析72.2 系统的工作流程分析72.3 本章小结83 智能辅助泊车系统的设计93.1 系统总体设计93. 11 系统功能结构93. 12 软件的体系结构103.2 系统详细设计103. 21 微信小程序设计103. 22 后台服务器设计123. 23 数据库设计143. 24 硬件设计163.3 本章小结184 智能辅助泊车系统的实现194.1 开发环境194. 11 硬件环境194. 12 软件环境194.2 开发规范194.3 系统核心功能的实现194.4 本章小结245 智能辅助泊车系统的测试255.1 测试计划255.2 测试用例255.3 测试结果265.4 本章小结30结 论31致 谢32参考文献33附录1 相关硬件技术数据35附录2 源程序清单36沈阳城市学院毕业设计(论文)摘 要随着物联网时代的到来,人们的生活水平逐步提高,导致人均机动车保有量也越来越高,由此带来的“泊车难,找位难”等一系列问题亟待解决。在此种情况下,传统的城市停车设施规划管理系统已经无法满足泊车者的客观要求。本文针对当前存在的此种迫切需求,实现了基于物联网技术的智能辅助泊车系统,以改善泊车难问题。通过对物联网大环境下辅助泊车系统业务流程的调研,并充分考虑到未来停车场规模、车位硬件检测设备等可变需求因素,本文运用微信小程序开发者工具设计用户端界面,采用JFinal框架作为后台系统体系架构,以Tomcat和jdk为应用服务器,MySQL作为后台数据库,光电传感器和树莓派作为物联网硬件,开发实现了智能辅助泊车系统。该系统共包含硬件、后台、前端等三大模块,突出之处在于用户只要使用手机端的微信小程序就可以查看整个停车场的平面图以及车位状态信息,由此达到快速泊车的目的。通过使用本文系统进行停车场泊车管理工作,可以使得车主的找位效率大大提升,具有精确、方便、快捷、高效等优点,在很大程度上降低了停车场的人工管理成本,提升了车主泊车过程的舒适度和满意度等。本文系统采用的物联网技术和小程序框架使得整个系统具有可用性强、可扩展性高等特点。经过具体的编码实现和系统用例测试,智能辅助泊车系统中各模块功能均已成功实现。经实际运行证明,本文所设计的辅助泊车系统架构完整,性能良好,整体运行稳定,可以满足车主泊车方面的需要。关键词:物联网; 辅助泊车; 车位状态管理; 微信小程序IAbstractWith the advent of the Internet of things, people's living standard has been gradually improved, resulting in an increasing number of motor vehicles per capita, resulting in a series of problems, such as "difficult to park, difficult to find a place", which need to be solved urgently. In this case, the traditional urban parking facilities planning and management system has been unable to meet the need of the parking. In this paper, aiming at the current urgent needs, the intelligent aider parking system based on Internet of things technology is implemented to improve the parking problem.Through the auxiliary parking system under Internet environment, and fully consider the future scale of the parking lot, parking space hardware testing equipment such as variables, this paper uses WeChat small application user interface design, using JFinal frame as a background system architecture, using Tomcat and JDK as application server, MySQL database as the background, photoelectric sensor and PI as iot hardware, developing intelligent auxiliary parking system is realized. The system consists of three modules, including hardware, background and front end, the outstanding point is that users can view the plan of the entire parking lot and parking status information by using WeChat small program, thus the purpose of fast parking is achieved. By using this system for parking lot parking management work, can make the owners find a efficiency greatly, has the advantages of accurate, convenient, fast and efficient, to a large extent reduce the parking lot of the artificial management costs, improve the comfort and satisfaction of car owners in the parking process.The IoT technology and small program framework adopted in this paper make the system highly available and expandable. Through the concrete code realization and the system case test, each module function in the intelligent auxiliary parking system has been successfully realized. Proved by actual operation, this article has designed the system architecture is complete, the performance good, can meet the needs of the owner parking aspects.Keywords: IoT; Assist parking; Parking status management; WeChat appletII引 言随着科技的发展和社会的进步,机动车在我国的普通家庭已经开始普及,由此带来的“泊车难”问题也成为了阻碍我国城市化发展的重要难题。各城市停车场规模建设开始不断扩大,一些升降式停车场、重叠式停车场、多层地下封闭式停车场也渐渐开始问世1,因此,开发出一款能够帮助车主快速找到空车位的智能辅助泊车系统的要求也越来越迫切。据相关数据显示,截止2016年初,在一些大型城市有十分之三的石油资源浪费在停车场找寻合适车位的路程中,而在繁华的市中心,假如是一个对所去停车场内部结构完全不熟悉的车主,想要找到一个合适的停车位,大概需要花费8分钟的时间,这在很大程度上降低了人们的生活品质2。对于大多数车主而言,不可能对所有停车场的内部行车路线及车位占用信息都了如指掌,所以,想要快速在泊车过程中找到一个合适的空车位,是一件非常困难的事情。这就使得停车场整体运行效率不高,甚至还会造成场内交通拥堵、排放过多尾气污染环境等情况3。由此而来,设计出一个能直观显示停车场内部结构平面图信息和车位使用信息的辅助泊车系统,成为缓解当前城市停车难题的有效手段之一。本文将物联网技术中的光电传感器、树莓派等硬件设备与后台管理数据库相结合,融入到停车场的车位状态管理系统中,不仅加速了其现代化步伐,还提高了车主的泊车效率,让停车场的管理工作更加规范有序,同时还解决了停车场浪费人力的问题,缓解了车辆在场内反复巡游的情况,减少了汽车尾气对城市环境的破坏,改善了目前城市的交通状况,最主要的是还在无形之中提高了人们的生活品质4。本课题拟完成一个基于物联网大环境下的智能辅助泊车系统,并对如何通过硬件改变车位状态的方法进行详细的研究。该系统以停车位是否空闲为核心,以车主和停车场管理员为两个主体,通过快速帮助车主找寻空闲车位,达到辅助其前往泊车的目的,该方法是解决停车难题的重要管理措施和手段。本课题的主要难题是如何基于物联网中的光电传感器和树莓派将车位状态信号上传到后台数据库,并通过服务器相连,最终显示在用户端和停车场管理员端。本文从车主用户的需求出发,首先明确智能辅助泊车系统的组成部分,然后详细阐述了包括车位信息采集模块,用户端模块,停车场管理员系统模块等在内的整个系统框架和各个子系统的工作方式以及子系统之间的数据传输方式,最终实现给车主提供最佳车位和最佳停车提示路线的功能5。物联网硬件设计方面拟将光电传感器嵌入到停车位中,再将其通电并将输出信号线连接上树莓派的引脚,然后由树莓派作为中间介质,将数据变化信号传递给后台数据库,再由系统管理员更新车位状态信息,最终显示到用户端界面,达到运用物联网技术实现对整个停车场局域控制的目的。本文最后通过简单的停车场案例和测试用例,实现整个辅助泊车系统的业务流程。本课题需要重点解决的问题有以下几条:(1)车主用户如何从手机设备获取停车场平面图及空闲车位信息;(2)如何为车主用户提供辅助泊车路线;(3)停车场管理员如何实时了解到所有车位是否被占用的信息。(4)如何通过物联网技术中的硬件设备将数据变化信号传递给后台管理数据库,并由其对前端车位状态进行更新。本文第1章介绍了系统开发时所用到的相关技术,其中包括物联网技术、JFinal框架技术和uni-app技术等。第2章为系统的分析部分,主要包括系统各角色的需求分析和整体工作流程分析。第3章为系统的设计部分,主要包括总体设计和详细设计。第4章是系统的实现部分,介绍了实现功能时必要的开发环境、开发规范以及实现功能演示过程等。第5章是智能辅助泊车系统的测试环节,主要包括制定测试计划、设计测试用例以及得出测试结果三部分6。1 相关技术1.1 物联网技术物联网技术最初起源于传媒领域,是指通过一系列的信息传感设备,按照相关的约定协议,将任意物体与互联网相连接,然后通过信息传播媒介进行信息交换和通讯,以实现智能化识别、跟踪、定位、监控和管理等功能7。简单来说,只要涉及到各类传感器和移动通讯网络相互交换信息的过程就可以归纳到物联网的范畴。本文将物联网技术运用到车位状态的检测装置中,将光电传感器的黑色输出信号线与树莓派主板的引脚相连,然后通过控制树莓派桌面系统,最终达到改变车位状态的目的。此外,物联网的相关技术应用领域也十分广泛,其中主要包括传感器技术应用、射频识别技术应用、嵌入式系统技术应用等8。从技术架构上来看,其体系架构可分为三层,分别是感知层、网络层和应用层,如图1.1所示9。图1.1 物联网典型体系架构总的来说,物联网是继互联网之后一次新的信息技术革命,它在未来的发展潜力不可估量。目前,我国政府还大力支持物联网产业的发展,其行业应用领域广阔,涉及到安防、医疗、电力、物流、海关、智能交通、智慧城市等,且规模也日趋完善。但物联网的发展也面临着众多难题,比如国内现在缺乏相关技术人才和核心技术等,所以要想建立更完整的物联网体系我国还有很长的路要走。1.2 JFinal框架技术JFinal是一款基于Java语言的极速Web开发框架,其核心设计目的是以尽可能少的代码量来进行快速的开发过程。JFinal框架由Handler、Interceptor、Controller、Render、Plugin五大部分组成,它的结构非常简单,顶层是一个责任链模式变种,ActionHandler内部是一个Command模式变种10,其体系结构如图1.2所示。Handler是请求处理器,完成对所有请求的公共处理;Interceptor是拦截器,用于对action请求的拦截处理;Controller是控制器,是JFinal核心技术之一,所有Web应用的控制器都需要继承该类;Render是渲染器,负责将服务器端的数据组装成不同的视图类型并返回给客户端;Plugin是插件部分。图1.2 JFinal框架体系结构1.3 uni-app技术uni-app是一个使用Vue.js来开发的跨平台应用的前端框架,使用uni-app技术通常只需要编写一套代码就可以编译到多个平台上进行应用。uni-app框架是在HBuilderX上进行开发的,因为其vue语法完备,开发效率高,一套代码可以同时生成APP和微信小程序等,因此,本项目的微信小程序设计部分采用的就是uni-app模板,其中模板内自带的框架样式,对于初学者来说是十分友好的一项技术。1.4 本章小结本章主要描述了实现智能辅助泊车系统所使用到的相关技术,比如物联网技术、后台IDEA中的Jfinal框架技术,辅助微信小程序开发的uni-app技术等,这三个核心技术的使用涵盖了本系统的硬件、后台以及前端界面的设计。2 智能辅助泊车系统的分析2.1 需求分析2. 11 系统的功能需求智能辅助泊车系统旨在解决现有城市交通的“泊车难”问题。该系统可帮助车主寻找目的地附近停车场,并提供停车场平面图以及场内车位状态信息,减少车主在寻找合适停车位过程中的反复巡游,缓解场内交通压力,减轻停车场工作人员的工作量11。2. 12 系统的非功能需求智能辅助泊车系统除了要实现辅助用户快速泊车的核心功能外,还应该具有美观的前端界面,完整的系统结构组织用来提高用户的体验度。尤其体现在给用户提供寻找车位的路线提示时,本系统采取简单的弹窗设置搭配通俗的文字语言描述,实现了系统的最佳路线辅助泊车的过程。此外,在保证各部分功能需求实现的基础上,还应该完善系统的可维护性、可扩展性和全面性等。2. 13 系统业务需求角色分析本系统围绕着车主和停车场管理员两大角色展开,设计相应的系统功能模块,系统的角色用例图如图2.1所示。图2.1 系统角色分析用例图车主使用手机端进入微信小程序,主要功能有登录注册、完善个人信息、预约车位、查询附近停车场、查看停车场平面图、辅助快速泊车等。停车场管理员使用JFinal框架对后台进行管理,主要功能有管理车主用户基本信息、管理车位状态信息等。智能辅助泊车系统在满足车主需要的同时,也站在停车场管理员的角度,采用人性化的设计,不仅能为用户提供空车位泊车指示,让用户实时了解场内的车位状态,还减少了停车场管理员的工作量,让其只需要进行定期的系统维护即可。2. 14 车主需求分析对于智能辅助泊车系统的功能结构而言,车主需求主要包括:查看停车场平面图、查询场内空车位信息、点击车位给出辅助前往车位提示路线、预约车位、查询附近停车场信息等。相较于以往传统的停车方式来讲,其泊车过程通常是:车主到达目的地后,先寻找目的地附近合适的停车场,然后再去该停车场寻找合适的空车位进行泊车,如果所去停车场没有空车位了,则需要前往下一个停车场再次找寻空车位,如图2.2所示是在没有使用辅助泊车系统下的泊车过程图12。图2.2 无辅助泊车系统的泊车过程图从图2.2可以看出,在没有辅助泊车系统的情况下,车主由于不了解目的地附近的停车场情况,就会在寻找停车场和车位的过程中进行盲目搜寻。这个过程是十分费时费力的,而且在场内反复巡游寻找空车位的车主,将长时间占用停车场内通道资源,进而引发道路堵塞,导致停车场内车辆难进也难出。况且人的观察能力有时候也是有局限性的,因此可能需要很长一段时间,车主才能找到一个比较合适的停车位置13。为了解决车主在停车场内盲目找寻空车位的问题,本文结合当下最流行的物联网技术,将停车场系统设计成可辅助车主泊车的智能系统。使用该系统进行泊车,不仅可以提前预约车位,还能清楚直观的看到停车场的平面图信息以及空闲车位的信息,系统还会根据车主的选择提供前往车位的路线信息。为了更直观的对比有无辅助泊车系统对泊车过程的影响,将使用辅助泊车系统后的泊车过程图演示在图2.3所示Error! Reference source not found.。图2.3 有辅助泊车系统的泊车过程图2. 15 停车场管理员需求分析停车场管理员对于系统的主要需求是车位状态信息管理,在此功能管理基础上还应该包括对车主用户的登录注册信息、预约车位订单信息进行管理。根据停车场管理员系统的需求设计出其用例图如图2.4所示。图2.4 停车场管理员用例图如图2.4所示,在系统管理员的权限下可对车位信息、用户信息、预约信息进行相应的管理,管理员系统的存在保证了整个系统的数据正常流向12,因此,在设计小程序的同时,完善管理员系统是十分有必要的。2.2 系统的工作流程分析完成智能辅助泊车系统的设计,需要了解完整的数据流向过程,该过程包括数据采集、数据通信、数据处理、数据存储这四个部分15。系统的数据流向与系统的工作流程息息相关,其工作流程是先通过物联网技术中的光电传感器和树莓派对车位的状态信息进行采集并上载到后台,然后通过后台服务器对数据信号进行处理,处理完后的数据通过网络系统发送到用户端上并同时存储到数据库中,其中数据服务器是整个系统的核心和中心枢纽,它既能够接收硬件设备传来的车位变化信号,也能够在每次用户预约车位或完成停车操作后实时的更新数据库中剩余的车位数量和当下的停车状况。如图2.5所示是系统的工作流程图16。图2.5 智能辅助泊车系统流程图从图2.5可以看出,车位状态信息采集过程是通过安装在停车位上的车位检测装置(光电传感器)对每个车位的停车情况进行实时的数据采集,然后通过后台数据库在每一次有车辆停入对应车位时,将数据信息进行更新并统计场内的车位情况,随后将能够继续停车的车位信息发布到用户端的微信小程序上13。然后车主用户进入微信小程序后,就可以访问到当前停车场的空车位信息,并根据自己的需求选择合适的停车位,最后系统根据用户的选择,提供最佳的引导路线辅助其顺利泊车17。2.3 本章小结本章主要讲述了智能辅助泊车系统的需求分析以及具体工作流程分析,详细介绍了该系统各个角色的用例图以及功能需求和非功能需求,对系统整体工作流程的数据流向进行了梳理,为之后系统的设计与实现奠定了良好的基础。3 智能辅助泊车系统的设计3.1 系统总体设计3. 11 系统功能结构本文根据车主和停车场管理员两大角色需求分析中提出的问题进行总体功能结构设计,功能的组织结构如图3.1所示,包括数据采集系统、数据传输系统、中央处理系统和输出显示系统四部分,其功能结构是:首先通过停车场的数据采集系统对场内车位信息进行采集,并按照一定方式通过数据传输系统将信息传送到停车场管理员系统中的车位管理模块,然后再由中央控制系统对这类数据信息进行分析处理后,将数据存储到后台数据库服务端,同时分送给信息发布系统,最终将信息输出显示在用户端界面。对于后台管理数据库中的车位信息,系统还提供了数据查询接口,以便系统管理员随时对数据进行管理12。图3.1 系统功能的组织结构图从图3.1可以看出,智能辅助泊车系统下的四个子系统主要功能为:(1)数据采集系统:实时通过硬件设备以及用户端设备的预约信息采集停车场内各个车位的使用情况,分为“空车位”、“已停车”、“已预约”三种状态。(2)数据传输系统:传输系统顾名思义是要在保证数据安全的情况下,快速的将相关数据信息传递到合适的位置,它是整个系统之间的纽带,只有通过数据传输系统的连接,才能形成一个完整的辅助泊车系统。(3)中央处理系统:该系统实现对各个停车位信息的汇总,并将相关信息进行分析和处理,实时反馈到信息发布系统和输出显示系统,它是整个系统的中心枢纽。(4)输出显示系统:该系统是实现人机交互的一个重要途径,它将机器语言转换成用户可识别和使用的图画或文字语言,是用户和系统进行有效交流的方式之一18。智能辅助泊车系统在功能设计上分为客户端、数据库端、服务器端三个部分。客户端主要运行在微信小程序上,面向车主提供辅助泊车服务,主要的功能模块分为登录注册模块、附近停车场查询模块、预约车位模块以及个人中心模块等。数据库端无疑是用来进行数据操作的,主要包含数据处理和数据存储13。服务器端主要负责对从数据采集系统收集到的车位状态信息进行数据处理,并且实现给车主用户提供辅助泊车信息的功能,将相应请求处理结果从服务器端传送给客户端19。3. 12 软件的体系结构该系统软件功能主要是实现停车场管理和辅助用户泊车,所以软件体系结构包括两个部分,分别是停车场管理员系统的软件和辅助用户泊车的软件。在设计停车场管理员系统软件时可以借鉴市面上现有的一些管理系统软件来设计软件体系结构,因此本文的设计难题是做一个如何实现辅助用户泊车的软件20。停车场管理员系统是采用IDEA编程环境下的JFinal框架技术进行Web项目开发的,该软件的核心是开发迅速、代码量少等,而且跟MySQL数据库的连接只需要在一个类里面编写一个接口代码即可。但在安装IDEA软件的时候需要注意破解和激活的过程,并且激活之后的使用过程中注意不要随意更新软件版本。用户端的功能是基于HBuilderX软件下的uni-app框架的微信小程序来开发的,该软件还需要协同微信开发者工具一起开发,数据库的设计采用MySQL软件,如图3.2所示为该系统的软件分层体系说明图。图3.2 软件分层体系说明图3.2 系统详细设计3. 21 微信小程序设计智能辅助泊车系统的客户端功能主要体现在微信小程序上,本文微信小程序主要以HBuilderX中的uni-app框架开发为基础,基于JavaScript语言,配合微信开发者工具使用,最终成功开发出一款辅助用户找车位的微信小程序,该小程序还有很多为了完善功能结构和提高用户体验度而设计的其他功能。uni-app模板框架搭配使用HBuilderX进行开发,其对vue语法支持完备,因此开发速度较快,学习成本低。最主要的是uni-app模板中有很全的前端界面样式设计的代码,比如:布局设计、按钮样式、弹窗样式、标签样式、图标样式、颜色样式、进度条设计等等。基于车主用户的需求分析,设计出的微信小程序中各功能模块架构图如图3.3所示,主要包括:停车场平面图车位信息模块、预约信息模块、查询附近停车场模块、个人中心模块等,其中车位信息模块包括查看停车场平面图及场内各个车位状态并选择合适的车位给出辅助路线提示泊车;预约信息模块包括预约车位编号信息和时间日期信息等;查询附近停车场模块包括查询车主所在目的地的附近其他20个停车场位置信息,标记显示在附近地图中;个人中心模块包括普通车主的登录注册信息、完善个人资料信息、查看自己预约信息等。对于车主来说,该平台不仅为其提供了停车场的内部结构信息和车位状态信息辅助泊车,还能在登录后进行预约车位的操作,在很大程度上减少了停车过程中所花费的时间,极大满足了用户的出行需要21。图3.3 微信小程序平台结构图基于物联网的智能辅助泊车系统的两大核心分别是:物联网技术和智能辅助泊车功能,其中物联网技术的使用在后面的硬件设计中有详细介绍,而智能辅助泊车功能是结合微信小程序端的车位信息模块、后端数据和预约信息模块共同实现的。由于硬件设备的数量限制,所以本文设计了一个简易型停车场的平面图,如图3.4所示。图3.4 简易型停车场平面图停车场平面图决定引导用户泊车的路线具体是什么样的,因此,本文根据先前设计好的简易型平面图图片在微信小程序中用代码循环的形式画出与此结构类似的停车场平面图,并为其赋予了三种车位状态信息。当车位被车辆占用时,界面中该被占用车位会显示“已停车”信息;而当车位被用户选择预约时,界面则会把预约车位的状态改为“已预约”信息,所以之后再进场的用户只能选择“空车位”状态的车位进行泊车。车位占用信息是从硬件设备端传到后台数据库的数据信号所改变的,而预约信息则是从客户端传来的预约数据,两者相互配合构成整个停车场的车位状态信息,不仅使车主用户更加方便快捷的泊车,还让停车场后台管理人员直观地了解到整个系统的运行状况。随着各类软件应用的快速发展,微信小程序成为了目前十分流行的应用形式,其自带的微信风格样式和随开随用、不需要下载安装、不需要更新版本的优点让其能与原生应用程序相媲美。本文根据软件应用的流行趋势,选择用微信小程序作为与用户交互的一种前端工具,紧跟时代发展的步伐。3. 22 后台服务器设计该系统的后台服务器端主要负责对光电传感器采集到的车位状态变化信号进行数据处理和运营微信小程序,实现停车场内的车位信息管理和辅助泊车功能,当车主通过微信小程序客户端向后台服务器发送辅助泊车服务的HTTP请求时,后台将相应服务的处理结果返回给客户端,服务器端所提供服务的功能结构如图3.5所示,主要分为系统设置、运营管理、数据统计和微信管理这几个方面,系统设置主要负责对管理员的操作日志和网站的基本信息进行管理;运营管理主要负责的是车位管理、用户管理和预约管理等;数据统计主要负责对访问网站的次数进行统计;微信管理主要负责对微信基本信息进行设置管理。图3.5 服务器端功能结构图本文后台管理系统采用Tomcat + jdk的方式作为服务器,使用方式很简单,只需要将开发的应用程序部署到服务器上,就可以通过访问Tomcat相应数据接口请求获取相应的数据。在本系统的设计中,微信小程序端通过HTTP协议请求方式中的url_Request的请求方法,访问后台服务器的对应功能接口,其中,应用服务器的设计架构如图3.6所示22。图3.6 应用服务器的设计架构图对于微信小程序而言,需要通过微信服务器的验证后才能调用第三方数据接口,当应用服务器捕捉到前端的URL请求后,将请求交予服务器前端控制器来解析并匹配到相应的逻辑处理器中,然后逻辑处理器根据业务逻辑需求进行处理得到结果,并将结果返回到服务器前端控制器和储存到数据库端,最后前端控制器将视图进行渲染后返回到前端的微信小程序上,至此,用户的请求得以实现23。3. 23 数据库设计智能辅助泊车系统的数据库设计采用管理型数据库MySQL来实现,MySQL是一种开放源代码的关系型数据库管理系统,使用最常见的SQL语言进行数据库管理,其概念结构设计模型主要关注于研究课题所属领域的元素及其属性,不包含实际操作24。本系统的模型对象主要有车位信息表、普通用户信息表、预约信息表、系统管理员表、操作日志表等,如图3.7所示是本系统数据库的实体关系图。图3.7 数据库的实体关系图根据概念结构模型画出如图3.7所示的数据库实体关系图,现将其转化为数据库的表结构,得到表的关系视图,其中重要的表结构如下。(1)车位信息表如表3.1所示为车位信息表。记录了车位的状态信息,主要有车位编号、车位状态信息、车位类型、辅助路线导航提示等车位信息6。表3.1 车位信息表字段名类型(长度)约束说明idINT(11)主键,非空车位编号stateINT(1)非空车位状态typeINT(11)非空车位类型routeVARCHAR(200)非空辅助路线导航提示(2)普通用户信息表如表3.2所示为普通用户信息表。记录了普通用户的登录、注册时的手机号、密码、姓名、性别以及个人中心页面的基本资料信息等25。表3.2 普通用户信息表字段名类型(长度)约束说明idINT(11)主键,非空普通用户编号mobileVARCHAR(45)非空登录手机号passwordVARCHAR(255)非空登录密码nicknameVARCHAR(45)非空用户姓名sexVARCHAR(2)用户性别orderINT(11)用户预约车位信息(3)预约信息表如表3.3所示为预约信息表。普通用户的预约车位操作需要在使用手机号和密码登录后才能预约。预约信息表记录了预约车位时用户的手机号、预约车位编号、预约时间、预约日期和特殊备注等预约信息。表3.3 预约信息表字段名类型(长度)约束说明idINT(11)主键,非空预约编号phonenumberVARCHAR(45)非空登录手机号carnumberVARCHAR(45)非空车位号码选择timeVARCHAR(45)预约时间选择dateVARCHAR(45)预约日期选择remarksVARCHAR(45)非空预约车位备注(4)系统管理员表如表3.4所示为系统管理员表。记录了系统管理员的编号、登录名、登录密码等信息。此外,管理员系统还要运营和管理车位信息、普通用户信息、预约信息、操作日志信息等。表3.4 系统管理员表字段名类型(长度)约束说明user_idINT(11)主键,非空管理员用户编号login_nameVARCHAR(20)非空管理员登录名user_passwordVARCHAR(64)非空管理员用户密码(5)操作日志表如表3.5所示为操作日志表。记录了系统管理员的登录和退出的操作日期和时间以及操作的详细信息等。表3.5 操作日志表字段名类型(长度)约束说明logidINT(11)主键,非空序号user_idVARCHAR(20)管理员用户编号user_nameVARCHAR(50)管理员用户名称function_nameVARCHAR(200)功能oper_dateDATE操作日期oper_timeDATETIME非空操作时间oper_descVARCHAR(128)非空操作类型描述statusCHAR(1)非空操作状态3. 24 硬件设计本系统的硬件设计主要是基于物联网技术来实现的,它分为光电传感器和树莓派两大部分的设计,要想实现智能辅助泊车系统中的车位检测装置,需要以下电子器件。(1)光电传感器,所选版本:E18-D80NK漫反射光电开关#MK671;(2)树莓派3B+主板、新款ABS镂空外壳、散热风扇、极速充电器、电源带开关;(3)microSDXC读卡器;(4)SD存储卡;(5)双头HDMI线;(6)杜邦线若干(公对母、母对母);(7)大容量可充电锂电池(含充电器);(8)24V/12V转5V电源转换器;(9)螺丝刀等。光电传感器作为车位检测装置,其内部结构由发射器和接收器两部分组成,如图3.8所示。工作原理是当电开关有足够的组合光返回接收器时,开关状态发生变化,进而用来检测车位上是否有车辆遮挡,此外需要根据实际情况适当地调节其感应头的灵敏度,确保其是因为有车辆驶入车位才发生数据变化的,避免一些无关因素的影响,做到防误判26。图3.8 光电传感器内部结构原理图树莓派实际上相当于一个微型的电脑主机,它是为了学习计算机编程而设计的,可以实现在计算机上远程控制树莓派系统。树莓派系统环境的安装和搭建是一项比较复杂的工作,首先需要获取合适的镜像文件,然后通过读卡器把SD卡采用SDFormatter软件格式化,最后使用相关软件来进行镜像烧录。烧录完成后的SD卡需要插到树莓派主板上,为了延长主板的使用寿命,应该提前给其安装外壳和散热风扇。当一切工作都准备就绪后,将树莓派通过双头HDMI高清线与电视机相连,然后插上电源线,按下开关按钮,查看树莓派系统是否正常启动。在电视机上运行树莓派系统的图形界面时,需要把鼠标和键盘插到树莓派的USB端口,若没有多余的键盘,可以为其安装虚拟键盘。此外,最重要的一步是将树莓派联网,可以采用网线连接或打开SSH的方式连接WIFI,联网后的树莓派才能进行远程登录,打开终端使用ifconfig的命令就可以查询获取到树莓派的IP地址,计算机通过这个IP地址,对其进行远程登录,进而利用Windows的远程桌面协议控制树莓派系统,最终实现其作为介质传输数据信号的功能。树莓派3B+主板的各模块分布结构如图3.9所示,在使用过程中要注意各个端口和引脚的具体功能并选择合适的进行使用。首先,需要一块锂电池给光电传感器以及树莓派通电,锂电池需要经过降压电源转换器与光电传感器的正负极相连以及树莓派相连,然后将光电传感器的黑色信号输出线连接在树莓派恰当的引脚上,这个引脚的选择跟python代码有关,要连接与gpio.py中对应的引脚编号,信号才能成功传递。图3.9 树莓派3B+模块分布图3.3 本章小结本章主要讲述了该系统的总体设计结构以及各部分的详细设计,包括微信小程序设计、后台服务器设计、数据库设计和硬件设计等。如何将各个设计部分联系在一起,是本章重点研究的问题。系统设计是实现系统功能的前提和基础,因此,良好的系统设计方案会对系统的实现带来好处。4 智能辅助泊车系统的实现4.1 开发环境4. 11 硬件环境(1)操作系统:Microsoft Windows 10,64位;(2)处理器:Intel(R) Core(TM) i5-5200U CPU 2.20GHz 2.19GHz;(3)内存:8.00GB(7.74GB可用)。4. 12 软件环境(1)前端:HBui