版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于IPv6的物联网数据接入平台的系统设计摘要物联网发展的云端应用的数量正在增加,物联网的使用会增加接收到的信息量,如果需要分析大量信息,那么需要依赖于分布式云技术。因此,以IPv6网络建设为基础的物联网,云分析平台在未来将会是发展的核心。针对物联网节点数据的存储、展示以及对数据进一步利用的需求,设计一个基于IPv6的支持多用户、多物联网协议的公共数据平台。设计的初衷是为了方便IPv6物联网用户的数据存储、分析和显示,以帮助用户进行大规模数据信息分析,设计的实施将为IPv6物联网节点的多用户管理、控制和监测提供了一个良好的平台。所设计的物联网数据接入平台具有多用户自主申请的物联网节点密钥机制的特点,并结合了基于HTTP协议的CURL、Restful、JSON的数据传输方案。目前IPv6网络已经在高校等领域普及,那么利用好IPv6的优势,将物联网云平台结合到IPv6网络中,研发出基于IPv6的新一代物联网数据采集平台就显得十分必要了。关键字:物联网;数据接入平台;IPv6;CURL目录TOC\o"1-3"\h\u782摘要 I21281目录 III288511绪论 1134571.1课题研究的背景及意义 1260891.2国内外研究现状 189571.3研究的主要内容 2247321.4可行性分析 3206361.5论文结构介绍 3122071.6本章小结 3184752技术介绍 4217092.1IPv6协议 418202.2MQTT协议 562092.3Contiki系统 667922.4Apache+PHP+MySQL 6104282.4.1Apache 6236722.4.2PHP 735692.4.3MySQL数据库管理系统 772762.5本章小结 8116373系统设计 954693.1总体设计 9233693.2系统硬件设计 10257383.2.1传感器节点 10317253.2.26LBR边缘路由器 1240333.3系统软件设计 12112603.3.1搭建AppServ开发环境 12243433.3.2设计MySQL数据库 14167873.3.3Apache-Apollo-1.7.1搭建MQTT服务 19115543.3.4PHP客户端phpMQTT-master 21240913.4云平台设计 24107993.4.1云平台的注册 25151453.4.2云平台的登录 26128153.4.3平台用户分类 27295803.5本章小结 2744684系统总体测试 29209464.1MQTT连通性测试 29161064.2PHP操作MySQL数据库 30142654.2.1准备工作 30278964.2.2连接MySQL服务器 3136924.2.3连接MySQL数据库 32179004.3组网结构 33280374.4测试节点的连通性 33264614.4.1测试6LBR网关的连通性 33223034.4.2测试服务器的连通性 3488094.4.3测试节点的连通性 3565324.5测试数据的采集 37284744.6云平台测试 37110624.7本章小结 3813654结论 3915467参考文献 401绪论1.1课题研究的背景及意义针对海量的传感器数据无法存储和展示的需求,物联网云平台将具有不同属性功能的物体结合起来接入到统一的平台中,接着对不同的数据进行分析处理,让每个物体之间都可以互相交换信息。与传统的互联网相比,万物互联互通的设备再也不会局限于电脑、手机、电视和平板电脑等终端,物联网创造了一个新的充满智慧的世界,人们可以和任何物体进行交流。我们现在身处于一个网络纵横的时代,互联网的发展也是一日千里,IPv4让人们享受到网络带来好处的同时,也面临着一些十分严峻的问题,那便是IP地址资源的减少、安全和性能需要提高的问题,面对这些难题,紧密围绕我国颁发的文件要求,研究IPv6协议,这对于我们来说更像是一种机遇。我国作为互联网使用的大国,在当今世界,IPv4注定会被IPv6取代,而IPv6作为今后网络发展的基石,更是发展中的重中之重,虽然从IPv4到IPv6的实现需要很长的时间,可是互联网若是结合了IPv6协议,我们的生活习惯也会随之变的更好。1.2国内外研究现状(1)国外研究现状随着物联网和云平台的兴起,美国提议建立一家云计算公司,以此来促使国家生产链的发展;而就在这关键的一年里,韩国也颁发了相关文件,由政府领导率先引进了云平台的计算服务。苹果公司在2013年8月迅速推出了云计算服务——iCloud;而在当时IT的供应商CATechnologies也推出来了云存储的技术,它可以将数据保存在云平台中。而在不久,亚马逊公司推出的“AWSLoT”平台提供了可以从终端到云端处理数据的服务,他们不仅运用了MQTT的通信协议,还通过与硬件的结合创造了云端存储这一强大的功能。微软公司也不甘示弱,迅速推出了“AzureLoTPaaS”平台,主要提供了数据处理,远端监测等功能。(2)国内研究现状我国在2009年就提出了“感知中国”战略计划,不论是国家的规划,还是在“战略强国”的方针上,我国各大高校企业都加大了对物联网技术和云计算数据存储处理的研究,而在2015年时,各大物联网云平台的企业迎来了他们的黄金时代,顺利拿到融资,比如中国移动提出的oneNET物联网云平台,更是一种基于IPv4的做后台管理的系统,可以提供开发、数据存储处理的功能。1.3研究的主要内容设计的初衷是为了方便IPv6物联网用户的数据存储、分析和显示,以帮助用户进行大规模数据信息的分析,因此,设计了一种基于IPv6的物联网数据接入平台。设计时所用的开发环境有PHP、MySQL和Apache等。整个设计依托于IPv6网络,以Apache服务器为基础,利用MySQL建立数据库存放数据信息,再用PHP和HTML语言进行系统平台的设计,AJAX调取数据库数据,在网页页面上进行曲线的绘制。平台所涉及的数据感知、传输、存储和展示均以IPv6网络为核心,通过MQTT协议将数据发送到客户端,客户端再以Restful的JSON格式将数据上传至物联网平台。同时,Web服务已经移植到了互联网的服务器设备上,客户端可以使用浏览器来控制和监测远程的服务器设备,设计的结构如图1.1所示。图1.1结构设计(1)IPv6物联网节点数据的存储和展示建立MySQL数据库进行传感数据的存储,用PHP进行接口的设计开发,前端框架使用AJAX和BootStrap。(2)IPv6物联网数据平台的传输机制提出基于HTTP协议的MQTT、Restful、JSON的数据传输方案,并通过密钥进行验证。(3)IPv6物联网数据平台的管理机制提出一种多用户并由用户自主申请的物联网节点密钥机制,进行传感节点的认证。1.4可行性分析(1)技术可行性与当前主流的物联网平台进行调查比较发现市场出现率最多的是Yeelink物联网云平台,这种云平台基于IPv4网络,一般会使用开源硬件Arduino和树莓派进行设计,并且Yeelnik物联网云平台不能自主选择查看历史数据,采集的数据也不显示路径,整个平台的数据传输效率也偏低,不足之处也很明显。针对以上的不足,在实现IPv6物联网数据接入平台的数据传输过程中利用JSON的数据传输格式,这种格式简化了机器的解析和创建,并将网络的传输效率也大幅度提高,再利用MySQL建立数据库来存储历史数据,设计的数据接入平台在纯IPv6环境下运行,使得IPv6物联网数据接入平台具有更高的安全性。设计所用到的技术都已经在大学四年里有相应的接触,实现平台的设计时就有了一定的基础,在当前条件下可以实现。(2)经济可行性设计所用的到的硬件材料有传感器(DHT11传感器、水滴传感器、MQ-2型气体传感器等)、6LBR边缘路由器等、整个硬件的开发成本都在500元以内,在自己可以负担的范围之内。(3)组织可行性利用兰州工业学院信息中心为设计提供了IPv6环境,电子信息工程学院大学生实践基地给予的便利条件进行测试,指导老师对技术的悉心指导,所设计的IPv6物联网数据接入平台可以成功实现。1.5论文结构介绍将论文的章节结构进行编排。第1章介绍毕业设计的研究内容并进行分析。第2章介绍设计时所用到关键技术和重要概念。第3章介绍毕业设计的总体规划、硬件的设计方案和软件的实现过程。第4章对基于IPv6物联网数据接入平台的硬件和软件进行综合的测试。最后,对论文进行归纳和总结。1.6本章小结介绍了毕业设计的背景和国内外对物联网云平台发展,对毕业设计的可行性进行分析发现设计贴合实际具有研究价值,明确了设计的研究内容,并对论文的结构进行分析。2技术介绍在基于IPv6的物联网数据接入平台的设计过程中,前端框架使用AJAX和BootStrap来设计,后端建立MySQL数据库进行传感数据的存储,用PHP进行接口的设计开发,通讯方式为基于MQTT协议的POST方式,设计的技术架构如图2.1所示。图2.1技术架构2.1IPv6协议IPv6的全称是互联网协议第6版,有128bit的地址长度,地址由字段分开,这样的字段一共有8个,字段与字段之间用冒号分开,每个字段中有16位的二进制数,它最大的改变就是将IP地址的空间进行扩大,报头如图2.2所示。图2.2IPv6基本报头基本报头的版本为6并且拥有4bit的地址长度;业务流量等级主要用于服务的质量,拥有8bit的地址长度,一般情况下的默认值为0;流标签用来判断是否属于同一个业务流的报文,拥有20bit的地址长度;载荷长度的地址长度为16bit,这个长度包含了扩展头部;下一报头用于指出IPv6基本报头后应该接有哪一个类型的扩展报头,拥有8bit的地址长度;跳数限制拥有的地址长度为8bit,再每次对报文进行转发时会将字段减去1,如果减到0将被舍弃;源地址拥有128bit的地址长度,用于识别报文的来源;目的地址也拥有128bit的地址长度,用于识别报文的目的。2.2MQTT协议MQTT协议的英文全称是MessageQueuingTelemetryTransport(消息队列遥测传输协议),它的网络层级如图2.3所示。图2.3MQTT的网络层级MQTT协议的设计是为了提高网络的服务质量并减少了一些不必要的网络冗余。它的运行环境主要是PHP+Apache,Broker是服务器,它可以是电脑,也可以是一个APP,Broker主要存在于Publisher和Subscriber之间从客户端获取网络和应用程序连接信息并进行处理并转发给订阅者;MQTT协议发布者称之为Publisher,它会向Broker发送订阅信息,也可以订阅其他客户端发布的信息或者取消订阅信息;MQTT协议的订阅者称之为Subscriber,它通常会订阅信息并接收Broker发布的信息,通常情况下,Publisher和Subscriber都可以作为是客户端使用。MQTT是一种开放的协议,它的初衷就是专门为降低功耗而设计的,不论是阿里云、百度云还是其余的物联网平台都已经全面支持MQTT协议,可见它也有着很大的优势。(1)MQTT异步交换数据,类似于发送信息。与HTTP同步交换数据不同,在HTTP同步模式下,您需要等待其他参与者的响应,但是在MQTT异步模式下仍然可以发送信息而无需等待其他参与者的确认。这样的通信模式变得更加的简化。(2)MQTT适用于小规模传输,是轻量级的,适用于低带宽和小数据量的应用,可以满足互联网中许多特定的需要。(3)MQTT和MQ允许不稳定的网络,并且可以解决连接失败之类的问题,而无需其他代码。2.3Contiki系统Contiki系统是一个适用于互联网的嵌入式网络的操作系统,它的代码是开源的,有很多的程序开发员都会将自己的代码贡献出来以供后人去学习,这样让Contiki变得更受欢迎;它资源的占用情况非常小,对于资源紧缺的微型控制器和电脑来说都十分适用,平常只需要几K的内存就可以满足编程环境的需要,它利用C语言去开发,对硬件的要求不高并且在内部也会自建一个TCP/IP的协议栈以便于开发者使用;它还具有高可移植性,可以轻松移植到互联网络中。因此,在科研和设计方面备受关注。Contiki操作系统广泛适用于物联网中,因为他有以下的特点:(1)在Contiki的使用时,所有系统中的任务都是基于事件的模型,并且许多任务共享了相同数量的存储空间,在这种情况下,既节省了代码也节省了RAM,因为Contiki系统上的应用程序最多使用几K的闪存和RAM就可以实现IP协议、UDP协议、TCP协议的功能。(2)Contiki减少了消耗,允许网络支持IPv4和IPv6两个不同的协议。系统所使用的uIP协议是为了整合网络设备有限的硬件资源而特别开发的,使用uIP协议不仅可以完全实现TCP/IP协议,还可以满足交互的标准。(3)Contiki可以按照自身需要任意修改代码而不用递交任何的费用,并且支持多个开发平台。它还集成了用于模拟无线传感器网络的工具,用于调试命令的工具,性能分析以及基于闪存的工具。因此,在业内被广泛使用于各个领域并在不断的创新。(4)Contiki操作系统无需额外的硬件或设备就可以可启动网络,节约能源。2.4Apache+PHP+MySQL2.4.1ApacheApache的英文全称是ApacheHTTPServer,由不同的测试者的经过不断的测试,它可以运行在绝大多数的计算机平台上,源自于它的使用简单和安全性能高,最终也成为了是世界上最受欢迎的Web服务器软件。如果将它和平常的Web服务器做比较可以发现它的主要特点如下。源代码完全是公开的,可以通过短时间的学习、按照自身的喜好和需要来修改代码以实现服务器的功能;跨平台应用,Apache可以运行在几乎所有的windows和Linux系统上;采用模块化的设计去实现需要的功能,运行稳定,节省了开发的时间,提高了设计的效率;常见的网页编程语言都可以在Apache上完成设计,这样使得Apache的应用场景更加广泛。Apache在提供记录和监测服务器的运行状况上具有极大的灵活性,Web可以随时监测服务器的运行状态,开发人员也可以自己定义日志文件以满足自己的需要。2.4.2PHPPHP的英文全称是PersonalHomePage,它作为计算机能够读懂的语言,人们就可以通过它与计算机进行交互,并且PHP语言的语法与C语言、C++语言、Java语言等相似,它主要区别于HTML这种静态的网站成为了一种嵌入在HTML文档中的脚本语言,PHP的发展十分迅速,在开发者之间备受欢迎,最主要是离不开它的自身优势,具体的特点如下。代码是开源的,开发者可以根据自身需要在互联网上获得源代码,通过修改以后进行使用,并且PHP代码的语法汇集了当代新型的编程语言的语法使它本身也变得十分简单,更加容易上手;不仅安全性高,而且还与很多主流与非主流的数据库相互支持;代码的执行速度快,并且占用的内存也很小;跨平台应用,PHP可以运行在几乎所有的windows和Linux系统上;2.4.3MySQL数据库管理系统MySQL用于建立数据库,主要负责网络数据的管理,通过将MySQL数据库应用到网站设计中,MySQL数据库的建设规模得以扩大,从而增加了信息的使用范围。具体的特点如下。MySQL软件的数据安全机制是完善的。用户可以创建数据库并按管理员设置的权限中设置自己的操作权限。没有操作权限的用户无法查看或更新数据库数据。因此,MySQL软件通过指定用户名和密码以及数据检索特权来确保数据库数据的安全性;MySQL数据库主要用C语言和C++语言进行,具有高移植性,能够在不同的系统平台上工作,并且MySQL优化了SQL的算法,提高了数据共享的效率。MySQL数据管理系统程序占用内存资源小,但是数据库中的数据类型十分丰富,满足了程序员的开发需求,并且代码是开源的。2.5本章小结介绍了基于IPv6的物联网数据接入平台设计中所用到的相关技术,利用学校的图书馆和互联网广泛地查阅IPv6网络、MQTT协议、PHP+MySQL和Contiki系统等内容的相关文件资料,通过学习加以分析与研究。本章内容虽然是以介绍技术为主,但是确是整个设计的基石,只有将这些技术认真学习才可以更好的完成毕业设计。3系统设计3.1总体设计设计的初衷是为了方便IPv6物联网用户的数据存储、分析和显示,以帮助用户进行大规模数据信息分析。通过查找资料发现如果使用PHP语言编写网页程序并且使用MySQL建立数据库保存数据应该是当下网络开发中最节省资源的一种组合,所以,在此次的设计中用到开发环境为PHP+MySQL+Apache。以Apache服务器为基础,利用MySQL建立数据库存放数据信息,再用PHP和HTML语言进行系统平台的设计,最后用AJAX调取数据库的数据,在页面上进行曲线的绘制。系统所涉及的数据感知、传输、存储和展示均以IPv6网络为核心,利用6LoWPAN和各个节点之间的自组网将采集到的数据上传至6LBR网关,而6LBR网关可以给传感器节点和服务器分配IP地址,这样就可以随时连接传感器节点并将所采集到的数据上传到服务器的数据库,服务器通过MQTT协议将数据发送到客户端,客户端将信息以Restful的JSON格式将数据上传至物联网云平台,客户端即可借助浏览器对远端的服务器设备进行控制和监测,整个系统的设计如图3.2所示。图3.2系统整体设计3.2系统硬件设计在基于IPv6的物联网数据接入平台的硬件部分主要设计了3个节点和1个6LBR网关,每个节点可以采集温湿度的值、烟雾情况、是否有水和是否有人的信息,通过自组网将信息上传到服务器的数据库中并通过OLED液晶显示屏显示有关的信息,整个硬件部分也设计了蜂鸣器,每当采集到的数据出现异常时,节点中所设计的蜂鸣器发出声音,提醒相关的人员,系统的硬件如图3.3所示。图3.3系统硬件实物3.2.1传感器节点(1)温湿度传感器生活中我们关注度最多的就是温度和湿度,因为在一些特定的环境下温湿度的把控非常严格,比如在实验室、信息机房都需要对温湿度进行24小时的实时监测,所以我选用了DH11温湿度传感器来测量温湿度,图3.4是DH11温湿度传感器的电路原理图。图3.4DH11温湿度传感器电路(2)烟雾传感器我选用的是MQ-2型气体传感器,使用烟雾传感器可以防止发生火灾或者迫使人们在火灾发生前采取保护措施,这样可以减少一些不必要的损失并且可以确保人们的安全,图3.5是气体传感器的电路图。图3.5烟雾传感器电路(3)水滴传感器在电子产品的使用过程中需要防止水滴溅在上面而造成短路、电子元器件损坏等问题,因此我选用了LM393电压比较芯片,如图3.6所示,利用DOTTL数字输出检测是否有雨水。图3.6LM393电路(4)人体红外感应模块人类和动物都可以发出红外线,但是肉眼是无法观察到红外线的,所以为了检测红外线,人们开发了人体红外感应模块,它的原理图如图3.7所示。图3.7人体红外感应电路3.2.26LBR边缘路由器6LBR的实物如图3.8所示,6LBR网关通过现有RPL网络中的路由连接IPv6和6LoWPAN,作为6LoWPAN网关,它在整个网络中都扮演着自适应的角色。图3.86LBR实物连接3.3系统软件设计3.3.1搭建AppServ开发环境在google浏览器上输入网址,出现了下载窗口,如图3.9所示,单击“DOWNLOAD”选项进行下载,在图3.10所示窗口中可以查看Apache、PHP和MySQL的版本,我选择下载了AppServ8.0.0软件。图3.9AppServ下载窗口图3.10AppServNetwork窗口将AppServ安装完成后会出现AppServ的安装完成图,如图3.11所示,此时我们可以勾选开启Apache和MySQL,这样计算机会自动启动Apache和MySQL,单击“Finish”就完成了AppServ的安装过程。图3.11AppServ的安装完毕在安装完成后进入C:\AppServ文件夹下查看安装情况如图3.12所示。图3.12浏览AppServ的文件夹3.3.2设计MySQL数据库(1)打开MySQLCommandClient输入在安装AppServ软件时设置的MySQL登录密码,输入“createdatabaseshuju;”的命令建立数据库,然后再用“showdatabases”的命令查看所建立的数据库,如图3.13所示。图3.13建立数据库“shuju”(2)将数据库建立完成后,开始建立数据表,它的排布方式类似于行列的方式。根据我的设计需要,我主要建立了4个表,如图3.14所示,分别是nodecontrol、nodedata、nodeinfo和user;图3.14数据库的表单①nodecontrol表nodecontrol表中有节点序号id、节点名称nodeName、指示灯ctlLED和蜂鸣器ctlBEEP,所以我设计了4个字段,nodecontrol的信息如表3.1所示。表3.1nodecontrol表的内容列名数据类型属性是否允许NULL值说明idint(13)UNSIGNED否节点数量nodeNameint(15)否节点名称ctlLEDint(15)否指示灯的控制数据ctlBEEPint(15)否蜂鸣器的控制数据根据表3.1中的内容创建nodecontrol表的SQL语句如下。②nodedata表nodedata表主要用于存放传感器节点采集到的数据信息,例如温度、湿度等,如表3.2所示。表3.2nodedata表的内容列名数据类型属性是否允许NULL值说明idint(13)UNSIGNED否节点数量nodeidint(13)否节点序号tempfloat是温度数据humifloat是湿度数据create_timedatatime自动更新是上传数据时间根据表3.2的内容创建nodedata表的SQL语句如下。③nodeinfo表nodeinfo表主要是为了用户上传节点数据所设计的数据表,在生活中每位用户都会在不同的地区采集不同的节点数据,为了方便用户,使用户可以自行增加节点、自行上传节点数据,所以设计了nodeinfo表。nodeinfo表包含了传感器节点的位置,传感器的类别等内容,如表3.3所示。表3.3nodeinfo表的内容列名数据类型属性是否允许NULL值说明idint(13)UNSIGNED否节点数量nodeNamevarchar(50)否节点名称nodeLocationvarchar(255)否节点位置sensorName1varchar(255)是传感器名称1sensorName2varchar(255)是传感器名称2uidint(11)是用户序号根据表3.3的内容创建nodeinfo表的SQL语句如下。④user表user表主要用来管理用户,用户通过注册将自己的用户名、密码和邮箱的信息上传到数据库中,系统会为每位用户随机生成密钥来保证每位用户的信息安全,具体user的内容如表3.4所示。表3.4user表的内容列名数据类型排序规则属性是否允许NULL值说明uidint(13)否用户序号usernamevarchar(255)utf8_general_ci否用户名passwordvarchar(255)utf8_general_ci否密码nodekeyvarchar(255)utf8_general_ci否随机密钥emailvarchar(255)utf8_general_ci否用户邮箱regatedatetime自动更新否登录时间banint(11)否是否禁用adminint(11)否是否为管理员根据表3.4的内容创建user表的SQL语句如下:将数据表创建完成后,我用NavicatPremium建立模型,可以直观的看出各个数据表之间的关系,如图3.15所示。图3.15NavicatPremium数据表模型3.3.3Apache-Apollo-1.7.1搭建MQTT服务MQTT基于TCP协议,主要由mqtt-fuse和mqtt-paho两种方式来实现,ApacheApollo类似于MQTT,也是一个服务器,主要用于消息的请求转发,ApacheApollo的缺点是管理员操作界面不太友好,从Apache的官网上下载apache-apollo-1.7.1.zip。如图3.16所示。图3.16创建broker创建完broker之后就是要运行apollo,进入C:\apache-apollo-1.7.1\broker\bin目录下,执行如下命令:apollo-broker.cmdrun,需要停止服务器时直接关闭终端即可,或者使用如下的方式,./apollo-broker-servicestart//{start|stop|restart|force-stop|status},不会占用终端,导致终端关闭时服务停止,初始化服务器如图3.17所示。图3.17初始化服务器初始化服务器后,第二次启动服务器时需要先执行apollo-broker-service.exe启动服务,再执行apollo-broker.cmdrun启动实例,启动服务器如图3.18所示。图3.18启动服务器初始化以后apache-apollo-1.7.1目录下会生成broker配置文件夹,如图3.19所示,其中etc中包含相关配置文件。图3.19broker配置文件夹在浏览器进入web管理页面,基于apollo的安全机制,Web管理页面只可用和localhost登录,登录页面如图3.20所示,无法使用tcp的方式共享给局域网内用户。局域网内用户只有发布和订阅的功能,不具备平台的管理权限。图3.20Web登录页面3.3.4PHP客户端phpMQTT-masterphpMQTT是一个开源的客户端代码库,能够很方便的将mqtt集成到php开发工程中。它的诞生打破了PHP_SAM——唯一基于PHP的MQTT客户端的局面。ProjectSAM是一个用于多个不同pubsub消息传递系统的PHP库,MQTT只是其中之一。然而,它的弊病是非常严格的许可机制、缺乏维护和相当多的bug。以前,如果想使用MQTT和PHP,则没有其他选择,现在AndrewMilsted(@bluerhinos)创作了一种替代方案:phpMQTT。phpMQTT只是在初级阶段,目前只发布功能齐全,有一些错误是解决订阅,但是对于那些已经使用PHP_SAM它提供了一个清新简单的方法开始使用MQTT——组成一个文件和一些简单的功能。发布消息(由AndrewMilsted编写)的示例如图3.21所示:图3.21消息发布与PHP_SAM不同,任何基本掌握C风格语言和MQTT的人都可以直接使用。phpMQTT-master是开源方案,下载地址/bluerhinos/phpMQTT,主要的PHP文件有3个,phpMQTT.php为公共部分,其中定义了工程所需的全局变量和函数,所使用到的函数如图3.22所示。图3.22使用函数publish.php实现socket的创建,并发送给订阅号信息,只需创建一个客户端,不管发布订阅都用这一个客户端实例,实例跟随工程存在内存中,不管发布还是订阅先看这个实例存在不存在,如果存在就直接使用,不存在就创建一个实例,如图3.23所示。图3.23创建客户端实例subscribe.php实现消息订阅,接收一个信息后退出,我将其改为了死循环监听,如图3.24所示。图3.24消息订阅在操作时遇到了内存耗死的问题,在phpMQTT.php文件中,链接不上MQTT的时候,图3.25中的代码会出现错误:图3.25代码错误错误分析:链接不到MQTT,应该加一个判断,修改后的代码如图3.26所示。图3.26修改代码3.4云平台设计基于IPv6的物联网数据接入平台根据角色将登录人员分为管理员和普通用户,普通用户可以更改与自己相关的信息,不能操作其他用户,他可以对节点进行添加、删除、编辑和检查并对节点所采集的数据进行上传,当普通用户上传完数据后可以从绘制的曲线进行数据分析。管理员用户由后台进行设置,管理员页面可以显示所有用户添加的节点和采集到的数据总量,管理员也拥有可以删除或停用用户的权限。3.4.1云平台的注册平台的注册界面如图3.27所示,包含了需要注册用户名、密码和邮箱,用户名支持汉字、字母和数字,长度在3至15个字符之间,密码不得少于6位,邮箱必须需要满足规范。图3.27用户注册界面管理员的账号是由后台设定的,普通用户在第一次登陆基于IPv6的物联网数据接入平台时需要注册自己的账号,平台注册流程如图3.28所示。图3.28平台的注册流程3.4.2云平台的登录平台的登录界面如图3.29所示。普通用户按照规定注册好自己的信息后输入注册时的用户名和密码即可登录平台进行使用。图3.29用户登录界面用户如果想要进入平台查看数据则需要通过登录界面,平台的登录流程图如图3.30所示。图3.30平台的登录流程图3.4.3平台用户分类管理员作为平台的维护和管理,他可以管理用户的信息,统计所有用户上传的数据,并对节点进行管理等,管理员的功能如图3.31所示。图3.31管理员功能普通用户作为平台的主要使用者,他可以管理节点数据,并可以修改自己的信息等,普通用户的功能如图3.32所示。图3.32普通用户功能3.5本章小结介绍了毕业设计的整体框架,硬件的选用,包括了传感器和路由器的选用,在软件方面,介绍了AppServ系统的开发环境,从安装到使用,还介绍了在设计时用到的数据库,还介绍了MQTT的服务器搭建以及使用PHP操作MQTT,介绍了基于IPv6的物联网数据接入平台的设计思路,主要面向普通用户和管理员用户,角色的功能也不同。4系统总体测试4.1MQTT连通性测试系统的数据交互在后台进行,无法直接查看,直接执行publish.php文件查看MQTT服务器的连通性,phpMQTT-master需要PHP7.0的支持,publish.php执行结果如图4.1所示。图4.1publish.php执行结果可以看到,在org.eclipse.paho.ui.app-1.0.2中,订阅的主题有了更新,说明MQTT服务器的连通性没有问题如图4.2所示。图4.2测试MQTT服务器的连通性4.2PHP操作MySQL数据库4.2.1准备工作在通常情况下,由于MySQL不再是PHP的核心函数,PHP不会再自动支持MySQL,所以要使用MySQL函数必须让用户在PHP扩展函数中开启MySQL函数库,方法如下。打开php.ini的文件;找到代码行“;exextension=php_mysql.dll”和“;extension=php_mysqli.dll”将语句前的“;”去掉并保存文件,如图4.3所示;图4.3修改php.ini重启Web或Apache服务器完成操作。配置完成后在浏览器中可以输入“:8080/phpinfo.php”来检查配置是否成功,如果在网页中显示的PHP的配置开发环境中有MySQL的项目,则说明准备工作已经完成,PHP支持MySQL数据库,如图4.4所示。图4.4php配置开发环境4.2.2连接MySQL服务器MySQL数据库用于保存数据,如果PHP想要操作数据库,则需要连接到MySQL服务器,只有连接到服务器PHP才可以对数据库保存的数据进行处理,在这个过程中用到了“mysql_connect()”函数,所用到的语法如果连接MySQL服务器成功,则得到执行结果如图4.5所示。图4.5成功连接到MySQL服务器4.2.3连接MySQL数据库将PHP连接到MySQL服务器后,就可以对服务器的数据库和数据表进行维护,因此需要连接到MySQL数据库,在这个过程中我们用到了mysql_select_db()函数,所用到的语法是:如果连接MySQL数据库成功,则得到执行结果如图4.6所示。图4.6成功连接到MySQL数据库4.3组网结构设计使用自己建立的服务器,按照图4.7组件网络。图4.7组网结构4.4测试节点的连通性4.4.1测试6LBR网关的连通性根据设计的组网结构,6LBR网关的地址为2001:da8:c004:1::100,使用ping命令发现6LBR网关连通如图4.8所示。图4.86LBR网关ping通4.4.2测试服务器的连通性使用ipconfig查询服务器的地址,如图4.9所示。图4.9查询服务器地址服务器的地址为2001:da8:c004:1::100,使用ping命令发现服务器连通如图4.10所示。图4.10服务器ping通4.4.3测试节点的连通性节点一的地址为2001:da8:c004:2:212:4b00:5af:81a1,使用ping命令发现节点一连通如图4.11所示。图4.11节点一ping通节点二的地址为2001:da8:c004:2:212:4b00:5af:80f0,使用ping命令发现节点二连通如图4.12所示。图4.12节点二ping通节点三的地址为2001:da8:c004:2:212:4b00:5af:8123,使用ping命令发现节点一连通如图4.13所示。图4.13节点三ping通4.5测试数据的采集利用上位机对数据进行采集,打开测试软件运行代码,在输入节点编号、服务器地址和秘钥后,单击“开始采集”就会对节点的传感器数据进行采集,如图4.14所示。图4.14上位机采集数据数据在采集界面可以对温湿度进行报警阈值的设置,如图4.15所示。图4.15报警参数设置4.6云平台测试在登录云平台后经过测试软件采集传感器数据,传感器节点列表界面如图4.16所示,在传感器节点列表界面可以查看节点的名称,每个传感器节点所采集的数据都会被绘制成曲线,用户可以根据曲线来分析数据,用户也可以拖动下拉滚动条查看节点所采集到的所有数据。图4.16传感器节点列表在云平台上可以对原始数据进行查询,如图4.17所示,可以查看到节点处的传感器所采集到的所有数据,所有采集到的数据可以自动编号,这样可以方便对数据的查询,用户还可以以节点编号、传感器的类型以及采集数据的时间进行排序,也可以根据传感器的采集值进行查询。图4.17采集数据查询4.7本章小结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 依法执教与师德红线教师培训讲稿
- 《快乐泳池》美术教育绘画课件创意教程教案
- 审计专业技术资格(初级)考试大纲解读与重点(完整版)
- 公路水运工程试验检测考试交通工程易错题本(完整版)
- 公路水运工程试验检测专业技术人员职业资格公共基础真题汇编(带答案)
- 从心开始学会连接-大学新生人际沟通第一课
- 人工智能在证券投资组合中的应用
- 保险AI在智能客服中的技术挑战
- 2026年工业互联网平台分布式ID生成方案
- 2024年湖南湘潭韶山职业学院高职单招职业技能考试模拟试卷附完整答案详解(网校专用)
- 家庭经济困难学生认定申请表
- 2024年管道燃气客服员(中级)技能鉴定考试复习题库(含答案)
- AQ 2047-2012 水泥工厂筒型储运库人工清库安全规程
- (新版)铁路机车车辆制动钳工(中级)职业鉴定考试题库(含答案)
- 人体艺术欣赏
- 压滤机安全操作规程
- 续新三国志英杰传攻略
- 毛主席长征故事
- 电梯维修完工验收表模板
- GB/T 29678-2013烫发剂
- GB/T 10546-2013在2.5 MPa及以下压力下输送液态或气态液化石油气(LPG)和天然气的橡胶软管及软管组合件规范
评论
0/150
提交评论