APP下载

基于增强设备协议的智能远程监测系统设计

2022-11-23陈丽夏兴隆王莉莉卜树坡

电测与仪表 2022年11期
关键词:氧量字节命令

陈丽,夏兴隆,王莉莉,卜树坡

(1.苏州工业职业技术学院 电子与通信工程系,江苏 苏州 215000;2.苏州易泰勒电子科技有限公司,江苏 苏州 215123; 3.东南大学 电子科学与工程学院,南京 210096)

0 引 言

新基建背景下,工业互联网、大数据中心等基础设施的大力建设,进一步加速了各行各业的数字化进程。借助云平台在数据存储、数据推送、命令下发等方面的优势,使信息远程监测、设备远程控制等在工业、农业等诸多领域得以实现[1-5]。

终端设备按照一定的应用层协议与云平台实现信息交互,比较常用的协议包括HTTP、CoAP、MQTT等,每种协议具有不同的特点,应用领域不同[6-8]。HTTP协议是目前互联网应用最多的应用层协议,采用TCP作为传输层协议,协议简单、灵活;但是,这类协议较占资源,仅报文头就至少需要占用几十字节的资源。在M2M应用场景中,节点数量多、设备资源有限等特点决定了HTTP协议并不能很好地满足应用需求[9]。CoAP和MQTT是针对终端设备资源受限这一特点专门设计的应用层协议,两者协议包均较小,很大程度地节约了资源,在M2M场景中应用均较为广泛[9-12]。CoAP协议基于RESTFul架构[10-11],其传输层采用较TCP更轻便、占用资源更少的UDP协议,消息格式为更紧凑的二进制格式,因此,CoAP协议的协议包远小于HTTP;但是这类协议容易受到DDos攻击,安全性和可靠性存在问题[13]。MQTT协议基于TCP传输层协议,采用发布/订阅的模式进行信息传输,该协议提供三类QoS来保证消息传输质量和传输效率[14],但是,较低的QoS存在丢包率高的问题,较高的QoS需要消耗更多资源;这类协议通过订阅的方式实现消息传输,不支持点对点通信;同时,不支持负载均衡,存在由于恶意攻击、高并发引起的安全隐患。

为了满足点对点设备间的通信,同时兼顾丢包率和安全因素,基于TCP传输层协议设计了增强设备协议,采用发送RAS加密消息的方式,增强安全性。与HTTP协议相比,增强设备协议减少了大量HTTP协议的复杂报文,更适合资源受限的M2M使用场景。

本文以水环境监测为具体应用场景,采集温度、溶氧量两类信息,并基于增强设备协议实现终端设备采集信息上传至云平台、云平台命令下发至终端设备、不同终端设备间数据推送三大类功能,采用BP神经网络对溶氧量及控制信号进行预测,最终实现复杂场景下的智能远程监测和控制。

1 设计方案

本系统主要由以下几部分构成:传感器和信号传输电路组成的信号采集部分、GSM模块组成的无线传输部分、STM32L系列的低功耗MCU控制部分、供电模块。系统框图如图1所示。

图1 系统结构框图

1.1 信号传输电路

信号传输电路主要将传感器信号准确地传送至MCU,考虑到水环境监测通常在水下进行,电磁波在水中快速衰减且干扰较大,通常采用有线的方式将传感器采集到的数据传送至MCU。常见的有线传输方式中,RS-485总线应用较多,与传统RS-232相比,该方式允许在两根传输线上连接多个设备,在需要采集多个信息、抗干扰能力要求高的应用场景中,具有较大的优势。针对RS-485接口的传感器,需要采用相应的信号转换芯片,文中的信号传输电路由RS-485芯片SIT3088E、光隔离模块组成,如图2所示。其中,RS-485芯片用于信号转换,经过光隔离模块将信号送至MCU。当不需要进行信号采集时,MCU控制电源开关电路(图3)关断电路来降低功耗。

图2 信号传输电路

图3 电源开关电路

1.2 无线信号传输电路

终端采集的信号传输至云平台,通常采用无线信号传输电路来实现。考虑到户外环境下运营商网络覆盖率高、物联网单个节点数据量小等特点,本文选取了支持GSM/GPRS网络的M6312芯片,该芯片工作温度范围可达-40 ℃~85 ℃,满足苛刻应用环境要求。无线传输电路设计如图4所示。

图4 无线信号传输电路

2 增强设备协议

增强设备协议是基于OneNET平台定义的一类针对物联网应用特点的应用层协议,该协议规定了终端设备与云平台建立连接、上传数据、透传数据等消息的组包规则,以最简单的形式定义了数据交互的实现方式。

所有消息包含以下三部分:消息头、可选项、消息体。消息头由消息类型、保留位和剩余消息长度组成,其中消息类型占第一个字节的高四位;保留位占第一个字节的低四位,一般保留位全为零;剩余消息长度可以占用1-4字节,具体数值为可选项占用字节数与消息体占用字节数之和,根据计算结果决定剩余消息长度,具体对应关系如表1所示。

