APP下载

基于云平台的物联网系统设计研究

2021-02-25郭逸帆王晓晔呼子昊林少崴

天津理工大学学报 2021年1期
关键词:阿里联网设备

郭逸帆,王晓晔,呼子昊,林少崴

(天津理工大学 计算机科学与工程学院,天津300384)

物联网是在原有互联网的基础上扩展和延伸而出的一个概念,从传统的计算机互联拓展到了物与物之间的互通互联,利用传感器对外界信息进行采集,通过网络设备进行数据传输与通信.为了解决当前物联网系统面临的安全性问题,本文提出了一种基于MQTT协议的物联网通信方案.第一部分提出了系统架构,第二部分简述了MQTT协议的通信流程,第三部分对ESP8266进行了介绍,第四部分对设备接入阿里云平台进行了说明,第五部分对系统模型进行了测试和分析,第六部分进行了总结并提出了进一步的改进方向.

1 系统架构

为了能够快速开发,且方便系统的各个部分可以独立进行设计与测试,将整个物联网系统分为如图1所示的四层网络架构.

最底层为客户层(client)由物联网体系的终端设备组成,包括各种单片机和传感器,用于采集信息并执行用户下发的命令.与客户层(client)紧密相连的为网关层(gateway),网关层(gateway)主要设备为WiFi路由器,还有一小部分是基于Zigbee或蓝牙的网关设备.与传统工业领域相比,智能生活应用场景中网关设备的数量要少得多,而在工业领域中,网关层中存在着大量的边缘计算.

云端层(cloud)用于集中处理业务,是发送消息和数据的中继站,也可以在此对数据进行加工和存储,本文主要涉及阿里云物联网平台以及个人服务器.应用层(application)负责与用户的交互,它可以是计算机的Web浏览器、手机应用程序,或是带有屏幕的智能显示设备,也可以是无屏幕设备,作为显示数据与下发命令的终端.

图1系统架构Fig.1 System architecture diagram

其中与云端层物联网平台直连的设备都通过MQTT协议进行通信,实现了整个系统的数据流转,客户层硬件部分利用ESP8266的串口进行通信,再由ESP8266通过MQTT协议与云平台间接通信.

2 MQTT协议

2.1 背景简介

MQTT(消息队列遥测传输)是ISO标准(ISO/IEC PRF 20922)下基于客户端/服务器的消息发布/订阅传输协议,该协议可以直接运行在TCP/IP协议栈上[1],能够提供给网络使用者一个实时可靠的在线消息发送服务,优点是代码简单并且仅占有很少的网络带宽,适合在低性能的远程设备以及网络条件恶劣的环境中使用,它具有轻量级、简单性、开放性和易实现性的特点[2],现已成为IoT通信的标准.

2.2 MQTT结构与通信流程

MQTT是一个占用带宽低、开销低的即时通信协议,其Publish-Subscribe模式非常灵活,易于使用.如图2所示,其中Client指的是物联网设备,包括手机、个人服务器以及本系统所使用的ESP8266.Client发布信息,而其他Client可以订阅该信息.Broker位于消息订阅者和发布者之间,相当于消息的管理方,负责消息的流转,能够接收Client发布的应用信息,并将应用消息转发给订阅相应主题(Topic)的客户[3].本方案中阿里云物联网平台充当这一角色.Server本质上相当于一个Client,不同之处在于能够处理业务逻辑.

图2 MQTT通信流程Fig.2 MQTT communication process

例如,温度传感器作为Client1,将采集到温度数据通过MQTT发送到Broker端的Topic1下,Broker端会将温度数据转发给订阅Topic1的Sever端.Server端会根据温度判断是否开启空调,通过MQTT将指令信息发送到代理端的Topic2下,再由订阅Topic2的应用程序获得数据后执行指令进而控制设备[4].

3 ESP8266

3.1 ESP8266介绍

ESP8266是一款支持高性能无线处理器的SoC(系统级芯片),它将业界技术领先的超低功耗32位的微处理器(tensilical106)与16位的精简微处理器模式相结合,支持两个主频80 mhz和160 mhz,集成了WiFi,板载天线.同时支持tensieee802.11b/g/n协议和TCP/IP全协议栈[5].

