物联网设备和物联网平台之间对接的通信方法及通信系统与流程

文档序号:25537089发布日期:2021-06-18 20:31阅读:1102来源:国知局
物联网设备和物联网平台之间对接的通信方法及通信系统与流程

本发明属于通信技术领域,具体来说是一种提高物联网设备和物联网平台之间对接速度和效率的通信方法及通信系统。



背景技术:

诸如温/湿度传感器、水平/垂直位移传感器、重力感应器等许多物联网(iot)设备可以利用其厂家自定义设备协议与物联网(iot)云平台进行数据交互,物联网云平台需支持各种各样的iot设备通信协议,并为了支持不同设备间的相互通信,需将不同的设备协议转换为统一的物联网平台协议。针对不同的设备协议,物联网平台需对应开发专一的解析器进行设备协议与物联网平台协议的双向转换。

随着接入的设备越来越多,相应的协议解析器也五花八门,面临研发成本居高不下、维护难度指数上升的难题。诸如桥接器等现有解决方案,因单一硬件cpu及内存性能限制,在支撑众多厂家的设备协议解析时也越来越捉襟见肘。因此需要一种基于人工智能的分布式虚拟协议转换装置,能够支持各种设备协议和物联网平台协议的双向转换,可随着接入的设备协议越来越多,性能上无限水平扩展。

如申请号为cn201910908749.9公开的一种支持多协议的智能家居iot网关信号处理方法和装置,应用于智能网关模块,方法包括以下步骤:获取控制设备发出的控制设备源信号;将获取的控制设备源信号转换为标准数据格式信号;解析标准数据格式信号,判断标准数据格式信号是否包含执行动作;如果包含执行动作,则将标准数据格式信号转换为相应执行设备的所适应的执行信号,并发送到执行设备,执行设备控制对应的实体设备进行工作状态的转换。本申请实施例仅仅依靠智能网关模块就能实现多种不同协议的智能设备的相互通讯,替换了相关技术中采用多个协议转换器的通讯方式,降低了智能家居控制系统的成分,且降低了各个智能设备的维护难度。该对比文件虽然一定程度上能够解决不同协议之间的对接,但是其仅针对有限的协议,智能化程度低。



技术实现要素:

本发明所要解决的技术问题在于如何提供一种支持各种设备协议和物联网平台协议双向转换的通信方法。

本发明通过以下技术手段实现解决上述技术问题的:

一种物联网设备和物联网平台之间对接的通信方法,包括以下步骤:

s01.构建指纹库,获取大量第一iot协议的样本,并从中提取指纹构建指纹库;指纹库中的指纹添加字段涵义是否学习标志位;

s02.构建搜索引擎库,学习第一iot协议的字段涵义,构建搜索引擎库,并根据学习结果修改指纹库中对应指纹的标志位;

s03.接收iot设备上报给iot平台的第一iot协议报文;

s04.识别步骤s03中的第一iot协议报文的指纹和字段涵义,对于能够识别的,自动跳转至步骤s05,对于不能识别的,则通过重复步骤s01、s02操作向所述指纹库中添加指纹和字段涵义;

s05.根据步骤s04中识别的字段涵义,对所述第一iot协议报文进行解析,并将相关字段值重组为第二iot协议报文。

本发明通过构建第一iot协议的指纹库,以及与之关联的搜索引擎库,可快速确定第一iot协议的类型,并根据该类型协议的字段涵义快速映射到第二iot协议,实现速接入各种设备,iot平台对各种iot设备的远程监测和控制的目的。通过自学习可不断更新指纹库,实现对各种协议的识别。

进一步的,所述步骤s01中构建指纹库的具体方法为:

1)使用递归算法,解析出第一iot协议json格式数据的纯协议文本;所述纯协议文本为键和值类型字符串的文本,所述值类型包括数值型、字符串型和布尔型;

2)通过正则匹配替换纯协议文本中的空格、换行符和制表符,得到压缩后的纯协议文本;

3)对所述压缩后的纯协议文本使用sha256算法进行签名,得到256位的字符串即为指纹;

4)将所述指纹存入指纹库,并增加字段涵义是否学习标志位,字段涵义是否学习标志位值范围为0或者1;0表示未学习第一iot协议字段涵义;1表示已学习到第一iot协议字段涵义。

进一步的,所述步骤s02中的字段涵义包括消息id、协议版本号、协议命名空间、报文收发时间、设备id、设备属性名、设备属性值、设备扩展信息,构建搜索引擎库的具体方法为:

1)建立搜索引擎库,导入所述字段涵义的习惯命名;