2.1 设备连接

终端设备与云平台建立连接,必须发送满足协议要求的连接请求。

连接请求的消息类型为1,考虑到消息类型在消息头第1字节的高位,消息头第1字节为0x10。

连接请求的可选项包括协议名称、协议版本、连接标志、保持连接时间。协议名称由5个字节组成,低三位为协议名称“EDP”,高两位表示协议名称的长度3。协议版本占用1个字节,值为1。连接标志占用1个字节,通过最高位区分设备登录的认证方式,当最高位为1时,采用产品ID和auth_info进行认证;当最高位为0时,采用设备ID和APIkey进行认证;保持连接时间占2个字节,以秒为单位。

消息体内容与连接标志对应。当连接标志最高位为0时,消息体包含设备ID和APIkey两项参数,每项参数由长度和参数值组成,组包时长度在前,具体参数值在后;当连接标志最高位为1时,消息体包含设备ID、产品ID和auth_info,其中设备ID直接设为两字节0,后两项参数同样包含参数长度和参数值。

最后,根据可选项和消息体计算剩余消息长度,并合成消息头。发送连接请求后,会收到平台4个字节的连接响应,消息类型为2;第4个字节表示连接返回码,0表示连接成功。

2.2 信息上传

设备增强协议中,上传数据消息类型为8。可选项包括标志、目标地址和消息编号。标志占用1个字节,最高位表示是否有目标地址,不存在目标地址时,值为0;次高位表示消息编号,用于区分不同消息。目标地址根据标志最高位值进行设置,该项不必需。消息编号占用2个字节。

消息体为具体上传的数据。第一个字节表示数据类型,后两个字节表示消息长度,后续为具体消息内容。最后,根据可选项和消息体计算剩余消息长度。

2.3 命令下发

从云平台向终端设备发送命令以实现远程控制是云平台重要应用之一。在这类应用中,设备增强协议规定了云平台发送至设备端的消息模式,设备端接收到消息并按协议规则进行解析。下发命令的消息类型为10,剩余消息长度由后续内容确定,占用1~4个字节。剩余消息由命令ID和命令消息体组成。对于每一条下发命令,系统均会分配一个命令ID,当需要响应时,需要在响应信息中,添加该ID进行针对性回复;命令ID又包含2个字节的命令ID长度和具体ID值,命令消息体则包含4个字节的命令消息体长度和不超过64K的命令消息体组成。

2.4 点对点数据透传

点对点数据透传将数据的解析下放至设备端,由终端设备自行定义数据的解析规则,可以通过点对点的定向数据交互实现更个性化、安全的应用设计。与上述功能不同,点对点数据透传包含发送端和接收端两部分。点对点数据透传的消息类型为3。剩余消息长度由可选项和消息体的长度决定。可选项由目标地址长度和目标地址组成,其中地址长度占用2个字节,目标地址为设备ID。消息体为用户自定义的不超过276字节的数据。

3 增强设备协议实现

增强设备协议每项具体功能的实现均包括按照协议规则进行数据组包或解包、设备端与云平台实现无线数据传输两部分。以下通过数据协议组包、解包和无线数据收发,介绍增强设备协议的实现方式。

3.1 无线数据传输

无线数据传输是双向的,一般包括数据发送和数据接收。本文中,M6312是无线数据传输的具体实现模块,通过串口与MCU实现数据通信,接收到MCU的数据后,通过AT指令发送上传数据:

//发送上传数据AT指令

sprintf(cmdBuf, "AT+IPSEND=%d ", len);

当成功收到云平台反馈后,通过如下代码将信息上传至云平台:

//收到‘>’时可以上传数据

if(!M6312_SendCmd(cmdBuf, ">"))

{

//发送设备连接请求数据

Usart_SendString(USART2, data, len);

}

其中,data和len是按照协议封装后的协议包。

接收平台发送的信息,则直接读取M6312缓存内的内容,并进行分析。

3.2 信息发送及协议组包

增强设备协议可实现的功能中,发送连接请求、信息上传、点对点数据透传发送端的实现流程类似,如图5所示。

图5 信息发送流程图

系统为数据分配内存,按照增强设备协议的连接请求、信息上传规则或点对点数据透传规则进行协议组包,再通过M6312芯片将协议包上传至云平台,然后等待平台响应。为了进一步简化协议,平台响应采用代码来表示不同连接结果和信息上传结果,点对点数据透传则不设响应码。终端设备接收到平台响应代码后,根据协议规定进行解析,并对应地打印连接结果。

3.3 信息接收及协议解包

设备增强协议中,接收信息类型包含云平台下发的命令、终端设备透传的信息等,解析流程类似,如图6所示。

图6 信息接收流程图

