物联网服务平台的设计和研究毕业论文
2020-04-02 11:23:15
摘 要
作为21世纪一场新的工业革命,我们目睹了物联网应用最近几年的迅猛发展。随着宽带网络的普及,无线传感网和无线通信的飞速发展,加上传感器、通信芯片和单片机技术的提升和价格的降低,使得物联网技术越来越成熟,让物联网应用从概念到真正融入到我们的日常生活中。物联网的感知、传输、平台与应用,是物联网应用实现的技术关键。未来大量的传感器、连接会对上层平台与应用带来实时性要求高、连接不可靠等挑战。由于 Web技术具有很好的跨平台性能并且易于开发,本文采用 Nodejs和 MongoDB等 Web相关技术和 Arduino开源电子原型平台,设计和实现了一个简易的传感器数据的实时监测和控制的物联网服务平台,解决了物联网平台的一些共性需求,具有一定的实用性。
关键字:物联网平台;Nodejs;MongoDB;Arduino
Abstract
As a new industrial revolution in the 21st century, the development of the Internet of Things industry is obvious to us. With the popularization of broadband networks, the rapid development of wireless sensor networks and wireless communications, coupled with the advancement of sensors, communication chips, and single-chip microcomputer technologies, and the reduction in prices, the Internet of Things technology has become more and more mature, and the Internet of Things applications have truly entered our Everyday life. The perception, transmission, platform, and application of the Internet of Things are the key to the realization of the Internet of Things. In the future, a large number of sensors and connections will bring challenges such as high real-time requirements and unreliable connections to upper platforms and applications. Because Web technology has good cross-platform performance and is easy to develop, this article uses web-related technologies such as Nodejs and MongoDB and Arduino open source electronic prototype platform to design a simple real-time monitoring and control of sensor data for Internet of Things service platform. The solution to the common needs of the platform has a certain degree of practicality.
Key Words:Internet of Things platform;Nodejs;MongoDB;Arduino
目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1 研究背景及意义 1
1.2 国内外研究现状 2
1.3 Web技术与物联网 2
1.4 论文的主要研究内容 4
1.5 论文的组织结构 5
第2章 物联网平台相关技术 6
2.1 JavaScript与物联网 6
2.2 Node.js技术 6
2.2.1 Google V8引擎 7
2.2.2 Nodejs简介 7
2.2.3 Nodejs核心思想 7
2.3 MongoDB数据库技术 9
2.3.1 MongoDB数据库概述 10
2.3.1 MongoDB数据库适用场景 10
2.4 REST服务架构 11
2.5 Arduino开源电子原型平台 13
2.5.1 Arduino概述 13
2.5.2 Arduino的优势 14
2.6 本章小结 14
第3章 物联网服务平台需求分析与总体设计 15
3.1 平台需求分析 15
3.2 系统的总体设计 16
3.3 服务器与客户端的通信 17
3.3.1 应用数据传输协议 17
3.3.2 应用数据传输格式 17
第4章 物联网服务平台的详细设计与实现 19
4.1 Node服务器的实现 19
4.2 RESTful API 21
4.3 Arduino硬件端接入 24
4.4 客户端的设计 26
4.4.1 前端开发技术基础 27
4.4.2 用户管理模块设计 27
4.4.3 图表展示查询模块设计 30
4.4.4 智能灯光模块的设计 32
4.4.5 传感器阈值报警功能模块设计 33
4.4.6 用户实时交流模块的设计 34
4.5 本章小结 36
第5章 总结与展望 37
5.1 全文总结 37
5.2 展望 37
参考文献 39
致谢 41
第1章 绪论
1.1 研究背景及意义
物联网( Internet of Things,IoT)一词,是由美国麻省理工学院 Auto- ID中心主任 Kevin Ashton,在1999年进行 RFID( Radio Frequency Identification)研究时所提出来的一个概念[1]。顾名思义,物联网就是给我们身边的每个东西,比如各种家电,传感器,当然也可以是我们自己,都添加上唯一识别码,各个物品之间通过事先约定好的通信协议,通过互联网进行连接并相互分享数据。物联网的出现彻底改变了人与机器,机器与机器之间的关系,让我们与机器之间的沟通变得更加简单方便,机器与机器之间通过各种网络接口进行通信和交流、协同工作( Machine to Machine,M2M)[2],就可以完成环境监测、控制和人机交互等功能,甚至可以连接上更大的网络,实现真正的全民互联。物联网通过部署一堆小型廉价又强大的计算机在我们身边,通过启用物联网的应用软件拓展了我们居住的世界。简而言之,物联网设备可以远程控制,网络所有者将始终能够检查其自主运行状况[3]。
物联网最早的实践应该是从1990年施乐公司的网络可乐售卖机开始,它可以监视可乐机里面可乐的数量和冰冻情况,这是基于早期普适计算( Ubiquitous Computing)理念的物联网技术了[4]。从这开始物联网进入我们的日常生活,此后各个国家开始制定相应的物联网发展战略,我国也在2009年提出了感知中国的战略计划[5],并写入了政府工作报告,被列为国家战略性新兴产业。据美国权威机构 Forreste的展望[6],到2020年,物联网将成为一个上万亿的产业项目,这是一个怎样的概念,就拿我们熟悉的互联网相比,它的规模要比互联网大30倍。以物联网为核心的信息技术被誉为下个数字时代的浪潮,可连接互联网设备的数量,在2011年时已经超越了地球总人口数,这些设备包括各种各样的传感器、智能家电、工厂机器以及常用的电子设备等。以往,数据一般是通过人力输入到计算机,现在多半是由设备直接提供数据给另外一个设备。高德纳公司在2014年发布的《物联网未来发展报告》中指出[7],2020年全球连接到互联网物联网设备预估会增加到260亿个。思科公司的预测更加乐观[8],它预计到2020年全球将会有超过500亿的物联网设备连接至互联网,这时候可能将实现真正的全民互联。
目前物联网涉及的领域很多,比如智能电力系统、智能家居、智能公共交通、智能物流管理、环境监视、生物医疗等等[9]。物联网的进步离不开我们每个人的努力,如何让我们每个人都能用上物联网开发自己创意产品,让物联网真正融入我们的生活,这是一个值得考虑的问题。一个简单易用更加开发的物联网服务平台显得尤其重要,让我们每个爱好动手的人化身创客,去释放自己智慧和创新能力,创造出更加丰富的物联网应用。
物联网的感知、传输、平台与应用,是物联网应用实现的技术关键。根据数据的传输方向,可以将物联网应用分成感知层,服务层,和展现层[10]。感知层用来采集各种传感器设备的数据,服务层处理上下两层的各种命令请求,展现层用来可视化用户操作,展示各种传感器数据。通过将物联网应用的共性部分抽象成一个平台,从传感器的接入,服务到数据的展示,提供一个解决方案。因此,本文设计的简单物联网服务平台能帮助私人用户快速搭建他们的私人物联网应用,并且方便他们进行二次开发,具有一定的现实意义。
1.2 国内外研究现状
在过去的30年中,物联网已经从一个小的研究网络指数增长到全球普遍存在的网络,为超过10亿的用户提供服务。物联网即将成为下一个互联网浪潮已经是一个不争的事实, 国内外各大小公司都想借助物联网的风口再起飞一波,将物联网作为一个至关重要的战略投资。从美国奥巴马总统的智慧地球畅想到欧盟的 e- Europe、 i2010- Initiative等计划,再到日本的 U- Japan和 I- Japan战略[11],各个国家都在大力推进物联网的发展。作为我国物联网发展的基石,中国科学院的相关研究所在1999年就开始了无线传感器网络的研究,我国政府在“十二五”规划中明确指出要大力发展物联网行业,这给物联网的发展营造了绝佳的发展环境,物联网对于各个国家在科技领域刺激经济增长发挥着重要作用[12]。
物联网服务平台目前还在发展阶段,但是通过物联网服务平台进行传感器数据的实时监测和控制的商业价值日益凸显。国内外许多大公司都在纷纷推出自己的物联网平台来争抢这个黄金市场,著名的外国云平台有 AWS IoT,IBM Watson,国内的物联网云平台则有阿里物联网套件和中国移动的 OneNet平台。在2017世界移动大会上,我国三大运营商纷纷发布自己的物联网开放平台[13],又一次将物联网推至业界关注的热点。物联网平台现在正处于发展的初级阶段,三大运营商纷纷与自己的合作伙伴推出相应的物联网云平台,希望抢占物联网平台的发展先机。随着物联网进入我们的日常生活到完全释放它的潜力,还有许多需要解决的问题,为了让设备和应用程序之间的交互变得更加容易和安全,并使用特定的方式,我们需要一个通用开放的标准来保证可拓展性和灵活性。随着物联网的大规模应用,物联网服务平台作为物联网体系中其重要的组成部分,还有很大的发展空间。
1.3 Web技术与物联网
Web技术主要用来开发互联网应用,分为Web服务器端技术和Web客户端技术。通过 WEB技术可以开发相应的 WEB程序,顾名思义,WEB应用程序就是通过 Web访问的应用程序,这种基于网页开发的应用程序最大的益处就是不需要安装其他软件,只需要用浏览器访问相应的网址即可完成相应的操作。
基于 Web技术的物联网被称为万维物联网( Web of Things,WoT),万维物联网是物联网的一个特殊分支,由于Web服务,识别技术,无线网络的最新进展,使得通信功能和处理能力可用于越来越小的封装中[14],并成功应用于各种嵌入式设备中,让我们更容易进入物联网的开发领域。万维物联网建立在开放的物联网和 Web标准之上,万维网的简单性和开放性,以及它的标准( URL、 HTTP、 HTML、 JavaScript等)使其成为了现在我们所熟知的万维网。通过Web技术开发的网页使得全世界的人们都能阅读,只需要一个能上网的浏览器,不需要安装其他任何软件。随着JavaScript等Web语言的不断发展,使得网页应用程序客户端和服务器端都可以使用同样的语言进行开发,这极大的简化了物联网应用的开发门槛。显然,物联网正在演变成所谓的“万维物联网”(WoT),这样环境中的交通信号灯,人行道,建筑物和商品等日常设备可以通过互联网识别、寻址甚至控制。
相比于各种复杂的物联网协议,万维网的协议更容易用来读取传感器设备的数据,万维物联网强调使用Web标准来交换设备之间的数据,这样任何有Web编程基础的人不仅仅能够建立网站和应用,处理多媒体内容,还可以处理从物理设备获取的实时传感器数据。从分布式传感器收集实时数据能够简单地获取、处理并通过HTML、CSS及JavaScript展现在网页上。使用Web作为托管和展示连接设备的平台具有很多优势,其中包括容易部署,高可用性和多功能性等。标准化通信协议的使用以及Web 2.0都让基于Web技术的物联网有了更大的发展空间。
如何建立一种通用的语言,让不同厂商的智能产品能够彼此通信并协同工作,这就是万维物联网的概念,使用现成的Web技术和标准,解决现有物联网相互通信的各种问题。如果红外传感器、窗帘控制器、智能摄像机和热水器控制器等设备都能和Web网关建立通信,那么他们之间的相互控制逻辑就可以使用JavaScript发送简单的HTTP请求来轻松实现,而且可以用HTML和CSS来生成控制界面。想象一下下面这个场景,书桌上的智能摄像机检测到我回来了,则将这个事件推送给Web服务器,Web服务器发送一个GET请求获取当前时间,判断时间是否到达八点半,如果已经到指定时间了,发出POST请求给热水器控制器,让它开始加热。这就是基于Web技术的物联网魅力所在,下面图1.1是物联网与万维物联网的对比图。
基于 Web技术的物联网正逐渐开始形成以平台的方式来提供服务,使用简单和普遍存在的 Web标准,利用树莓派这样的单板计算机或者 Arduino这样更低成本的 RTOS( Real Time Operating System)设备作为网关,让众多的设备以 HTTP协议进行通信,内容以 JSON或者 HTML形式呈现。这样的话,未来开发和维护 IoT设备,让 IoT设备之间彼此通信,就和 Web工程师维护网页没有太大的区别,这样对物联网的发展有很大的推动作用。通过Web技术解决物联网应用上的问题,已成为众多公司的研究重点。通过从20世纪90年代 Web被发明之时起建立和使用的基础设施、工具和经验积累,让物联网具有更高的灵活性、拓展性和集成性成为了可能。
图1.1 物联网与万维物联网
1.4 论文的主要研究内容
本文对于 Web技术以及物联网的现状进行了分析总结,结合 Nodejs和 MongoDB等 Web技术,以及 Arduino开源电子原型平台,设计了一个面向物联网热好者以及创客的物联网传感器数据实时监测服务平台,具有易于开发,可拓展性强的特点。整个物联网服务平台分为服务器和客户端两个部分,硬件部分采用Arduino开源电子原型平台作为网关,
具体工作如下:
1.分析现有Web技术与物联网相结合的现状,提出了平台的总体设计架构。结合Nodejs的相关内置模块以及Express Web应用开发框架,利用NodeJS在高并发和I/O性能上的优势,帮助我们开发各种Web应用以及处理上下层的各种命令请求。
2.利用MongoDB这类非关系型数据库非常适合处理传感器这种非一致性数据的特点,来对传感器数据进行存储,并且易于拓展,来应对未来海量传感器数据的挑战。
3.采用Arduino开发板以及Arduino Ethernet以太网模块作为网关,连接各种传感器以及受控设备,向上传输传感器数据以及向下接收控制命令。
4.利用相关Web技术开发了一个用户管理以及数据可视化的Web应用,帮助用户更好的管理和使用他们的传感器。并将Arduino网关上的资源映射成REST资源,方便用户进行二次开发。
1.5 论文的组织结构
本文共分为五个章节,其具体内容和结构安排如下:
第一章为绪论,针对物联网服务平台的研究背景和意义,以及国内外的研究现状进行了阐述,重点分析了Web技术与物联网相结合的现状以及优势,然后对本文的主要内容和结构安排进行了归纳。
第二章为相关的理论基础和技术,首先阐述了JavaScript与物联网之间的关系,然后对设计中用到的Nodejs、MongoDB数据库和Arduino开源电子平台进行了简单的介绍。
第三章为系统平台的需求分析以及平台的总体设计,还介绍了平台所使用的通信协议以及数据传输的格式。
第四章为平台的各个模块的具体实现,包括硬件方面Arduino网关的设计以及软件端服务器和客户端的详细实现。客户端包括用户管理,传感器管理以及数据图表展示管理等主要功能。
第五章为总结与展望,对本文所做的工作进行总结,分析平台的不足以及展望系统需要完善的地方。
第2章 物联网平台相关技术
2.1 JavaScript与物联网
JavaScript作为一种直译式的脚本语言,在Web应用开发方面具有得天独厚的优势。随着Web技术的不断发展,它在今天的物联网开发中也发挥着重要作用。大多数嵌入式设备采用的都是单片机,它们的运算性能和存储容量都不高,而且会配备相应的开发程序库和开发工具,一般都是采用 C/ C 语言开发。随着物联网的迅猛发展,曾经软件和硬件开发都相对封闭的嵌入式设备,也都开始支持越来越开放Web标准。
紧跟物联网发展的浪潮,作为Web前端技术的核心的JavaScript也开始进入了物联网领域。例如,Nest公司自2013年被Google收购后,在2014年发布了一款温度控制器,为JavaScript语言也提供了相应的API(Application Interface,应用程序接口),这意味着我们可以通过JavaScript语言操控相应的温度控制器。大致上,只要我们的设备具备Web浏览器的相关功能,就能完美运行JavaScript,这极大降低了物联网应用开发难度。
通过JavaScript开发物联网应用,不仅可以更好的帮助我们构建抽象,还可以将更加符合现代化的开发方式加入到相关硬件的研发中。JavaScript具有一些相较于其他开发语言独有的优势,它不需要安装特有的开发软件,通过我们的电脑或者手机上的浏览器就可以调试JavaScript代码,我们甚至可以用文本编辑软件来编写我们的程序,而且 JavaScript的语法简单,学习门槛低,容易入门,这对于一些小白用户也可以设计和建设自己的物联网。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: