泛太物联网云服务平台
型号:DL07-Cloud
1. 平台简介
泛太物联网云平台的应用服务部署在服务器虚拟化云计算平台,向下提供物联网网关的接入、存储、计算服务,向上为用户提供物联网B/S构架软件服务。通过该服务可以提供现场的监测点网关信息查看、现场的实时数据查看和存储以及历史数据查看和报警、历史数据曲线展示等功能。用户可在登陆该服务平台后,通过该应用方便地查看现场监测数据,及时作出决策。
2. 平台构成
泛太物联网云平台(SeaIOT-Cloud)是指基于传感器设备(ZigBee传感器、WiFi/BT传感器、有线传感器)、物联网网关、泛太物联网云服务平台(简称云平台)等软、硬件所构成的物联网监控系统。系统结构如图所示。
整个系统的运行可简单的理解为“通过物联网网关将现场传感器的数据传输到云平台,用户访问云平台并获取数据的过程”。
3. 平台实现
3.1 传感层
传感层主要包括各种ZigBee传感器、WiFi传感器、蓝牙BT传感器、IPv6传感器等。默认以ZigBee通信协议进行组网的传感器为例。
使用系统之前,用户需要给每个ZigBee协调器、以及ZigBee传感器设置不同的网络参数,确保各个ZigBee传感器网络按照各自的通信信道、网络ID进行正常的组网通信,互不干扰,保证传感器信息能够顺利达到物联网网关。
3.2 物联网网关
物联网网关设置两种不同的工作模式,一种是本地化工作模式,一种是物联网模式。
1)本地化工作模式
该模式是默认模式,只管理本地网关、以及网关管理下的传感器节点。可运行嵌入式Linux系统或者Android系统,以及相应操作系统下的网关应用程序。Linux下的网关应用程序是采用QT4.7.3函数库与QT C++开发的GUI图形化应用程序界面。Android下的网关应用程序是采用Eclipse与JAVA开发的GUI图形化应用程序界面。
网关应用程序主要用来接收ZigBee协调器管理下的所有传感器、控制器的属性信息、采集控制信息等,保存到内置的数据库中。根据不同的实际应用环境,如家居、农业、仓储、交通等,设计的具有智能化、自动化特性的智能家居监控系统、智能农业监控系统、智能仓储物动态感知系统、智能交通管理系统等。本地化工作模式主要辅助学生进行ZigBee组网、嵌入式Linux系统开发、Android系统开发、QT/Android应用程序设计等物联网知识的强化学习。
3.3 云服务平台
云服务平台默认部署在泛太公司的云服务器上,也可以根据用户需要实现本地化部署。
1)功能简介
云服务平台支持应用服务、数据服务以及本地化服务。
应用服务采用通用B/S框架设计,支持用户注册登录与管理、后台登录管理等基本功能,可以提供现场的监测点查看、现场的实时数据查看和存储以及历史数据查看和报警、历史数据曲线展示等功能。
数据服务运用WEBSERVICE技术向用户提供该用户当前有效的物联网网关及管理节点的全部数据。通过该服务,可以极大地提升会员应用软件开发速度,不必再做面向传感器节点的物联网底层通讯协议解析开发。
本地化服务即使用网关自带的数据库和应用软件,管理所有的传感器节点。
2)系统架构
物联网网关通过MQTT协议与物联网云服务系统进行通信。用户客户端诸如PC浏览器、智能、平板电脑等通过HTTP协议以及具有WebSockets的MQTT协议与物联网云服务系统交互信息,获取物联网网关管理的所有传感器节点信息。云服务平台基础设施采用云计算技术、云存储技术实现的虚拟化管理平台,具有动态分配计算资源、存储资源、并发计算的特点。其上部署Web服务器、数据库服务器、缓存服务器、MQTT服务器、以及后台应用程序。
4. 关键技术
(1)云计算与云存储技术
SeaIOT-Cloud部署在云计算平台上。云计算平台集成OpenStack核心组件,实现虚拟化与云管理平台的无缝结合。云平台采用分布式计算机计算,将计算任务分解到多台计算节点上,满足海量设备的并发通讯和实时计算的需求。同时,采用分布式存储技术存储海量数据,用冗余存储基于日志的增量备份方式保证数据的可靠性。数据分散存储,消除单台存储服务器的存储瓶颈,同时提高存储可靠性和安全性。每个计算节点都实现了虚拟交换机,具备二层网络交换机的功能。可按需提供服务,具有强大的动态扩展性。平台终由服务器虚拟化云管理平台以B/S架构呈现给用户。
(2)MQTT技术
SeaIOT-Cloud中网关数据接入、客户端访问云服务平台所采用的协议来源于IBM开发的一个即时通讯协议——MQTT。MQTT是“Message Queuing Telemetry Transport”的英文缩写,意思是“消息队列遥测传输”。
MQTT是一种轻量级的、基于代理的“发布/订阅”模式的消息传输协议。其具有协议简洁、小巧、可扩展性强、省流量、省电等优点,保证在低带宽、不可靠或间歇性的网络条件下数据通讯的可靠性,并显著降低网络流量,网络流量只需HTTP协议的1/4。而且,它已经有PHP,JAVA,Python,C/C++,C#等多个语言版本,基本可以使用在任何平台上,几乎可以把所有联网物品和外部连接起来,所以特别适合用来做面向M2M和物联网的连接通信协议。
若初次接触MQTT协议,可先理解以下概念:
【MQTT协议特点】——相比于RESTful架构的物联网系统,MQTT协议借助消息推送功能,可以更好地实现远程控制。
【MQTT协议角色】——在RESTful架构的物联网系统,包含两个角色客户端和服务器端,而在MQTT协议中包括发布者,代理器(服务器)和订阅者。
发布者——也就是产生数据者,实际系统中可能就是采集某个信号的小设备,比如一个采集温湿度的设备,但是这个设备是可以连接到网络的,所以它可以向代理(服务器)发布消息。
代理器——也就是数据中转服务器,它接收发布者发布的消息数据,比如说具体的温湿度值,然后接收到这些数据之后可以推送给订阅者。
订阅者——也就是接收发布者发布的消息接收者,比如是一部或者电脑之类的,它能实时显示发布者通过代理发送过来的数据。【MQTT协议消息】——MQTT中的消息可理解为发布者和订阅者交换的内容(负载),这些消息包含具体的内容,可以被订阅者使用。
【MQTT协议主题】——MQTT中的主题可理解为相同类型或相似类型的消息集合。
在该系统中,我们使用Mosquitto开源软件。Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的消息推送模式,使设备对设备之间的短消息通信简单易用。
(3)WebSocket技术
采用WebSocket技术提供服务端到浏览器的全双工数据通信,实现服务端到浏览器的主动消息推送。解决采用轮询Ajax异步查询方式的弊端,大大减少了服务器开销和服务端与浏览器之间的不必要的网络通讯。
(4)HTML5技术 云服务平台页面采用HTML5技术,可实现跨平台使用,无论您使用传统的PC,还是平板电脑,或者是,只要您的浏览器支持HTML5,即可随时随地访问云服务系统,进而查询网关及其管理节点的状态。
5. 实验内容
序号 实验名称 1 MQTT服务器移植 2 MQTT Client应用程序开发 3 JSON数据格式学习 4 WebService二次开发 5 Web服务器搭建 6 数据库搭建 7 读写数据库 8 JAVA 网络编程 9 WebSockets开发 10 HTML5页面开发 … …