M6312接收到信息后,通过判断是否有关键字来明确是否收到平台信息。各类信息的区分主要在于消息头中的消息类型。接收到消息后,通过判断消息类型进一步明确按照何种协议规则对接收到的信息进行解包。对于下发命令来说,解包过程主要提取命令ID和命令消息体;透传信息则主要提取消息体。

4 协议性能测试

本文旨在设计基于增强设备协议的远程智能监测系统,协议包的大小是重要评估指标[9-12]。当发送相同信息的情况下,不同协议生成的协议包大小不同;协议复杂程度决定了通信芯片、MCU的选型;协议包越大,所需设备资源、网络资源越多,同时,也会产生较多的资费。

以下,针对HTTP、EDP、MQTT三种协议,通过抓包工具分析上传信息、命令下发对应的协议包大小。为了避免设备名称、鉴权信息长度等对协议包大小的影响,本实验涉及的设备名称保持一致。

4.1 传信息

图7给出了上传不同长度的信息时,不同协议所生成的协议包大小。

图7 不同协议发送信息的协议包大小Fig.7 Packet size of messages sent by different protocols

从图7中可以看出,HTTP协议的协议包远大于EDP协议和MQTT协议,后两种协议更适合物联网场景的应用。

4.2 命令下发

三种协议中,HTTP协议采用请求/响应工作模式,服务器无法主动向客户端发送消息,无法实现云平台命令主动下发。以下比较增强设备协议和MQTT协议,对云平台命令下发的数据包大小进行分析,结果如图8所示。

图8 不同协议接收云平台命令的协议包大小

从图8中可以看出,EDP协议的协议包小于MQTT的协议包大小。从资源占用角度来看,EDP和MQTT均较适合M2M的应用场景。但是,该平台下发指令时,EDP可以在设定的时间范围内,接收离线消息,而MQTT协议无法接收离线消息。由于网络信号等原因,丢包率高于EDP协议。

5 远程监控结果

整个系统设计完成后,可以通过网页进行远程监控,实现信息上传和云平台命令下发;点对点数据透传过程中,云平台仅作为中转站,信息监控直接在设备端进行。

当系统工作时,可以远程登录云平台实现信息查看和命令下发,图9给出溶氧传感器每隔两小时上传一个数据点的监测结果。

图9 溶氧量远程监测结果(mg/L)

溶氧量受光照强度、喂食等因素影响显著,要满足最优的水环境指标,需要对溶氧量进行准确地调节[15]。考虑到溶氧量的时变性、非线性、大时滞等特点[16],基于Tensorflow搭建BP神经网络对溶氧量进行预测,BP神经网络结构如图10所示,主要包括三层:输入层、中间层和输出层,每一层都包含若干个神经元,图中圆形表示一个神经元;每个神经元包含若干个输入信号和一个输出信号,每个输入对应一个权重,输入和权重相乘,然后相加,结果经过sigmoid函数后输出。本文将监测到的上一时刻的溶氧量和温度作为输入,当前时刻的溶氧量和溶解氧控制信号作为输出,进行训练。

图10 BP神经网络结构图

考虑到MCU的运算能力较弱,训练过程在计算机上进行,再通过Cube.AI将训练好的模型转换成库文件,直接在STM32 MCU上运行,根据监测到的参数信息,预测溶氧量和溶解氧的控制信号。

图11给出云平台下发命令至智能终端的页面,下发格式包含字符串和16进制。QoS级别有需要响应和不需要响应两类。在设定的失效时间范围内,设备上线即可收到云平台下发的命令。

图11 云平台命令下发

远程监控可以访问固定网址实现,监控界面如图12所示。该界面可以查看温度和溶氧两个传感器采集的信息。温度为一段时间范围内的值,溶氧量为实时监测结果;还可以通过按键直接控制系统执行器的外部供电,实现远程控制。

图12 远程监控界面

6 结束语

文章采用低功耗MCU、RS-485接口传感器、信号传输电路、GSM无线传输电路设计了智能终端硬件系统。该系统通过增强设备协议与云平台实现信息交互,并通过网页实现远程监测和控制。设备端采用BP神经网络对溶氧量及控制信号进行预测,实现智能控制。

通过对不同协议的协议包大小进行对比,结果表明增强设备协议的协议包较小,对资源要求低;且支持离线消息;在支持信息上传、云平台命令下发的同时,还支持点对点信息透传,适合资源受限的M2M应用场景。后期将对终端硬件平台与云平台信息交互过程中,涉及的信息安全进行深入研究,使系统更完善,更好地满足实际应用需求。

猜你喜欢

氧量字节命令
一种催化器储氧量的测试及计算方法
残氧量模型的修正方法在比例控制型烧嘴上的应用
No.8 字节跳动将推出独立出口电商APP
管理Windows10的PowerShell命令行使用记录
安装和启动Docker
No.10 “字节跳动手机”要来了?
移防命令下达后
提高跑步成绩看最大摄氧量
解析Windows10的内部命令
660MW机组锅炉氧量测点安装位置对正确测量的影响分析