3.2 ESP8266的功能与使用方式

ESP8266的主要功能包括:串口传输、脉冲宽度调制、GPIO控制等.串口传输可将数据进行可靠传输,传输速率最高可达460 800 bps.脉冲宽度调制可进行电压调节、电机调速与屏幕亮度调节等.GPIO控制包括开关控制与采集数字信号等.

使用ESP8266有AT指令和SDK编程两种主要方法.AT指令:使用附加的单片机,通过串口发送AT指令(串口数据)到ESP8266,ESP8266则会执行相应功能,如连接WIFI、发送网络数据等.SDK编程:ESP8266本身就集成了微控制器以及片上SRAM,可以通过GPIO等外设连接传感器和其他设备.可以将ESP8266独立应用,程序放在外部Flash中,ESP8266读取外部Flash中的程序,执行相应功能.本方案使用SDK编程的方式开发,优点是不需要额外的单片机,节约了成本.

3.3 ESP8266的优点

ESP8266具有性能稳定、高度集成、低功耗和高性能处理器的优点.

性能稳定:ESP8266的工作温度范围大,且能够保持稳定的性能,能适应各种操作环境.

加快推进国际医疗旅游产业发展,是国家赋予海南的重要使命,海南责无旁贷。泰国、印度等国家医疗旅游产业发展的经验,为海南提供了一定的借鉴和参考。

高度集成:ESP8266中集成了低噪放大器、标准的数字放大器外设接口、功率放大器、过滤器和其他电源管理模块等,PCB占用的空间低,外围集成电路极少.

低功耗:ESP8266多应用于可穿戴电子设备、移动电子设备和物联网产品,采用了多项专有技术实现超低功耗.ESP8266的节电模式非常适合各种小功率的应用场合.

高性能处理器:ESP8266具有完整的TCP/IP协议栈和主控机功能的芯片,内置一个Tensilica的32-bit RISC处理器),其时钟速度可达160 MHz,最多可使用16 MB的外部SPI闪存,将80%的处理能力留给应用程序编程和开发.

4 阿里云物联网平台

阿里云物联网平台为设备提供了安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制.物联网平台也提供了其他增值能力,如设备管理、规则引擎等,为各类IoT场景和行业开发者赋能.

4.1 阿里云物联网平台的主要功能

阿里云物联网平台的主要功能包括接入设备、管理设备和规则引擎.

接入设备:物联网平台支持大量设备接入云,设备通过IoT Hub与云端进行稳定、可靠的双向通信.CoAP、HTTP和MQTT等多种协议的SDK不仅满足了长连接的数据及时性和安全性要求,而且也充分满足了短连接的低功耗和可靠性要求.

管理设备:物联网平台提供了设备生命周期的管控功能,支持设备对接、在线调试、属性定义、设备分批管理、数据分析、远程配置、远程维护等功能.

规则引擎:物联网平台根据用户配置的数据流转规则,将指定Topic消息的指定字段流转到目的地,进行存储和计算处理.通过配置简单规则,将设备数据无缝流转至其他设备,实现设备联动.

4.2 设备连接阿里云

4.2.1 使用手机与服务器接入云平台

本系统利用物联网平台提供的设备端SDK进行开发,其中封装了设备端与物联网平台的交互协议,如图3所示.设备开发完成后,接入物联网平台进行设备激活,平台将显示设备在线状态.在实际开发中,根据开发时使用的语言、平台,选用合适的设备端SDK,包含:C SDK、Android SDK、NodeJS SDK、Java SDK、Python SDK、iOS SDK.本系统中,手机端与服务器同时采用了Java SDK进行开发.

图3阿里云物联网平台SDK开发Fig.3 SDK development in Alibaba IoT Cloud Platform

如果嵌入式环境复杂,已提供的设备端SDK不能满足需求,可以封装Alink协议数据,实现设备与物联网平台的通讯.Alink协议接入设备有两种方式,一机一密与一型一密.本系统采用一机一密的方式上线,需要提前将设备证书烧录到硬件中.

4.2.2 使用ESP8266接入云平台