2)遍历第一iot协议报文的各字段得其命名an,遍历搜索引擎库中的各习惯命名得出命名bm,采用相似度匹配算法计算命名an与命名bm的相似度,记为anbm;两层遍历最终获得的结果集矩阵如下:

相似度匹配算法的传入参数为两个字符串,记为str1和str2,执行过程如下:

a.计算两个字符串的长度len1和len2;

b.建立二维数组dif,行长度为len1+1,列长度为len2+1;

c.将0到len1按顺序存入dif[index,0],即dif[index,0]=index,index为序号;

d.将0到len2按顺序存入dif[0,index],即dif[0,index]=index,index为序号;

e.定义函数f1,传入参数为3个数值,计算并返回其中最小的数值;

f.通过两层循环遍历str1和str2得到str1[i-1]和str2[j-1],定义temp,如果str1[i-1]等于str2[j-1],则将0赋值给temp,如果str1[i-1]不等于str2[j-1],则将1赋值给temp;向函数f1中传入dif[i-1,j-1]+temp,dif[i,j-1]+1,dif[i-1,j]+1,获得三个值中的最小值min,将min赋值给dif[i,j];

g.相似度公式

similarity=1-(float)dif[len1,len2]/max(len1,len2)

其中max(len1,len2)为返回len1和len2的最大值;

根据公式可算出字符串str1和字符串str2的相似度similarity,相似度similarity范围在[0,1]之间,数值越大,表示相似度越高;

3)对所述结果集矩阵每行采用排序算法对相似度集合按数值大小进行倒序排序,获得每行的最大值,记作aibx,则命名为ai的字段涵义最有可能为习惯命名bx对应的字段涵义;

4)对匹配结果进行人工标识校准,将标识结果添加到所述搜索引擎库;

5)将标识结果添加到所述指纹库中对应的指纹记录里,并修改其所述字段涵义是否学习标志位的值为1。

进一步的,所述步骤s05中重组的具体方法为:将第一iot协议的值映射到第二iot协议对应的字段的过程。

本发明还提供一种提供物联网设备和物联网平台之间对接的通信系统,包括:

至少一个iot设备,其能够执行基于至少一种第一iot协议来通信的一种应用程序;

至少一个iot平台,其能够以基于第二iot协议通信的方式实现iot设备状态监视和控制指令下发;

以及一种基于人工智能的虚拟协议转换装置;所述人工智能的虚拟协议转换装置支持第一iot协议和第二iot协议的转换;

所述虚拟协议转换装置的转换方法如下:

s01.构建指纹库,获取大量第一iot协议的样本,并从中提取指纹构建指纹库;指纹库中的指纹添加字段涵义是否学习标志位;

s02.构建搜索引擎库,学习第一iot协议的字段涵义,构建搜索引擎库,并根据学习结果修改指纹库中对应指纹的标志位;

s03.接收iot设备上报给iot平台的第一iot协议报文;

s04.识别步骤s03中的第一iot协议报文的指纹和字段涵义,对于能够识别的,自动跳转至步骤s05,对于不能识别的,则通过重复步骤s01、s02操作向所述指纹库中添加指纹和字段涵义;

s05.根据步骤s04中识别的字段涵义,对所述第一iot协议报文进行解析,并将相关字段值重组为第二iot协议报文。

进一步的,所述步骤s01中构建指纹库的具体方法为:

1)使用递归算法,解析出第一iot协议json格式数据的纯协议文本;所述纯协议文本为键和值类型字符串的文本,所述值类型包括数值型、字符串型和布尔型;

2)通过正则匹配替换纯协议文本中的空格、换行符和制表符,得到压缩后的纯协议文本;

3)对所述压缩后的纯协议文本使用sha256算法进行签名,得到256位的字符串即为指纹;

4)将所述指纹存入指纹库,并增加字段涵义是否学习标志位,字段涵义是否学习标志位值范围为0或者1;0表示未学习第一iot协议字段涵义;1表示已学习到第一iot协议字段涵义。

进一步的,所述步骤s02中的字段涵义包括消息id、协议版本号、协议命名空间、报文收发时间、设备id、设备属性名、设备属性值、设备扩展信息,构建搜索引擎库的具体方法为:

1)建立搜索引擎库,导入所述字段涵义的习惯命名;

2)遍历第一iot协议报文的各字段得其命名an,遍历搜索引擎库中的各习惯命名得出命名bm,采用相似度匹配算法计算命名an与命名bm的相似度,记为anbm;两层遍历最终获得的结果集矩阵如下:

相似度匹配算法的传入参数为两个字符串,记为str1和str2,执行过程如下:

a.计算两个字符串的长度len1和len2;

