让网关适配多个基于MQTT通讯的云平台的方法及网关系统
文献发布时间:2024-04-18 19:58:21
技术领域
本发明涉及网关,更确切地说是让网关适配多个基于MQTT通讯的云平台的方法及网关系统。
背景技术
在物联网领域中,网关起到了关键的作用,它是物联网体系结构中的一个重要组件,用于连接和协调物联网设备与云平台之间的通信和数据传输。
现有网关与云平台的连接通常有以下几种方式:
1、直接将设备接入一个云平台
设备直接连接到单一的云平台,可以快速地实现数据交换。但缺点是,不同的云平台之间的通讯协议和数据格式不同,导致设备厂商需要为不同的云平台进行适配和修改工作,耗费大量的时间和精力。
2、使用标准通讯协议进行数据传输
将设备与云平台连接起来,使用标准的通讯协议(例如 HTTP、HTTPS、MQTT 等)进行数据传输。但是,此方法可能会导致设备启动时间缓慢,并且在网络中断时会出现生命周期问题,此外,不同云平台之间的通讯协议和数据格式不同也可能导致适配问题。
3、基于云边协同的方式
使用应用程序将设备和云平台进行连接,可以使用 API 和 SDK 进行数据传输和管理设备。这种方法最大的缺点在于,需要设备厂商具备较强的技术能力,同时需要大量的工作来实现 API 和 SDK 的开发。
显然,虽然现在越来越多的云平台与网关之间支持使用MQTT进行通信,但不同的云平台的接入方式、数据格式和协议有很大的差异,给设备厂商在接入和管理设备时带来很大的困难,网关不能很好的适配多个云平台。
发明内容
本发明为了解决现有技术网关不能很好的适配多个云平台的技术问题,提供了一种让网关适配多个基于MQTT通讯的云平台的方法。
为解决上述技术问题,本发明采用的技术方案为设计一种让网关适配多个基于MQTT通讯的云平台的方法,包括:
将网关与云平台和终端设备连接;
在网关中生成自管系统界面,在自管系统界面中配置与云平台相适配的网关TOPIC,通过所述网关TOPIC绑定到终端设备;所述网关TOPIC根据定义的物模型来设定,所述物模型包括设备属性;所述网关TOPIC与所述终端设备的设备属性相关联;
在网关中配置轮询请求,根据所述轮询请求定时获取所述终端设备的所述设备属性对应的数据;
网关解析所述数据,并根据所述网关TOPIC将所述数据组装成MQTT消息发送至云平台保存。
所述自管系统界面中生成有设备属性设置栏、方法设置栏和事件设置栏,在所述设备属性设置栏、方法设置栏和事件设置栏配置所述网关TOPIC。
所述根据所述网关TOPIC将所述数据组装成MQTT消息发送至云平台保存包括:
根据所述网关TOPIC配置的设备属性将所述数据与所述网关TOPIC相关联,并替换掉所述网关TOPIC配置的设备属性对应的属性参数,将所述属性参数保存到网关中,再根据所述网关TOPIC将所述属性参数组装成MQTT消息发送至云平台保存。
所述网关还通过网络与移动终端连接,在所述移动终端打开所述自管系统界面,对所述网关TOPIC进行配置,并通过所述移动终端监控所述网关的运行。
所述将网关与云平台和终端设备连接包括:
针对所述网关配置认证方式,所述网关与所述云平台和终端设备先进行认证,认证成功后建立连接;所述认证方式包括:内置认证文件认证、证书认证、硬件地址认证和用户名称密码认证。
所述让网关适配多个基于MQTT通讯的云平台的方法还包括:
云平台通过MQTT下发服务至所述网关,所述网关根据所述网关TOPIC对所述服务进行匹配,若匹配成功,则根据所述网关TOPIC的配置进行校验,校验通过后,下发执行指令至所述终端设备,终端设备执行所述执行指令对应的功能,并返回执行结果至所述网关,通过所述网关将所述执行结果传输至所述云平台。
本发明还提供了一种网关系统,包括网关、与所述网关连接的云平台和与所述网关连接的终端设备,所述网关包括:
TOPIC配置模块,其在网关中生成自管系统界面,在自管系统界面中配置与云平台相适配的网关TOPIC,通过所述网关TOPIC绑定到终端设备;所述网关TOPIC根据定义的物模型来设定,所述物模型包括设备属性;所述网关TOPIC与所述终端设备的设备属性相关联;
数据获取模块,其在网关中配置轮询请求,根据所述轮询请求定时获取所述终端设备的所述设备属性对应的数据;
数据处理模块,其解析所述数据,并根据所述网关TOPIC将所述数据组装成MQTT消息发送至云平台保存。
所述自管系统界面中生成有设备属性设置栏、方法设置栏和事件设置栏,在所述设备属性设置栏、方法设置栏和事件设置栏配置所述网关TOPIC;
所述根据所述网关TOPIC将所述数据组装成MQTT消息发送至云平台保存包括:
根据所述网关TOPIC配置的设备属性将所述数据与所述网关TOPIC相关联,并替换掉所述网关TOPIC配置的设备属性对应的属性参数,将所述属性参数保存到网关中,再根据所述网关TOPIC将所述属性参数组装成MQTT消息发送至云平台保存。
所述网关系统还包括移动终端,所述网关还通过网络与移动终端连接,在所述移动终端打开所述自管系统界面,对所述网关TOPIC进行配置,并通过所述移动终端监控所述网关的运行。
所述网关还包括认证模块,所述认证模块针对所述网关配置认证方式,所述网关与所述云平台和终端设备先进行认证,认证成功后建立连接;所述认证方式包括:内置认证文件认证、证书认证、硬件地址认证和用户名称密码认证。
本发明通过在网关中生成自管系统界面,在自管系统界面中配置与云平台相适配的网关TOPIC,通过所述网关TOPIC绑定到终端设备;所述网关TOPIC根据定义的物模型来设定,所述物模型包括设备属性;所述网关TOPIC与所述终端设备的设备属性相关联;再在网关中配置轮询请求,根据所述轮询请求定时获取所述终端设备的所述设备属性对应的数据;然后,通过网关解析所述数据,并根据所述网关TOPIC将所述数据组装成MQTT消息发送至云平台保存。从而使用户可通过自管系统界面方便的在网关动态配置网关TOPIC,以适配不同的云平台。
附图说明
下面结合实施例和附图对本发明进行详细说明,其中:
图1是本发明让网关适配多个基于MQTT通讯的云平台的方法的流程图;
图2是本发明网关系统的原理图。
具体实施方式
下面结合附图进一步阐述本发明的具体实施方式:
请一并参见图1至图2。本发明让网关适配多个基于MQTT通讯的云平台的方法包括:
第一步:将网关与云平台和终端设备连接。
可以针对所述网关配置认证方式,所述网关与所述云平台和终端设备先进行认证,认证成功后建立连接;所述认证方式包括:内置认证文件认证、证书认证、硬件地址认证和用户名称密码认证。
可以针对每个网关配置适当的认证方式 ,比如,可以通过配置服务器地址、端口、用户名称、密码或者证书等方式进行认证,也可以通过在烧录系统时内置认证文件进行认证和注册。
第二步:在网关中生成自管系统界面,在自管系统界面中配置与云平台相适配的网关TOPIC,通过所述网关TOPIC绑定到终端设备;所述网关TOPIC根据定义的物模型来设定,所述物模型包括设备属性;所述网关TOPIC与所述终端设备的设备属性相关联。
物模型的使用可便于用统一的语言描述、控制和理解产品的功能,物模型由若干条“参数”组成,参数按描述的功能类型不同,又分为属性、方法和事件。
在本具体实施例中,所述自管系统界面中生成有设备属性设置栏、方法设置栏和事件设置栏,在所述设备属性设置栏、方法设置栏和事件设置栏配置所述网关TOPIC。通过生成菜单式的设置栏,可使用户更加方便的进行网关TOPIC的配置。
在本具体实施例中,为便于随时随地对网关TOPIC进行配置,同时,又可对网关进行监控,所述网关还通过网络与移动终端连接,在所述移动终端打开所述自管系统界面,对所述网关TOPIC进行配置,并通过所述移动终端监控所述网关的运行。
通过JSON格式定义描述网关与终端设备的物模型,描述设备功能和数据的结构化方式。并在终端设备实现物模型的功能,其中功能包括属性、方法、事件对应的功能。
需要为属性、方法、事件配置单独的网关TOPIC,以确保正确的数据交换。这包括发布和订阅主题。主题应该与物模型中定义的属性、方法和事件相关联,以便设备能够发送和接收数据。
第三步:在网关中配置轮询请求,根据所述轮询请求定时获取所述终端设备的所述设备属性对应的数据。
第四步:网关解析所述数据,并根据所述网关TOPIC将所述数据组装成MQTT消息发送至云平台保存。
所述根据所述网关TOPIC将所述数据组装成MQTT消息发送至云平台保存包括:根据所述网关TOPIC配置的设备属性将所述数据与所述网关TOPIC相关联,并替换掉所述网关TOPIC配置的设备属性对应的属性参数,将所述属性参数保存到网关中,再根据所述网关TOPIC将所述属性参数组装成MQTT消息发送至云平台保存。
例如定义网关TOPIC为:skysi/{deviceName}/{productKey}/attribute/temperature ;此网关TOPIC的关键值是:{deviceName}/{productKey},其他值可根据不同的云平台自由定义,比如:my/{productKey}/{deviceName}/properties/temperature。
如果网关TOPIC关联一个温度传感器(即终端设备),关键属性为:{deviceName:’0001’,productKey:ddda001};
则定义的网关TOPIC就为:skysi/0001/ddda001/attribute/temperature。
给温度传感器(即终端设备)定义了一获取空气温度的功能,返回值是{temperature:xx};通过配置网关TOPIC的上报数据格式 ,关键的属性可绑定到设备的temperature返回值。
上报的数据格式为:
{
date: 常量获取
version:常量获取
data:{
temperature: 映射到终端设备的获取温度-temperature属性
}
}
示例上的所有的key和格式层级都可以根据不同的云平台进行调整。
下面通过一个具体的例子来说明。
例如,定义一个与CPU数、内存大小有关的物模型,CPU数、内存大小为属性名称,两个属性名称一一对应有属性参数,属性参数的数据类型都为int类型,同时还有一个发出报警的服务。具体的程序代码如下:
{
propertys:{
cpu_rate:{
data_type:int
},
memeny:{
data_type:int
}
},
servers:{
alarm:{
params:{
switch:{
data_type:"string"
}
}
}
}
}
同时,网关开发对应的功能,去实现获取CPU使用率和内存大小的功能。
通过在网关TOPIC中关联对应的物模型,如果是发布主题就触发网关对应的功能,获取对应的值,更新主体参数,如果是订阅主题就触发相应的服务。
TOPIC 有两种类型:发布与订阅。其中:
发布应用在属性上报和事件上报。
例如,定义属性上报的主体参数,具体的程序代码如下:
{
id:1212121a
version:"1.0",
params:{
"cpu_rate":{
value: "#propertys>cpu_num"
},
"memory":{
value:"#propertys>memeny"
}
}
}
则网关会自动照规则识别TOPIC的属性 ,当识别到"#propertys>cpu_num","#propertys>memeny" 时会与设备的模型的cpu_num,memeny一一对应关联,并调用设备功能获取对应的值,然后再替换掉原有的值。例如,当cpu使用率为20% ,内存大小为 8G时,转换后上报的主体参数相应的程序代码如下:
{
id:1212121a
version:"1.0",
params:{
"cpu_num":{
value: 50
},
"memory":{
value:80129911
}
}
}
订阅应用在服务接收。其中主体参数的定义举例如下:
{
"id": "123",
"version": "1.0",
"params": {
"switch": "#servers>alarm"
},
"method": "thing.service.alarm"
}
当网关的TOPIC 接收到消息是为识别method属性,thing.service.alarm与services.alarm相关联,程序再调用相关的方法,并把params里的值作为参数传递到方法,达到适配服务下发的功能。
由于用户可以通过自管系统界面在网关动态配置对应的 TOPIC,可避免在与云平台对接时直接固定TOPIC,不能修改 ,从而使用户可方便的在网关动态配置TOPIC,从而可适配不同的云平台。
请一并参见图2。本发明的网关系统包括网关1、与所述网关连接的云平台2和与所述网关连接的终端设备3,其中:
所述网关包括TOPIC配置模块、数据获取模块和数据处理模块,其中:
TOPIC配置模块在网关中生成自管系统界面,在自管系统界面中配置与云平台相适配的网关TOPIC,通过所述网关TOPIC绑定到终端设备;所述网关TOPIC根据定义的物模型来设定,所述物模型包括设备属性;所述网关TOPIC与所述终端设备的设备属性相关联。
所述自管系统界面中生成有设备属性设置栏、方法设置栏和事件设置栏,在所述设备属性设置栏、方法设置栏和事件设置栏配置所述网关TOPIC。
数据获取模块在网关中配置轮询请求,根据所述轮询请求定时获取所述终端设备的所述设备属性对应的数据。
数据处理模块解析所述数据,并根据所述网关TOPIC将所述数据组装成MQTT消息发送至云平台保存。
所述根据所述网关TOPIC将所述数据组装成MQTT消息发送至云平台保存包括:根据所述网关TOPIC配置的设备属性将所述数据与所述网关TOPIC相关联,并替换掉所述网关TOPIC配置的设备属性对应的属性参数,将所述属性参数保存到网关中,再根据所述网关TOPIC将所述属性参数组装成MQTT消息发送至云平台保存。
在本具体实施例中,所述网关系统还包括移动终端4,所述网关还通过网络与移动终端连接,在所述移动终端打开所述自管系统界面,对所述网关TOPIC进行配置,并通过所述移动终端监控所述网关的运行。从而可便于随时随地对网关TOPIC进行配置,同时,又可对网关进行监控。
为了保证有序连接,所述网关还包括认证模块,所述认证模块针对所述网关配置认证方式,所述网关与所述云平台和终端设备先进行认证,认证成功后建立连接;所述认证方式包括:内置认证文件认证、证书认证、硬件地址认证和用户名称密码认证。
本发明具有以下特点:
1、用户可以通过自管系统界面在网关动态配置网关 TOPIC,可避免在与云平台对接时直接固定TOPIC,不能修改, 达到适配不同的云平台的目的,提供了更加灵活和精细的数据传输和控制手段。
2、支持网关通过属性配置或者配置文件导入的方式来连接云平台,提升云端服务大兼容性与可扩展性。通过模块化设计思想和通用的软件架构,可以适配不同的云平台接口和协议,实现了设备和云平台之间的互操作性和兼容性。同时,用户可以自由选择对应的云平台,并输入相应的信息进行认证和连接。
3、网关可以对接不同云平台,提高云平台与网关的灵活性和可配置性,并减少了维护成本。
4、基于 MQTT 通讯协议的设备接入和数据传输,采用了通用的 MQTT 通讯协议,使得终端设备和云平台之间可以高效、稳定和安全地进行通讯和数据传输。
5、通过设置自管系统界面,通过网页和手机等终端,用户可以随时随地监控网关的运行状态、数据传输情况和设备接入状况,以及对系统进行实时配置和管理,满足不同业务需求的变化和调整。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
- 停车场门禁系统、适配方法及物联网网关
- 基于MQTT和报文约定的网关通信方法、系统及网关设备
- 基于MQTT和报文约定的网关通信方法、系统及网关设备