本系统采用MCU+模组的组合接入云平台,将SDK移植到MCU上运行,由于阿里云的SDK需要用户自己实现硬件控制的逻辑,为了节省时间成本,选择ESP8266自有的SDK连接阿里云,模组用于发起与阿里云物联网平台的连接,如图4所示.

图4 MCU+模组接入云平台Fig.4 MCU+modules access cloud platform

阿里云物联网平台下的设备各有一组参数.ProductKey是阿里云IoT物联网平台上产品的唯一标识,也可理解为产品型号,一个产品下可以有多种类型的设备.DeviceName是设备型号,DeviceName是设备在产品范围内的唯一标识;属于不同产品的设备的DeviceName可以相同.DeviceSecret是每个设备用于身份认证的的密码.这组参数在整个物联网平台内具有唯一性,对应于现实中的具体设备.云平台解析设备的上线请求,获取设备的三个参数后进行判断,符合物联网平台参数的设备会得到接入的许可[6].

5 模型分析

为了测试本方案的数据流转情况,将Java web项目部署到个人服务器,作为MQTT的客户端,手机应用程序作为一个客户端上云.

5.1 软件开发

对于网页编辑,本系统选择使用Node-RED进函数、用户任务、中断服务程序和回调函数.为了实现在特定条件下触发相应功能函数的目的,SDK中多采用回调机制与软硬件定时器来实现各功能事件的嵌套[8].本系统设计具体的程序流程如图7所示.行界面开发.Node-RED提供了一个基于浏览器的流编辑器,利用面板中的各类节点将程序进行逻辑串联,实现基本的交互功能,并通过Node-RED提供的MQTT相关逻辑控件,连接MQTT代理进行消息的发布与订阅,web界面如图5所示.

图5 Web界面Fig.5 Web interface

5.2 硬件开发

由于射频性能的需求,搭建ESP8266外围硬件电路需要四层版/射频的设计.在没有专业射频仪器的情况下,设计的ESP8266电路的射频性能不能保证,有可能造成ESP8266频繁掉线等不利影响.本系统采用ESP8266模组ESP-12F[7]进行开发,ESP-12F模组与外围电路构成最小系统如图6所示,通过串口烧写程序.

对于程序开发,本系统采用ESP8266的Non-OS SDK进行开发.Non-OS使用四种类型的函数:应用

图6 ESP-12F最小系统原理图Fig.6 Schematic diagram of esP-12F minimum system

5.3 模型的功能分析总结

本系统所实现的模型数据流转主要有两个方向.

上行数据:DHT11测量温湿度的数据后,由ESP8266发布给云平台,云平台根据规则引擎的数据流转规则,将数据下发web客户端进行远程可视化监测.

图7硬件代码流程Fig.7 Hardware code flow

下行数据:用户通过web界面下达控制指令给云平台,如电器开关、灯光的控制等,云平台同样根据规则引擎将数据转发给ESP8266,由ESP8266控制外围电路执行指令内容.

其中阿里云物联网平台负责终端设备的上云,并根据规则引擎轻松管理设备间数据的流转.云平台同时可以进行对数据进行统计与分析,使中间数据透明化,方便调试.整个模型采用MQTT协议进行通信,因此终端设备上封装的MQTT协议数据处理函数用于解析从云平台接收到的JSON数据.阿里云物联网平台查看上行数据与下行数据的转发情况,如图8所示.

6 结论

模拟测试表明,本文提出的设计方案结构简单,降低了云端通信的难度,缩短了开发周期;使用MQTT协议解除了应用程序耦合,各部分可以单独调试;与阿里云平台对接后,由云平台接管设备,可以对设备进行批量开发与管理,也有效保证了设备和云端数据的安全,不仅为工业设备上云提供了便利,更为数据向云平台迁移及大数据分析奠定了基础,而这也是本方案下一步改进的方向.

图8云平台转发数据情况Fig.8 Data forwarding of cloud platform

猜你喜欢

阿里联网设备
脐橙连上物联网 扫码便知“前世今生”
“身联网”等五则
《物联网技术》简介
《物联网技术》简介
云上阿里
调试新设备
辰辰带你游阿里
Catalan数及几种应用实例
拳王阿里因何被人铭记
认一认