b.建立二维数组dif,行长度为len1+1,列长度为len2+1;

c.将0到len1按顺序存入dif[index,0],即dif[index,0]=index,index为序号;

d.将0到len2按顺序存入dif[0,index],即dif[0,index]=index,index为序号;

e.定义函数f1,传入参数为3个数值,计算并返回其中最小的数值;

f.通过两层循环遍历str1和str2得到str1[i-1]和str2[j-1],定义temp,如果str1[i-1]等于str2[j-1],则将0赋值给temp,如果str1[i-1]不等于str2[j-1],则将1赋值给temp;向函数f1中传入dif[i-1,j-1]+temp,dif[i,j-1]+1,dif[i-1,j]+1,获得三个值中的最小值min,将min赋值给dif[i,j];

g.相似度公式

similarity=1-(float)dif[len1,len2]/max(len1,len2)

其中max(len1,len2)为返回len1和len2的最大值;

根据公式可算出字符串str1和字符串str2的相似度similarity,相似度similarity范围在[0,1]之间,数值越大,表示相似度越高;

3)对所述结果集矩阵每行采用排序算法对相似度集合按数值大小进行倒序排序,获得每行的最大值,记作aibx,则命名为ai的字段涵义最有可能为习惯命名bx对应的字段涵义;

4)对匹配结果进行人工标识校准,将标识结果添加到所述搜索引擎库;

5)将标识结果添加到所述指纹库中对应的指纹记录里,并修改其所述字段涵义是否学习标志位的值为1。

进一步的,所述虚拟协议转换装置包括一个虚拟数据接收器、一个虚拟智能识别器和一个虚拟智能转换器;所述虚拟只能识别器用以从大量第一iot协议的样本中提取特征,构建第一iot协议的指纹库,以及学习字段涵义构建搜索引擎库;所述虚拟数据接收器用以接收iot设备上报给iot平台的第一iot协议报文并发送给虚拟智能识别器;所述虚拟智能转换器用以接收虚拟智能识别器的识别结果,对第一iot协议报文进行解析,并将相关字段值重组为第二iot协议报文。

进一步的,所述虚拟智能转换器对第一iot协议报文进行解析,并将相关字段值重组为第二iot协议报文的具体过程为:将第一iot协议的值映射到第二iot协议对应的字段的过程。

本发明还提供一种计算机可读存储介质,计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述的方法。

本发明的优点在于:

本发明通过构建第一iot协议的指纹库,以及与之关联的搜索引擎库,可快速确定第一iot协议的类型,并根据该类型协议的字段涵义快速映射到第二iot协议,实现速接入各种设备,iot平台对各种iot设备的远程监测和控制的目的。

通过自学习可不断更新指纹库,实现对各种协议的识别。

附图说明

图1为本发明实施中物联网设备和物联网平台之间对接的通信方法的流程图;

图2图示出由图1的第一iot协议报文格式示例与第二iot协议报文格式示例字段映射关系图;

图3为本发明实施例中物联网设备和物联网平台之间对接的通信系统的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所述,本实施例提供一种物联网设备和物联网平台之间对接的通信方法,包括以下步骤:

s01.构建指纹库,获取大量第一iot协议的样本,并从中提取指纹构建指纹库;指纹库中的指纹添加字段涵义是否学习标志位;

s02.构建搜索引擎库,学习第一iot协议的字段涵义,构建搜索引擎库,并根据学习结果修改指纹库中对应指纹的标志位;

s03.接收iot设备上报给iot平台的第一iot协议报文;

s04.识别步骤s03中的第一iot协议报文的指纹和字段涵义,对于能够识别的(所述指纹在指纹库中存在且其字段涵义是否学习标志位的值为1),自动跳转至步骤s05,对于不能识别的,则通过重复步骤s01、s02操作向所述指纹库中添加指纹和字段涵义;

s05.根据步骤s04中识别的字段涵义,对所述第一iot协议报文进行解析,并将相关字段值重组为第二iot协议报文。

其中,步骤s01中构建指纹库的具体方法为:

1)使用递归算法,解析出第一iot协议json格式数据的纯协议文本;所述纯协议文本为键和值类型字符串的文本,所述值类型包括数值型、字符串型和布尔型;

2)通过正则匹配替换纯协议文本中的空格、换行符和制表符,得到压缩后的纯协议文本;

3)对所述压缩后的纯协议文本使用sha256算法进行签名,得到256位的字符串即为指纹;

4)将所述指纹存入指纹库,并增加字段涵义是否学习标志位,字段涵义是否学习标志位值范围为0或者1;0表示未学习第一iot协议字段涵义;1表示已学习到第一iot协议字段涵义。

