毕业设计(论文)-充电桩管理平台及移动智能应用开发.doc_第1页
毕业设计(论文)-充电桩管理平台及移动智能应用开发.doc_第2页
毕业设计(论文)-充电桩管理平台及移动智能应用开发.doc_第3页
毕业设计(论文)-充电桩管理平台及移动智能应用开发.doc_第4页
毕业设计(论文)-充电桩管理平台及移动智能应用开发.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生毕业论文(设计)题 目: 充电桩管理平台及移动智能应用开发 姓 名: 学 院: 信息科学技术学院 专 业: 计算机科学与技术 班 级: 计科121 学 号: 指导教师: 职称: 讲师 2016 年 5 月 10 日南京农业大学教务处制目 录摘要1关键词1Abstract1Key words11绪论11.1 国内外研究状况21.1.1 国外研究状况21.1.2 国内研究状况21.2 研究的目的和内容32 开发平台及应用技术32.1 云服务器简介32.2 数据库概述42.3 Android开发技术42.3.1 Android技术42.3.2 Android studio开发平台52.4 开发语言和服务器53 需求分析与设计53.1 需求分析53.2 系统总体设计63.2.1 系统总体架构63.2.2 系统功能模块设计73.3 数据库设计104 系统实现144.1 系统开发环境和安装144.1.1 系统开发环境与工具144.1.2 Android环境安装144.1.3 wampserver集成环境安装144.2 主要功能实现144.2.1 数据库连接144.2.2 动态验证码的生成154.2.3 用户端与服务器端数据传输154.2.4 统计图分析164.2.5 关键字提示搜索174.2.6 地图marker标记点击事件174.2.7 Android界面跳转184.2.8 Android客户端与php服务端的数据传输194.2.9 Android高德地图定位195 系统测试195.1 充电桩管理平台功能测试195.1.1 登录注册功能测试195.1.2 数据查询功能测试205.1.3 客户建议管理功能测试215.1.4 数据统计分析功能测试215.1.5 充电站及充电桩添加功能测试225.2 用户网页服务端功能测试225.2.1 充电站导航功能测试225.2.2 依据登录状态跳转页面功能测试235.2.3 用户查看交易记录功能测试235.3 移动APP功能测试245.3.1 充电站导航功能测试245.3.2 路径规划功能测试246 总结与展望256.1 总结256.2 展望25致谢25参考文献:2630充电桩管理平台及移动智能应用开发计算机科学与技术专业 指导教师 摘要:随着电动汽车的不断发展,大量针对电动汽车而开发的能源服务需要被建设和管理。为了有效的管理充电桩和充电站等资源,本课题结合web技术,利用PHP技术开发后台数据操作,使用html、JS语言开发管理界面,采用MySQL构建数据库,采用B/S结构,基于阿里云服务器利用Apache服务器搭建了一个管理服务平台,利用Android studio平台开发了移动APP应用。通过该管理平台,管理员能够方便的对充电桩进行远程监控和管理,管理交易记录和用户的相关信息。用户也可以使用APP应用来享受地图导航,充电消费等服务。目前该系统已实现比较完备的功能。关键词:充电桩;管理平台;云平台;Android全套设计加扣 3012250582Charging Pile Management Platform and Mobile Intelligent Application DevelopmentStudent majoring in computer science and technology Tutor Abstract: With the number of electric cars increasing rapidly, relevant power services and infrastructures such as charging pile, need to be constructing. Accordingly, effective and efficient management of these charging pile is required. This topic builds up a model of charging pile management platform on Ali Cloud server, by using Apache server and B/S structure, uses PHP to realize back-end, html and JavaScript as front-end, MySQL as database, and develops mobile applications APP by Android studio platform. Administrator can manage and control these charging piles, manage transaction and users information conveniently through this website. By downloading application, users can enjoy map navigation and charge consumption service. At present, the system has achieved a more complete function.Key words: charging pile; management platform; cloud platform; Android1绪论在我国,随着改革开放,国民经济得到迅速发展,人们的生活水平也在不断地提高,越来越多的人们开始拥有汽车。而我国的石油储量和开采不足,加上日益严重的环境污染,新能源汽车成为了人们关注的焦点,而电动汽车能够很好地解决节能和减排的问题,成为了国际汽车产业发展的新方向1。电动汽车通过电能来驱动行驶,很好地满足了“零排放”的标准,电动汽车的使用能够帮助人们缓解全球能源紧张和环境污染等日渐严重的问题。而随着科技的不断发展和进步,尤其是大容量电池的出现2,让我们使用电动汽车成为可能。虽然目前电动汽车的成本相对于使用传统燃料作为动力的汽车而言要相对高一些,相应的其价格较普通汽车高出一些,但是电动汽车使用的是廉价的电力来驱动,后期使用时能够节省大量的成本,而且不会对环境造成危害。加上现在电动汽车越来越流行,众多汽车公司的不断加大研究力度,其成本必定会不断降低,电动汽车也必然会在全世界范围内逐渐普及应用3。由此可以看出,使用电力作为能源的电动汽车已经成为了汽车产业发展的必然趋势。而电动汽车在行驶过程中,类似传统汽车需要加油,也需要补充电能。因此,大量的电动汽车充电桩,充电站需要建设。那么能否有效的管理这些基础设施,就成为了推动电动汽车发展的关键环节之一。充电设施分充电桩和充电站两种类型:充电桩是电动汽车充电时最小的个体;而充电站则一般采用多个充电桩来集中式提供充电服务,可以为多辆电动汽车同时充电。目前而言,我国的充电设施还是相对较少,充电设施的落后严重的制约了我国充电汽车的发展。大量的电动汽车需要大量的充电桩来提供充电服务才能够获足够的电能来行驶,因此,充电桩是电动汽车发展过程中不可或缺的基础设施,需要大量的建设来满足和促进电动汽车的发展。而对于充电桩的监控管理也显得越来越重要。我们要实现节能减排,就需要推广普及电动汽车,而推动电动汽车应用就需要建设大量的充电基础设施,同时需要做好这些设施的管理监控。好的监控管理平台能够有效地管理和监控充电桩的运行,及时发现故障,及时修理,提高充电设施的服务质量,有效促进电动汽车产业的发展。1.1 国内外研究状况1.1.1 国外研究状况电动汽车是电动汽车充电站服务的对象,充电桩的发展和充电汽车的发展紧密相连。目前电动汽车可以分为3类:混合动力汽车、纯电动汽车和燃料电池汽车。近年来,随着环境污染和能源危机的不断恶化,各国都纷纷开展电动汽车的研究,继而带动了充电桩的发展。从产品和技术两个方面上看,国外的充电系统都取得了不错的成绩。随着人工智能,控制技术等先进科技的发展,充电产品也在逐渐摆脱单一类型的弊端,朝着多功能,智能安全化的方向发展着4。而现场作业总线技术,例如RS485、CAN的发展使得电桩监控系统的通信手段变得越来越多样化、安全化、高速化。美国是最早开展电动汽车相关研究的国家,也是投入人力,物力最多的国家,相应的也取得了非常丰硕的成果,在电动汽车领域建立了比较完善的系统框架,2010年5月美国能源部审核通过了“交通电气计划”,并且拨款1500万美金托付美国著名的电动汽车充电网络公司ChargePoint进行充电桩的建设。2013年6月,ChargePoint宣布经过两年的建设,他们已经成功的在全美安装了4600个充电桩,这些电桩分布于居民小区,影院,政府大楼,商场和停车场5。美国街头充电桩如图1-1所示。图1-1 美国街头充电桩1.1.2 国内研究状况随着科学技术的日益进步,加上我国政府的扶持和企业投入的不断增加,我国的新能源汽车行业在近两年来获得了飞跃式的发展。但是,随着新能源汽车行业的不断发展,充电桩数量不足的弊端也逐渐的暴露了出来,这正是资本市场潜在的投资机会。这将使得发展以纯电动为主的新能源汽车的产业政策路径日渐明确,所以充电桩作为基础设施,在不久的将来必将迎来建设的高峰期6。总体来说,充电站和充电桩在电动汽车的推广过程中占据着重要的地位,是电动汽车商业化后必不可少的基础能源服务设施,未来需要在高速公路沿线以及城市中大量建设。电动汽车主要的能源补充方式就是充电站和充电桩,后期对其的监控和管理也至关重要,有效的监控和管理能够极大的促进电动汽车的推广和普及。1.2 研究的目的和内容本文设计实现一个充电桩管理平台,让管理人员来远程管理充电桩的基本信息,监控其运行状态,管理交易记录和用户的资料。管理平台还能够发现电桩的运行故障,这样管理员能够及时通知相关人员进行修理。同时本文还设计实现了一个基于Android平台的手机APP应用,进行用户的定位和搜索以及一个网页端的用户使用平台。(1)平台层:利用阿里云的云服务器,搭建一个简单的服务平台,提供用户的管理,用户的评价回复,用户交易数据的统计分析,充电桩运行信息监控,充电桩基本信息管理等服务。(2)网络层:位于平台层和终端层之间,提供了用户信息,电动汽车充电信息等各种数据的传输通道。(3)终端层:包括一个网页端的用户使用平台和一个Android移动APP,能够实现充电桩的位置查看,定位用户的当前位置及导航到相应充电桩的功能,也能够帮助用户进行地图导航,提供地图导航服务。用户也可以实现在线注册,完善个人信息的操作。并且模拟用户的充值行为7。为了能够更好的发挥平台的功能,提高用户和管理员使用的满意度,工程的设计遵循了下面的设计原则:(1)简洁实用原则。操作界面遵循简介为上的原则,设计结构做到尽量合理,突出重点,内容做到充实,系统功能尽量完善。充分考虑用户的需求和操作习惯,让平台的操作简便实用,方便用户和管理员的使用。(2)安全性原则。整个系统的数据传输使用异步方式,post方法较之get方法,在安全性方面有着很大的提高。用户和管理员的使用平台分开设计,防止个别用户恶意窃取其他用户的信息8。(3)先进性原则。在技术架构上,项目采用了多层的逻辑处理体系结构,将系统的表现层,控制层和数据库操作层分开,使得项目的结构更加的明确,也有利于降低维护的成本。(4)适应性和可扩展性原则。系统的平台具有灵活性和适应性,将来能够依据用户的需要不断的改进结构,整合模块。且平台依托浏览器运行,无需用户安装客户端,实现了客户端零维护。2 开发平台及应用技术2.1 云服务器简介云服务器是一种简单高效,安全可靠,处理能力能够弹性伸缩的计算服务。云服务器的管理方式比物理服务器更加的简单高效。用户不需要提前去购买硬件设施,就能够迅速的创建或者释放任意台的云服务器,云服务器能够帮助用户快速的构建更加稳定,安全的应用。云服务器是一种类似VPS服务器的虚拟化技术,VPS是采用虚拟软件,VZ或VM在一台服务器上虚拟出多个类似独立服务器的部分,每个部分都可以做单独的操作系统,管理方法同服务器一样9。本项目租用的是阿里云的云服务器。阿里云创建于2009年,是中国的云计算平台,服务范围覆盖全球的200多个国家。租用的云服务器所在可用区为华北1可用区B,名称iZ28uhkzvbfZ,地域为华北1(青岛),实例规格为ecs.t1.small,简约型t1,镜像ID:win2008_64_stand_r2_cn_40G_alibase_20150429.vhd。配置信息如图2-1所示。图2-1 云服务器配置2.2 数据库概述数据库是通过数据库管理系统(DBMS-DATA BASE MANAGEMENT SYSTEM)软件来实现数据的存储、管理与使用的。本文实现的管理平台所使用的是当前比较流行的一种关系型数据库-MySQL。MySQL客户机和实用程序中,MySQL是一个交互式程序,允许将SQL语句发布到服务器上并浏览其执行的成果。而MySQLAdmin是一个管理程序,允许执行例如关闭服务器以及创建或者删除数据库的操作,还能够检查服务器的状态。isamchk和myisamchk等实用程序能够帮助客户完成表的分析和优化,并且在表损坏时能够进行修复。MySQL的数据目录是服务器存储其数据库和状态文件的地方。而MySQL的服务器能够从命令行中手动的启动和终止服务器,并且在系统启动和关闭时知道该怎么样自行的启动和关闭。2.3 Android开发技术2.3.1 Android技术Android是一种基于Linux的自由及开放源代码的操作系统,主要应用于智能手机,平板电脑等移动设备上。安卓本质是在 Linux 操作系统上增加了 Dalvik,并在这个 Java 虚拟机上搭建了一个应用程序框架层, 安卓程序都基于该层。安卓基本架构如图2-2所示。图2-2 Android 基本架构图安卓大致分系统运行库层、linux 核心层、应用程序层及应用程序框架层。在图 2-2 中最下面的是代码内核;往上是 C/C+编写的程序库;黄色的代码为虚拟机;程序由蓝色部分表示。在该框架层之下,由程序库构成,可完成从 JAVA到 C 的使用。10(1)应用程序层: 安卓程序都用Java编写, 且这些程序由一个或多个以 Activity类为超类的活动构成。(2)应用程序框架层:程序能用非自己发布的功能块,也能发布其功能模块。(3)系统运行库层:主要包括多媒体库以及基本的 C 库等。(4)linux 核心层:安卓的核心系统服务依赖 Linux 内核,如安卓内存管理、进程管理等。2.3.2 Android studio开发平台Android studio是Google公司为Android提供的官方IDE工具,Google建议广大的Android开发者尽快从eclipse+ADT的开发环境改为使用Android studio。Google公司也在2015年年底停止对Eclipse Android开发工具的一切支持,包括ADT插件,Ant构建系统,DDMS,Traceview与其他性能和检测工具。Android studio不在基于Eclipse开发平台,而是基于IntelliJ IDEA的Android开发环境。IntelliJ IDEA其实一直都是一款非常优秀的Java IDE工具,只是因为其属于商业软件而受到了一些限制,但是Google在此基础上推出的Android studio却是一款免费软件,因此具有着很大的吸引力。2.4 开发语言和服务器(1)PHP:PHP是一种通用开源脚本语言。它的语法吸收了C,Java和Perl的特点,学习简单,使用广泛,主要在WEB开发领域使用。PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高出许多。PHP使用的技术主要有两种:第一种技术是模板技术,这种技术是先制作出一个网页的模板,再根据不同的风格和内容进行分类,从而组成一个能够套用到网站上的模板库。另外一种技术是标签技术,这种技术能够利用标签将网页中一些经常使用的功能封装起来,从而节省大量的代码编辑时间,便于开发人员进行管理10。(2)html和JS:html是超文本标记语言,是一种用来建立网页文件的语言。Html能够通过标记式的指令(Tag),把声音,图片,视频,文字和动画等内容显示出来。JS全称是JavaScript,是一种基于对象和事件驱动的脚本语言,并具有较好的安全性能。它能够和html语言合作,使得网页变得更加的生动。(3)Apache是目前世界上使用排名第一的Web服务器软件,是一种开源的http服务器软件。它有着很高的跨平台性和安全性,并且快速,可靠,能够通过简单的API扩充,这使它成为了最流行的Web服务器软件。3 需求分析与设计3.1 需求分析目前,国内已经建成了很多的充电站和充电桩,未来还会有更多的充电设施会被建设。随着电动汽车产业的发展,电动汽车势必会得到广泛的应用。电动汽车充电站是电动汽车必不可少的基础服务设施,而充电桩是组成充电站的最基本的单位,能够给用户们提供充电服务11。通过充电站内的充电桩,用户可以选择直流,交流和电池组快速充电等不同的充电方式来为汽车充电,即时消费电力,并且通过现场支付的模式来完成付费,从而完成充电交易。根据市场的需求,从应用的角度来看,管理平台应该具有管理和监控充电桩的运行状态,管理用户的资料,查看和通知故障处理,分析统计交易情况等功能。管理员在管理电桩的时候,位置固定在公司,所以设计B/S模式的管理平台,方便管理员对充电桩进行管理和维护。而用户在驾驶电动汽车时,难以使用PC访问平台,所以设计实现Android服务平台来方便用户在户外使用充电服务;而当用户处于室内时,可能更喜欢使用PC 浏览网页,所以也设计实现了用户的PC端服务来满足用户的需求。用例图如图3-1所示。图3-1系统用例图3.2 系统总体设计3.2.1 系统总体架构B/S(Browser/Server,浏览器/服务器)和C/S(C1ient/Server,客户端/服务器)是两种不同的软件架构方式。C/S架构是典型的两层架构模式,它的界面和操作可以设计实现的丰富多彩,安全性也有很好的保证,且响应速度快。但是用户需要安装程序才能使用,而且维护起来较为繁琐困难。B/S结构与C/S结构不同,用户只需要使用浏览器就可以使用服务,不需要额外安装软件,且开发较为简单,后期的维护也相对容易。根据管理员和电动汽车用户的不同的使用需求,管理员的管理监控平台采用B/S结构,而考虑到用户不是时刻都在使用手机进行服务12,用户的服务端采取了两者兼顾的形式,即设计实现了网页端的服务平台,也设计实现了Android客户端,以此来满足电动汽车用户使用需求。系统的总体的架构如下图所示,使用云服务器来搭建项目的服务器端,将本地服务器架设在阿里云上,这样管理员和用户只需要连接网络,就可以使用浏览器来登录服务平台。用户在行驶途中也可以使用移动流量,通过移动APP来访问Android服务器,使用相应的服务。系统架构如图3-2所示。 图3-2 系统架构图3.2.2 系统功能模块设计根据使用者身份的不同,整个系统分为三个部分,管理员的充电桩管理平台,用户的页面端服务平台和用户的Android移动APP。充电桩管理平台是用来对充电桩和充电站进行管理,管理员通过平台实现远程管理电桩,电站的运行,并且对它们进行监控和及时的维护。由于用户的使用地点分为室内和驾驶途中,所以用户的服务使用两种方式提供:PC端和移动APP,这样能够给用户提供便利的服务,提高用户对于服务的满意程度。系统功能模块如图3-3所示。图3-3 系统总体功能图(1)充电桩管理平台充电桩管理平台是用来对充电桩和充电站进行监控管理的。管理员通过平台实现远程管理电桩,电站的运行,并且对它们进行监控和及时的维护,并且能够对相应的交易信息进行分析查看,其功能模块如图3-4所示。图3-4 充电桩管理平台功能模块a.管理员的登录和注册功能。因为管理平台不是一个人单独使用的,当有新的员工加入时,需要为他分配一个管理员的账号,方便其操作管理平台。b.主界面管理功能。在管理员登陆后,进入管理平台的主界面,主界面显示所有的分模块的菜单,管理员可以点击各个模块进行相应的管理操作。主界面还以地图的形式直接呈现出所有充电桩的地理位置,方便管理员查看各个充电桩的位置,来通知相关人员进行修理维护。c.充电桩的信息管理。电桩的信息管理分为两个部分:电桩的基本信息管理和电桩的运行信息管理。管理员可以查看电桩的运行信息,根据运行时的电流,电压和工作温度来判断电桩是否处在正常状态。管理员也可以查看电桩的基本信息,如电桩所属的充电站,坐标位置,负责部门等。管理员也能够添加和删除电桩。d.用户信息管理。管理员可以查看用户的基本信息,用户的交易信息,以及用户的收藏,以此来推断用户的消费习惯等信息。e.电桩故障查看修理。管理员可以在这个模块下查看电桩的出错信息和负责修理的相关人员的联系方式,及时了解修复进度,以便更改故障修复信息。f.用户评论查看回复。管理员可以查看每个用户每天的评论,来了解充电汽车用户对于电桩的服务是否满意,以及他们提出的建议。在此基础上便不断完善和改进充电服务,从而增大产品的吸引力。g.交易数据的管理分析。每天每个充电站都在完成大量的交易,但每个充电站的交易量都不会一样,管理员可以查看每天各个地区的充电站交易数量或者查看每个地区各个电站的交易数量,并且通过绘制的统计图来总结得出那些交易高峰地区,然后可以考虑在高峰区增添充电设施。交易数据的管理分析的具体流程如图3-5所示。 图3-5 绘制统计图流程(2)用户服务平台电动汽车用户的网页服务平台能够提供充电站的导航,用户信息的管理,交易数据的查询,评论回复的发表和查看等功能。其功能模块如图3-6所示。图3-6 用户服务平台功能模块a.用户登录注册。完成用户的登录注册功能。b.电桩位置导航。将数据库中的电桩位置信息提取出来,以标记的形式在高德地图上标记出来,并且定位用户的当前位置,当用户点击充电桩时,自动搜索行驶路径,输出到页面,并在高德地图上标出行驶路径。c.基本资料管理。用户注册时,只是完成了最基本的账号密码的注册,用户的一些基本资料需要用户在该功能下完善,也模拟了用户的充值行为。d.交易记录查询。用户能够查看自己每天的交易记录,来确保每次的交易记录都是真实的,而没有作假。e.用户评论查看回复。用户可以对充电站的服务进行评价,也可以对服务商提出一些好的建议,并且能够查看自己的评论或建议有没有回复以及回复的内容。(3)Android APPAndroid APP的功能有充电站位置的显示及导航,路径规划,用户的登录注册,用户信息查看修改等。APP应用可以方便用户在行驶的途中使用电桩位置的查询,导航等服务。其功能模块如图3-7所示。图3-7 移动APP功能模块Android APP应用提供充电站的导航功能,用户可以点击每一个充电站的marker标记进行路径导航,同时用户打开应用不仅仅可以导航充电站,还可以进行路径规划和导航,自由的搜索目的地的行驶路线。这些功能不需要进行登录就可以使用,所以即使不是注册用户也能够享受这些基本的服务。用户也可以进行登录,登录后能够查看自己的基本信息(例如自己账户的余额),用户可以在网页或者APP端进行注册,并且可以自行选择是否完善自己的个人信息。3.3 数据库设计一个好的系统,离不开合理有效的数据库设计。该系统设计的数据有充电桩的基本信息,充电桩的运行信息,充电站的基本信息,用户的注册信息,用户的详细信息,交易记录信息,充电桩故障信息,用户的评论和管理员的回复信息。用E-R图来表示各个实体之间的关系,如图3-8所示。图3-8 E-R图本项目采用的是MySQL数据库,根据系统设计需要,建立了一些数据表来记录充电桩,管理员和用户的数据。本项目总计有11张数据表,数据表统计如表3-1所示。表3-1 数据库关系表统计编号数据表名属性1users管理员id,管理员密码,管理员属性2chanrgings电桩标号,所属地区,具体地址,供电方式,充电模式,电压,经纬度,项目名称,责任单位3charging_info电桩标号,运行电压,电流,温度,记录日期45678910customercustomers_infocustomer_commentscustomer_favouritecustomer_tradefaultstrades用户id,用户账号,登录密码,注册日期用户账号,用户性别,地址,邮箱,电话,账户余额用户id,用户账号,内容,评论时间,回复量用户id,用户姓名,收藏的电桩用户id,用户账号,电动汽车型号,电费单价,充电时间,开始时间,结束时间故障id,电桩标号,电桩地址,故障类型,故障发生日期,修理负责人,负责人电话,故障修复标记交易号,电桩标号,用户id,单价,充电时间,交易金额,交易地址,开始时间,结束时间11charging_station充电站名称,地址,经纬度,区负责人,充电桩数量users表记录的是管理员的信息。管理员是使用充电桩管理平台的用户,是管理充电桩的角色,所以管理员的数据表较为简单,只需要管理员id,管理员登录密码和权限即可。表的具体内容如表3-2所示。表3-2 users数据表字段名类型能否为空注释user_idInt(10)否管理员登录的id,主键user_pwdVarchar(16)否管理员登录密码user_rightInt(11)否管理员权限chargings表记录的是充电桩的一些非运行时的信息,ch_id是每个电桩的标号,这是唯一的,所以也是chargings表的主键;经纬度记录的是电桩的地址,可以依据经纬度将电桩标记在地图上;每个充电桩的充电模式不一定相同,有直流,交流等区别;充电电压表示充电桩的合理的电压范围,这是固定的值,而下文中电桩运行信息中的电压,电流是实时的电桩信息,随时间不断变化。表的具体内容如表3-3所示。表3-3 chargings数据表字段名类型能否为空注释ch_idvarchar(50)否电桩标号,主键addressvarchar(50)否所属地区deta_addressvarchar(50)是详细地址distributionvarchar(20)是供电方式charging_modevarchar(50)是充电模式charging_voltagevarchar(20)是充电电压longitudedecimal(10,6)是经度latitudedecimal(10,6)是纬度project_namevarchar(50)是项目名称responsibility_unitvarchar(50)是责任单位charging_info表是用来记录充电桩的运行数据的表。充电桩在运行时,每隔固定时间会将自身的工作状态通过无线网络发送到服务器端的数据库,管理员可以通过查看运行数据来判断充电桩是否处于正常工作状态。表的具体内容如表3-4所示。表3-4 charging_info数据表字段名类型能否为空注释ch_idvarchar(50)否充电桩标号,参照chargings表的ch_idch_voltagedecimal(5,2)否充电桩运行时的电压ch_temperaturedecimal(5,2)否充电桩运行时的电流ch_ele_cudecimal(5,2)否充电桩工作温度datestimestamp否监控时间customer表记录的是用户的初始注册信息,所以比较简单,只包含了用户的账号,密码和注册时间。表的具体内容如表3-5所示。表3-5 customer数据表字段名类型能否为空注释idInt(11)否用户的id,主键namevarchar(50)否用户的账号passwordvarchar(20)否用户的密码Re_datetimestamp否用户注册时间customer_info表记录的是用户的详细信息,需要用户登录APP或者网页端的服务平台自己去完善。表的具体内容如表3-6所示。表3-6 customer_info数据表字段名类型能否为空注释c_idInt(11)否用户id,参照customer表的idc_namevarchar(50)否用户账号sexchar(1)是用户性别c_addressvarchar(50)是用户的地址c_mailvarchar(30)是用户的邮箱c_phonevarchar(20)是用户的号码balancedecimal(10,2)是用户账户余额customer_comments表记录的是用户对于管理平台的一些评论或者建议,以及管理人员对于用户评论建议的回复。表的具体内容如表3-7所示。表3-7 customer_comments数据表字段名类型能否为空注释comment_idInt(11)否评论的id号,主键customer_namevarchar(50)是用户账号parenr_idInt(11)否是回复,为回复评论的id,否则为0,参照自身的comment_idcontenttext是回复或者评论内容create_timetimestamp否日期repeatsInt(11)否评论回复数量customer_favourite表只是简单的记录一下用户所收藏的充电桩,管理员可以据此来推测用户的喜好。表的具体内容如表3-8所示。表3-8 customer_favourite数据表字段名类型能否为空注释customer_idInt(11)否用户id,参照customer表的idcustomer_namevarchar(50)否用户账号customer_chargingvarchar(50)否用户收藏的充电桩customer_trade表记录的是用户的交易情况,用户可以在服务平台上查看自己的交易记录来核对余额是否正确。由于电量的计价根据时间的不同会有所变化,高峰期会相对较贵,所以计费会依据时间和单价来定。表的具体内容如表3-9所示。表3-9 customer_trade数据表字段名类型能否为空注释customer_idInt(11)否用户id,参照customer表的idcar_typevarchar(50)否充电汽车型号pricedecimal(5,2)是电量单价duration_timevarchar(20)是充电时间trade_moneydecimal(8,2)是交易金额trade_datetimestamp否开始时间end_datetimestamp是结束时间customer_namevarchar(50)否用户账号charging_idvarchar(50)否交易电桩编号faults表记录的是充电桩出现运行故障时的故障信息,管理员可以通过查看这张表来通知行管负责人去修理充电桩。表的具体内容如表3-10所示。表3-10 faults数据表 字段名类型能否为空注释fault_idInt(11)否故障id,主键charging_idvarchar(50)否充电桩标号,参照chargings的ch_idcharging_addressvarchar(50)否故障电桩的详细地址fault_typevarchar(50)是故障类型fault_datetimestamp否故障发生时间responsible_personvarchar(50)是责任人p_phonevarchar(20)是责任人电话is_solveenum(是,否)是是否被修复trades表记录的是详细的交易信息,管理员可以分析交易信息,来找出交易密集的地区和日期。表的具体内容如表3-11所示。表3-11 trades数据表字段名类型能否为空注释trade_idInt(11)否交易id,主键charging_idvarchar(50)否电桩标号,参照chargings的ch_idcustomer_idInt(11)否用户id,参展customer的idPricedecimal(5,2)是电量单价duration_timevarchar(50)是充电时间Moneysdecimal(8,2)否交易金额Addressvarchar(50)是交易发生地址Datestimestamp否开始时间end_datetimestamp是结束时间charging_station表记录的是充电站的相关信息,因为每一个充电桩都是依附着充电站。该表记录了充电站的名称,地址,经纬度信息,区负责单位以及该充电站的充电桩数量。表的具体内容如表3-12所示。表3-12 charging_station数据表字段名类型能否为空注释station_namevarchar(50)否充电站的名字areavarchar(50)否充电站所属区addressvarchar(50)否充电站的详细地址longitudedecimal(8,2)否充电站的经度latitudedecimal(8,2)否充电站的纬度responsibility_unitvarchar(50)否充电站的负责单位charging_numint否充电站的电桩数量4 系统实现4.1 系统开发环境和安装4.1.1 系统开发环境与工具本系统的开发工具和开发环境选择如下。开发语言:Java,php开发平台:Android2.2操作系统:Windows 7开发工具:Android studio2.2,wampserver2.2,阿里云服务器4.1.2 Android环境安装(1)下载最新的Android studio从/上下载Android studio的安装包。(2)高德开发秘钥申请在/高德地图的官网注册账号,申请JS API开发资格和Android API开发资格。申请Android API开发资格的时候,需要在dos界面下进入C盘用户目录下的.android目录下,运行命令:keytool -list -v -keystore debug.keystore,其中debug.keystore是studio默认的keystore,可以换成自己生成的keystore。如图4-1所示。图4-1 秘钥指令然后按回车就会出现SHA1的MD5序列。找到序列后,在高德官网输入就可以生成开发秘钥。生成的SHA1的MD5序列如图4-2所示。图4-2 SHA1序列号4.1.3 wampserver集成环境安装(1)下载最新的wampserver集成环境安装包从/soft/detail/10636.html?ald上下载wampserver集成环境的安装包。4.2 主要功能实现4.2.1 数据库连接无论是充电桩管理平台,还是用户的使用平台,都需要连接数据库来读取或者操作相应的数据。项目使用PHP来编写后端操作。数据库连接的代码如下。require(config.php);$db=mysql_connect(HOST,USERNAME,PASSWORD);require是将已经编写好的数据库配置导入,包括服务器名,用户名,登录密码。mysql_connect是PHP的MySQL数据库连接函数,这是一种面向过程的函数,使用来修饰变量可以隐藏数据库的出错信息,防止别人利用出错信息来窃取数据库中的信息。4.2.2 动态验证码的生成在用户和管理员登录PC端时,需要输入动态验证码来验证登录,这是为了防止其他人对于用户和管理员的账号进行暴力破解。其关键代码如下。$bgcolor=imagecolorallocate($image, 255,255,255); /为一幅图分配颜色imagefill($image,0,0,$bgcolor); $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120);$fontcontent=rand(0,9);$x=($i*100/4)+rand(5,10); /生成数字的横坐标$y=rand(5,10); /生成数字的纵坐标imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); /水平地画一行字符串imagesetpixel($image,rand(0,99),rand(0,29),$point); /增加点干扰元素imageline($image,rand(0,99),rand(0,99),rand(0,29),rand(0,29),$linecolor);imagecolorallocate函数为一幅图片分配颜色,这里将图片的背景色设为白色,这样可以使验证码更加的清楚,imagecolorallocate函数将随机生成一个数字的位置和角度,rand函数则是生成一个0-9的随机数字,imagesetpixel和imageline函数是用来生成点和线的干扰元素,这样可以机器对于读片的识别变得更加困难,防止他人使用爬虫进行登录。动态验证码效果图4-3所示。图4-3 动态验证码4.2.3 用户端与服务器端数据传输在网页上使用管理平台和用户平台的时候,总是会对于数据库中的数据进行操作,而数据库是存放与阿里云服务端,这就需要在用户端和服务器之间进行数据的传输。虽然get方法速度较快,但是考虑到安全性和传输数据量的限制,post方法相对于get方法更为合适。post方法使用如下图所示:$.post(,function(data)第一个参数是服务器端使用PHP编写的处理文件,中间的括号中以键值对的形式传输数据,function(data)是对服务器端传回的数据进行相应的分析处理的响应函数。例如当登录时,输入账号和密码,点击登录用户端就会将这两个数据传回服务器,服务器搜索数据表中的数据,如果账号密码对应的用户存在,则返回状态1,否则返回状态0,这样前端可以依据返回值再进行相应的处理。4.2.4 统计图分析充电桩管理平台能够查询所有充电站发生的交易数据,为了方便管理员对数据进行分析,总结出交易量的高峰地和高峰日期,设计实现了交易数据的柱状图和圆饼图的绘制。绘图使用了一个JS的画图插件highcharts。其流程如图4-4所示。图4-4 绘制统计图流程图HTML自带的canvas画图比较繁琐,且绘制的统计图不够美观,而highcharts插件能够很好地解决这两个问题,使用该插件画图的时候,对于数据的格式有一定的要求,需要将数据库搜索的数据进行一些处理使其符合要求,处理代码如下。while($sum=mysql_fetch_array($result)$names=$sumcharging_id;$values=$sumsum;$name_str=json_encode($names);$value_str=json_encode($values);echo $name_str;echo ;echo $value_str;搜索数据库数据后,用数组存储数值名和对应的数值,输出到前端,前端使用split函数将数组拆分,并将值转为数值型。然后作为绘图函数的参数进行统计图的绘制。统计图效果如图4-5所示。 图4-5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论