一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于MQTT的wi-sun网络数据采集方法与装置与流程

2022-05-18 10:34:28 来源:中国专利 TAG:

一种基于mqtt的wi-sun网络数据采集方法与装置
技术领域
1.本发明涉及配电数据采集领域,特别是涉及一种基于mqtt的wi-sun网络数据采集方法与装置。


背景技术:

2.wi-sun中文翻译为智能无线网络,是一系列基于ieee 802.15.4为底层协议的标准无线通信网络的统称,该标准主要包含wi-sun fan和wi-sun han,其中wi-sun han主要使用在家庭应用场景,利用中心节点和家庭各种设备进行一对一或一对多的通信,wi-sun fan主要使用在户外场景,多应用在需要多跳传输的智能表计,智慧路灯等密集的城市网络,本专利主要是应用在户外场景的电力数据采集领域,因此采用wi-sun fan的标准。
3.在wi-sun协议中使用rpl(ipv6 routing protocol for low-power and lossy networks)的非存储模式实现路由机制,rpl主要作用是实现wi-sun在低功耗有损网络中的路由机制,rpl非存储模式中,每个dodag(destination-oriented directed acyclic graph,面向目标的有向无环图)的节点中只有根节点存储着dodag中的全量路由信息,而其他节点只存储其父节点的路由信息。
4.在实际wi-sun网络中,一个dodag往往是一个wi-sun fan中边缘上进行实际数据采集,因此在后文中将dodag称为边缘网络,而整个rplinstance就是由多个边缘网络组成到。
5.mqtt(message queuing telemetry transport,消息队列遥测传输)是iso标准(iso/iec prf 20922)下基于发送/订阅范式的消息协议。它工作在tcp/ip协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发送/订阅型消息协议,在mqtt协议中,由一个mqtt broker和多个mqtt client组成,在mqtt协议中发送者(publish)、代理(broker)(服务器)、订阅者(subscribe)。其中,消息的发送者和订阅者都是客户端mqtt client,消息代理是服务器,消息发送者可以同时是订阅者。
6.mqtt传输的消息分为:主题(topic)和负载(payload)两部分,mqtt client通过向mqtt broker订阅相关主题表示自身需要接收哪些发送的消息,当mqtt broker接收到mqtt client发送的相关主题消息后,会将该消息转发给所有订阅该主题的mqtt client上,以上mqtt的订阅/发送模型主要流程。
7.mqtt通过tcp/ip提供网络连接,属于小型传输,开销很小,因此mqtt协议常用于网络环境较差的物联网场景中。
8.原有的wi-sun网络中,跨边缘网络采取tcp/udp方式,当一个边缘网络中的节点想和别的边缘网络节点进行通信,设置目标的ip,将数据传输给边缘主节点,边缘主节点连接主干网络,将消息发送给主干网络,主干网络根据路由规则找到对应目标边缘网络的主节点,目标主节点再讲消息发送给对应的从节点,对比后发现,原有的wi-sun方案需要经过主干网络的路由,对于配电采集的户外场景下,网络可能经常出现不稳定的情况,且主干网络的路由规则可能比较复杂,带来较多的资源消耗,采取点对点的通信方式,当某些数据需要
发送给多个目标时也需要将数据从源到目标发送多次。
9.在wi-sun的边缘网络间通信是通过tcp/ip技术,边缘网络间是通过主干网络进行通信,其外部路由规则可能较为复杂,当就近的边缘网络想要通信,也可能需要经过复杂路由;在wi-sun网络间,某个边缘网络节点想要将某个消息发送给别的边缘网络节点时,该消息需要进行多次发送,造成了网络资源的消耗。
10.鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。


技术实现要素:

11.针对以上缺陷或改进需求,为了降低wi-sun的边缘网络间通信的复杂程度,并且减少在消息多次发送时造成的网络资源消耗,本发明提供一种基于mqtt的wi-sun网络数据采集方法与装置。
12.本发明采用如下技术方案:
13.第一方面,一种基于mqtt的wi-sun网络数据采集方法,包括:边缘网络内的主节点和边缘网络内的从节点,其中:
14.对于边缘网络内的主节点与边缘网络内的从节点来说,边缘网络内的主节点作为mqtt broker,边缘网络内的从节点作为mqtt client。
15.优选的,在边缘网络间部署一个新节点作为根节点,对于边缘网络间的根节点与边缘网络内的主节点来说,所述根节点作为mqtt broker,每个边缘网络的主节点作为mqtt client。
16.优选的,同一边缘网络中的所有节点都将自身的节点标识映射到同一个网络id上,所述边缘网络使用网络id用以识别。
17.优选的,各个边缘网络的主节点将本边缘网络内的节点标识与网络id的映射关系发送给所述根节点,所述根节点将接收到的映射关系发送给各个边缘网络内的主节点,使得每个边缘网络内的主节点储存有所有节点标识与网络id的映射关系。
18.优选的,边缘网络内的从节点向同一边缘网络内的主节点发送消息,所述主节点解析获得的消息得到目标节点对应的网络id与节点标识。
19.优选的,根据主节点解析消息得到的目标节点对应的网络id与节点标识,当所述目标节点为同一边缘网络内的节点时,将所述消息通过mqtt的订阅关系推送给目标节点。
20.优选的,根据主节点解析消息得到的目标节点对应的网络id与节点标识,当所述目标节点为不同边缘网络内的节点时,所述边缘网络内的主节点将接收到的消息发送给所述根节点。
21.优选的,根节点解析所述消息得到目标节点对应的网络id和节点标识,将所述消息发送给对应的目标节点所在的边缘网络内的主节点。
22.优选的,所述目标节点所在的边缘网络内的主节点解析接收到的消息得到目标节点对应的节点标识,将所述消息通过mqtt的订阅关系推送给目标节点。
23.第二方面,本发明还提供了一种基于mqtt的wi-sun网络数据采集装置,用于实现第一方面所述的基于mqtt的wi-sun网络数据采集方法,所述装置包括:
24.至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行
所述的基于mqtt的wi-sun网络数据采集方法。
25.本发明提供一种基于mqtt的wi-sun网络数据采集方法与装置,极大地降低wi-sun的边缘网络间通信的复杂程度,并且减少在消息多次发送时造成的网络资源消耗。
附图说明
26.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集方法概念示意图;
28.图2是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集方法流程示意图;
29.图3是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集方法流程示意图;
30.图4是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集方法负载示意图;
31.图5是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集方法流程示意图;
32.图6是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集方法概念示意图;
33.图7是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集方法流程示意图;
34.图8是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集方法流程示意图;
35.图9是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集方法流程示意图;
36.图10是本发明实施例提供的一种基于mqtt的wi-sun网络数据采集装置的装置示意图。
具体实施方式
37.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
38.在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
39.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
40.实施例1:
41.本发明实施例1提供了一种基于mqtt的wi-sun网络数据采集方法,针对边缘网络内部的节点信息状态,在边缘网络内部署mqtt服务,由于边缘网络中的子节点只保存父节点的路由信息,当边缘网络中的一个节点想要和别的节点通信的时候,都必须要经过主节点才能和别的节点进行通信,因此采取边缘网络内部署mqtt协议,并不会增加较多的资源消耗,当从节点和同一边缘网络内的其他从节点进行通信的时候,通过向同一边缘网络内的主节点发送相关消息主题,其他从节点通过订阅与自己相关的主题,接收主节点发送的消息。
42.由于本方案采取边缘网络内部署mqtt协议,所以所有涉及到节点之间的消息发送,均为通过边缘网络的mqtt协议进行发送。
43.如图1所示,在边缘网络内部署了mqtt服务的基础上,为解决wi-sun边缘网络间的数据通信问题,在wi-sun的边缘网络间部署一个新节点作为根节点,提供了一种基于wi-sun网络的mqtt跨边缘网络数据采集方法,包括:边缘网络间的根节点101、边缘网络102、边缘网络内的主节点103和边缘网络内的从节点104,其中:
44.在边缘网络间部署一个新节点作为根节点,边缘网络内的从节点向同一边缘网络内的主节点发送目标为其他边缘网络内节点的消息,所述边缘网络内的主节点将接收到的所述消息发送给所述部署的根节点,所述根节点将所述接收到的消息发送给对应的边缘网络内的目标节点。
45.在所有边缘网络的外部设置一个根节点,所述根节点对应各个边缘网络中的主节点组成一组mqtt,对比边缘网络内的主节点与从节点组成的mqtt,根节点和各边缘网络的主节点组成的mqtt要高一层次,通过各边缘网络和根节点之间通信来进行不同边缘网络之间的消息交互。
46.如图1所示,对于边缘网络间的根节点与边缘网络内的主节点来说,所述根节点作为mqtt broker;每个边缘网络的主节点作为mqtt client,作为一个层次的mqtt;对于边缘网络内的主节点与边缘网络内的从节点来说,边缘网络内的主节点作为mqtt broker,边缘网络内的从节点作为mqtt client,作为更高一层次的mqtt。
47.其中,mqtt broker为消息代理,作为服务器,用于接收消息后进行负载与解析消息;mqtt client为消息的发送者和订阅者。
48.根据mqtt的订阅关系,若所述从节点要从主节点接收消息时,所述目标节点需要先向同一边缘网络内的主节点进行订阅,若所述主节点要从根节点接收到消息时,需要先向根节点进行订阅,只有当所述订阅关系成立时,发送端才能发送消息给订阅端;
49.因此对于边缘网络间的根节点与边缘网络内的主节点来说,每个边缘网络内作为mqtt client的主节点向作为mqtt broker的根节点进行订阅;对于边缘网络内的主节点与边缘网络内的从节点来说,边缘网络内作为mqtt client的从节点向本边缘网络内作为mqtt broker的主节点进行订阅。
50.为了方便对各个边缘网络进行识别调用,本方案存在以下优选设计,将边缘网络中的所有节点的节点标识都映射到唯一一个的网络id,由于每一个边缘网络只对应一个主节点,因此,所述边缘网络可以使用与本边缘网络内所有节点节点标识相映射的网络id用以识别调用。
51.所述节点标识在本发明中为包括节点ip或者节点序号等能够对节点进行区分的唯一标识,在根节点与主节点的mqtt订阅关系建立的情况下,根节点通过得到目标节点的节点标识,从而知道目标节点处于那个边缘网络,将消息发送给对应边缘网络内的主节点。
52.进一步的,当需要调用识别边缘网络中的从节点时,本方案存在以下优选设计,所述边缘网络中的各个从节点通过节点标识识别调用。
53.因此,通过网络id和节点标识就可以确定边缘网络内的各个目标节点
54.在原有的wi-sun网络建立时,为后续边缘网络主节点接收到消息后能对消息内写入的节点标识进行识别来做准备,需要事先储存各个边缘网络内所有节点的节点标识与网络id的映射关系,这样在接收到目标消息后可以根据节点标识得到对应的目标网络id,以找到对应的目标边缘网络与目标节点,因此,本方案存在以下优选设计:
55.如图2所示,各个边缘网络的主节点需要将边缘网络的节点节点标识与网络id的映射关系发送给所述设置的作为mqtt broker的根节点,所述根节点再将其发送给各个边缘网络内的主节点,使得每个边缘网络内的主节点储存有所有节点节点标识与网络id的映射关系;
56.步骤201中,边缘网络中所有节点的节点标识映射到唯一一个网络id(即该边缘网络的id);
57.步骤202中,所述边缘网络中所有节点的节点标识与网络的映射关系发送给所述设置的作为mqtt broker的根节点;
58.步骤203中,所述设置的根节点接收所有边缘网络内主节点上报节点节点标识与网络id的映射关系,并发送给所有边缘网络内的主节点;
59.步骤204中,所述边缘网络内主节点将接收到的所有节点标识与网络id的映射关系进行存储,并以自己的网络id向所述设置的根节点请求对应消息的订阅,以便后续接收对应的消息。
60.当有消息需要从边缘网络内的从节点发送出来时,如图3所示;
61.所述消息需要将对应发送的目标节点的节点标识写入消息主题中,以让所述设置的根节点与边缘网络中的主节点识别发送给对应的目标节点,因此,本方案存在以下优选设计:
62.步骤301中,将所述消息对应的目标节点的节点标识写入消息主题中,其中,如果所述消息需要发送给多个目标节点,则可以将多个节点标识组合写入消息主题中,所述具体组合方式例如:
63.当需要将节点标识中的ip为ip1与ip2的目标节点ip写入消息主题时,写入方式可以为***/***/ip1_ip2/***(其中***代表实际中使用的具有其他含义的主题字段);
64.上述的将多个节点标识写入消息的组合方法仅为示例,实际使用时可根据本领域技术人员的判断自行设计与选择,所述组合方法不应限制本专利保护范围。
65.由于如果主节点直接根据节点标识来找到目标节点的话,那么边缘网络间消息通信都是由各个边缘网络内的主节点完成,而当消息需要发送给多个目标节点时,发送方主节点就要发送多份消息给各个目标边缘网络主节点,导致主节点压力过大;而本方案采用了边缘网络间的mqtt,主节点只要发送一次,实际的多份发送由根节点完成,从而降低各个主节点的压力;mqtt消息需要主题标识,主题标识之后找到对应节点就需要节点标识,因此
本发明还涉及到以下优选设计:
66.步骤302中,由于目标节点的节点标识映射到了唯一一个网络id,边缘网络内主节点在接收到从节点发送的消息后,根据事前从根节点接收储存的节点标识与网络id的关系,解析消息得出对应目标节点的网络id和节点标识将其封装到负载或者主题中;
67.其中所述封装优选为将被解析方的节点标识与网络id封装至解析方的负载当中,在本发明中所述被解析方优选为接收消息的目标节点,所述解析方优选为主节点或者根节点。
68.步骤303中,主节点将网络id与节点标识存入到新的负载中,具体封装形式如图4所示,将其发送给所述设置在边缘网络间的根节点。
69.其中图4具体为主节点的封装形式,图4中所示主题优选写入为主节点将消息发送给根节点的命令,图4中所示负载优选封装内容为从消息中解析出来的目标节点的节点标识与网络id,图4中所示原有通信负载优选封装内容为消息的本体数据。
70.当所述根节点接收到由边缘网络内主节点发送的消息后,如图5所示;
71.步骤501中,当边缘网络间设置的根节点接收到边缘网络内主节点发送的消息后,所述根节点根据接收到的信息中的负载内容,找到对应的目标边缘网络的网络id与节点标识;
72.在传统方案中,当消息需要发送给多个目标时需要将所述一个消息多次发送给不同目标节点,带来了更多的资源消耗,而本方案中,在网络id与节点标识写入发送消息的主题中时,本方案支持多个网络id与节点标识写入所述消息的主题中,所以本方案还支持所述根节点接收到一条消息,发送给大于一个数量的目标节点,具体的:
73.步骤502中,当所述根节点解析接收到的消息中的网络id与节点标识,若网络id与节点标识数量大于一时,代表有大于一数量的目标节点需要接收所述消息,所述根节点将接收到的消息复制成对应的大于一的数量;
74.步骤503中,所述根节点根据解析出来网络id,将消息发送给对应的目标边缘网络的主节点;
75.步骤504中,所述主节点解析接收到的消息,得到接收消息的对应的节点标识,找到目标节点;
76.步骤505中,所述主节点通过mqtt的订阅关系将消息推送给同一边缘网络内的目标节点。
77.实施例2:
78.本发明实施例2提供了一种基于mqtt的wi-sun网络数据采集方法,本实施例2相比实施例1从更为具体的情景来展现本方案的实施流程。
79.如图6所示,在本实施例中,n1节点发送消息给n2节点;
80.如图7所示,具体流程如下:
81.步骤701中,所有边缘网络中的主节点将节点标识与网络id进行映射,并将所述映射关系发送给边缘网络间设置的根节点;
82.步骤702中,所述根节点接收到各个节点标识与网络id的映射关系后,将所述映射关系发送给所有边缘网络;
83.步骤703中,所有边缘网络中的主节点都获取到了节点标识和网络id之间的映射
关系,所述边缘网络中的主节点的网络id向所述设置的根节点请求对应消息的订阅;
84.步骤704中,由于n1节点要发送消息给n2节点,因此将n2节点的节点标识写入消息主题中;
85.步骤705中,n1节点将消息发给同一边缘网络内的主节点,所述主节点解析接收到消息获得对应的节点标识与网络id,找到目标节点n1;
86.步骤706中,所述主节点发现目标节点为同一边缘网络内的节点,将所述消息通过mqtt的订阅关系推送给目标节点n2。
87.实施例3:
88.本发明实施例3提供了一种基于mqtt的wi-sun网络数据采集方法,本实施例3相比实施例1从更为具体的情景来展现本方案的实施流程。
89.如图6所示,在本实施例中,n1节点发送消息给n3节点;
90.如图8所示,具体流程如下:
91.步骤801中,所有边缘网络中的主节点将节点标识与网络id进行映射,并将所述映射关系发送给边缘网络间设置的根节点;
92.步骤802中,所述根节点接收到各个节点标识与网络id的映射关系后,将所述映射关系发送给所有边缘网络;
93.步骤803中,所有边缘网络中的主节点都获取到了节点标识和网络id之间的映射关系,所述边缘网络中的主节点的网络id向所述设置的根节点请求对应消息的订阅。
94.步骤804中,由于n1节点要发送消息给n3节点,因此将n3节点的节点标识写入消息主题中;
95.步骤805中,n1节点将消息发给同一边缘网络内的主节点,所述主节点解析接收到消息获得对应的网络id,发现对应的网络id并非同一边缘网络,所述主节点将网络id存入负载当中发送给根节点;
96.步骤806中,根节点接收到消息,解析负载内容得到网络id后确定目标边缘网络,将包含网络id的消息发送给n3节点对应的边缘网络的主节点;
97.步骤807中,n3节点对应的边缘网络的主节点接收到消息后,所述主节点解析消息得到目标节点的节点标识,找到目标节点n1,所述主节点根据mqtt的订阅关系将消息推送给同一边缘网络的目标节点n3。
98.实施例4:
99.本发明实施例3提供了一种基于mqtt的wi-sun网络数据采集方法,本实施例3相比实施例1从更为具体的情景来展现本方案的实施流程。
100.如图6所示,在本实施例中,n1节点发送消息给n2节点、n3节点、n4节点与n5节点;
101.如图9所示,具体流程如下:
102.步骤901中,所有边缘网络中的主节点将节点标识与网络id进行映射,并将所述映射关系发送给边缘网络间设置的根节点;
103.步骤902中,所述根节点接收到各个节点标识与网络id的映射关系后,将所述映射关系发送给所有边缘网络;
104.步骤903中,所有边缘网络中的主节点都获取到了节点标识和网络id之间的映射关系,所述边缘网络中的主节点的网络id向所述设置的根节点请求对应消息的订阅。
105.步骤904中,由于n1节点要发送消息给n2节点、n3节点、n4节点与n5节点,因此将n2节点、n3节点、n4节点与n5节点的节点标识组合写入消息主题中;
106.步骤905中,n1节点将消息发给同一边缘网络内的主节点,所述主节点解析接收到消息主题内的节点标识与网络id的映射关系,其中所述主节点发现目标节点n2节点为同一边缘网络内的节点,所述主节点直接将消息发送给n2节点;发现其他目标节点n3节点、n4节点与n5节点对应的网络id于n1节点并非同一边缘网络,所述主节点将所述n3节点、n4节点与n5节点对应的网络id存入负载当中发送给根节点;
107.步骤906中根节点接收到消息,解析负载内容得到网络id后确定目标边缘网络,将包含网络id的消息发送给n3节点、n4节点与n5节点对应的边缘网络的主节点;
108.步骤907中,n3节点、n4节点与n5节点对应的边缘网络的主节点接收到消息后,所述对应的主节点解析消息得到目标节点的节点标识,找到目标节点n3节点、n4节点与n5节点,所述对应的主节点根据mqtt的订阅关系将消息推送给对应的目标节点n3节点、n4节点与n5节点。
109.实施例5:
110.如图10所示,是本发明实施例的一种基于mqtt的wi-sun网络数据采集装置的架构示意图。本实施例的基于mqtt的wi-sun网络数据采集方法推荐装置包括一个或多个处理器1001以及存储器1002。其中,图10中以一个处理器1001为例。
111.处理器1001和存储器1002可以通过总线或者其他方式连接,图7中以通过总线连接为例。
112.存储器1002作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的基于mqtt的wi-sun网络数据采集方法。处理器1001通过运行存储在存储器1002中的非易失性软件程序和指令,从而执行基于mqtt的wi-sun网络数据采集方法。
113.存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至处理器1001。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
114.所述程序指令/模块存储在所述存储器1002中,当被所述一个或者多个处理器1001执行时,执行上述实施例1中的一种基于mqtt的wi-sun网络数据采集方法,例如,执行以上描述的图2、图3与图5,还有图7至图9所示的各个步骤。
115.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献