步骤s02中的字段涵义包括消息id、协议版本号、协议命名空间、报文收发时间、设备id、设备属性名、设备属性值、设备扩展信息,构建搜索引擎库的具体方法为:

1)建立搜索引擎库,导入所述字段涵义的习惯命名;

2)遍历第一iot协议报文的各字段得其命名an,遍历搜索引擎库中的各习惯命名得出命名bm,采用相似度匹配算法计算命名an与命名bm的相似度,记为anbm;两层遍历最终获得的结果集矩阵如下:

相似度匹配算法的传入参数为两个字符串,记为str1和str2,执行过程如下:

a.计算两个字符串的长度len1和len2;

b.建立二维数组dif,行长度为len1+1,列长度为len2+1;

c.将0到len1按顺序存入dif[index,0],即dif[index,0]=index,index为序号;

d.将0到len2按顺序存入dif[0,index],即dif[0,index]=index,index为序号;

e.定义函数f1,传入参数为3个数值,计算并返回其中最小的数值;

f.通过两层循环遍历str1和str2得到str1[i-1]和str2[j-1],定义temp,如果str1[i-1]等于str2[j-1],则将0赋值给temp,如果str1[i-1]不等于str2[j-1],则将1赋值给temp;向函数f1中传入dif[i-1,j-1]+temp,dif[i,j-1]+1,dif[i-1,j]+1,获得三个值中的最小值min,将min赋值给dif[i,j];

g.相似度公式

similarity=1-(float)dif[len1,len2]/max(len1,len2)

其中max(len1,len2)为返回len1和len2的最大值;

根据公式可算出字符串str1和字符串str2的相似度similarity,相似度similarity范围在[0,1]之间,数值越大,表示相似度越高;

3)对所述结果集矩阵每行采用排序算法对相似度集合按数值大小进行倒序排序,获得每行的最大值,记作aibx,则命名为ai的字段涵义最有可能为习惯命名bx对应的字段涵义;

4)对匹配结果进行人工标识校准,将标识结果添加到所述搜索引擎库。

5)将标识结果添加到所述指纹库中对应的指纹记录里,并修改其所述字段涵义是否学习标志位的值为1。

步骤s05中重组的具体方法为:如图2所示,将第一iot协议的值映射到第二iot协议对应的字段的过程。

本发明通过构建第一iot协议的指纹库,以及与之关联的搜索引擎库,可快速确定第一iot协议的类型,并根据该类型协议的字段涵义快速映射到第二iot协议,实现速接入各种设备,iot平台对各种iot设备的远程监测和控制的目的。通过自学习可不断更新指纹库,实现对各种协议的识别。

本实施例还提供一种物联网设备和物联网平台之间对接的通信系统,如图3所示,包括:

至少一个iot设备,其能够执行基于至少一种第一iot协议来通信的一种应用程序;

至少一个iot平台,其能够以基于第二iot协议通信的方式实现iot设备状态监视和控制指令下发;

以及一种基于人工智能的虚拟协议转换装置;所述人工智能的虚拟协议转换装置支持第一iot协议和第二iot协议的转换;

系统架构图3图示出根据示例性实施例的示例性硬件系统100的示意性框图。系统可以包括虚拟协议转换装置110、各种iot设备120以及iot云平台130。各种组件可以使用第一iot协议、第二iot协议进行通信。虚拟协议转换装置110可以是能够根据需要跨多个协议第一iot协议、第二iot协议在iot设备120与iot云平台130之间通信的基于分布式的虚拟设备。可以使用跨各种适当网络(例如,蜂窝式网络、无线网络、万维网等)访问一个或多个服务器设备来实现虚拟协议转换装置110。可以在iot云平台130、iot设备120的对接处加入虚拟协议转换装置。

ii.可以将虚拟协议转换装置110用做任何iot协议(无论是标准还是专用)转换为iot云平台协议的插件。转换装置可以支持诸如无线协议之类的现有和/或潜在协议。转换装置可以利用加密通信。下面将参考图2、图3来更详细地描述虚拟协议转换装置。

每个iot设备120可以是能够跨至少一个协议140进行通信的电子设备。iot设备120可以包括具有嵌入式iot功能的物理设备、运载工具、建筑物等。示例性iot设备包括温/湿度监测仪、测斜设备、测水平/垂直位移设备等。在某些情况下,iot设备可以包括能够跨一个或多个网络通信的多个物理组件(例如,测斜设备可以包括物理传感器主板、wifi芯片、采集器等)。

此类设备可以包括诸如传感器、致动器、有线或无线通信发送机和/或接收机等元件。此类设备通常能够连接到一个或多个本地或分布式网络。

所述虚拟协议转换装置的转换方法如下:

s01.构建指纹库,获取大量第一iot协议的样本,并从中提取指纹构建指纹库;指纹库中的指纹添加字段涵义是否学习标志位;

s02.构建搜索引擎库,学习第一iot协议的字段涵义,构建搜索引擎库,并根据学习结果修改指纹库中对应指纹的标志位;

s03.接收iot设备上报给iot平台的第一iot协议报文;

s04.识别步骤s03中的第一iot协议报文的指纹和字段涵义,对于能够识别(所述指纹在指纹库中存在且其字段涵义是否学习标志位的值为1),自动跳转至步骤s05,对于不能识别的,则通过重复步骤s01、s02操作向所述指纹库中添加指纹和字段涵义;

s05.根据步骤s04中识别的字段涵义,对所述第一iot协议报文进行解析,并将相关字段值重组为第二iot协议报文。

步骤s01中构建指纹库的具体方法为:

1)使用递归算法,解析出第一iot协议json格式数据的纯协议文本;所述纯协议文本为键和值类型字符串的文本,所述值类型包括数值型、字符串型和布尔型;

2)通过正则匹配替换纯协议文本中的空格、换行符和制表符,得到压缩后的纯协议文本;

3)对所述压缩后的纯协议文本使用sha256算法进行签名,得到256位的字符串即为指纹;

4)将所述指纹存入指纹库,并增加字段涵义是否学习标志位,字段涵义是否学习标志位值范围为0或者1;0表示未学习第一iot协议字段涵义;1表示已学习到第一iot协议字段涵义。

步骤s02中的字段涵义包括消息id、协议版本号、协议命名空间、报文收发时间、设备id、设备属性名、设备属性值、设备扩展信息,构建搜索引擎库的具体方法为:

1)建立搜索引擎库,导入所述字段涵义的习惯命名;

2)遍历第一iot协议报文的各字段得其命名an,遍历搜索引擎库中的各习惯命名得出命名bm,采用相似度匹配算法计算命名an与命名bm的相似度,记为anbm;两层遍历最终获得的结果集矩阵如下:

相似度匹配算法的传入参数为两个字符串,记为str1和str2,执行过程如下:

a.计算两个字符串的长度len1和len2;

b.建立二维数组dif,行长度为len1+1,列长度为len2+1;

c.将0到len1按顺序存入dif[index,0],即dif[index,0]=index,index为序号;

d.将0到len2按顺序存入dif[0,index],即dif[0,index]=index,index为序号;

e.定义函数f1,传入参数为3个数值,计算并返回其中最小的数值;

f.通过两层循环遍历str1和str2得到str1[i-1]和str2[j-1],定义temp,如果str1[i-1]等于str2[j-1],则将0赋值给temp,如果str1[i-1]不等于str2[j-1],则将1赋值给temp;向函数f1中传入dif[i-1,j-1]+temp,dif[i,j-1]+1,dif[i-1,j]+1,获得三个值中的最小值min,将min赋值给dif[i,j];

g.相似度公式

similarity=1-(float)dif[len1,len2]/max(len1,len2)

其中max(len1,len2)为返回len1和len2的最大值;

根据公式可算出字符串str1和字符串str2的相似度similarity,相似度similarity范围在[0,1]之间,数值越大,表示相似度越高;

3)对所述结果集矩阵每行采用排序算法对相似度集合按数值大小进行倒序排序,获得每行的最大值,记作aibx,则命名为ai的字段涵义最有可能为习惯命名bx对应的字段涵义;

4)对匹配结果进行人工标识校准,将标识结果添加到所述搜索引擎库;

5)将标识结果添加到所述指纹库中对应的指纹记录里,并修改其所述字段涵义是否学习标志位的值为1。

虚拟协议转换装置包括一个虚拟数据接收器、一个虚拟智能识别器和一个虚拟智能转换器;所述虚拟只能识别器用以从大量第一iot协议的样本中提取特征,构建第一iot协议的指纹库,以及学习字段涵义构建搜索引擎库;所述虚拟数据接收器用以接收iot设备上报给iot平台的第一iot协议报文并发送给虚拟智能识别器;所述虚拟智能转换器用以接收虚拟智能识别器的识别结果,对第一iot协议报文进行解析,并将相关字段值重组为第二iot协议报文。

虚拟智能转换器对第一iot协议报文进行解析,并将相关字段值重组为第二iot协议报文的具体过程为:

本发明还提供一种计算机可读存储介质,计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述的方法

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1