今日头条
尽管现在云服务器已经比较成熟,比如阿里云或者腾讯云,但是,在物联网领域的一些特定的工业应用场景下,用户可能更希望能够将数据传输到自己的服务器。这时候,MQTT的重要性就体现出来了。本文介绍在LoRaWAN组网网络中,如何在自己的应用服务器上,通过MQTT订阅来获取到节点上报的数据。
希望了解没有互联网,如何本地获取到LoRaWAN的终端数据的,可以参见文章《没有互联网,如何本地获取到LoRaWAN的终端数据?》。希望了解树莓派网关如何连接到阿里云的,可以参见文章《两步走,让自己的LoRaWAM网关与阿里云连线》、《电脑如何登录树莓派网关——手把手教你如何将树莓派LoRaWAN网关连接到服务器之第一篇”,加超链接》。
一、LoRaWAN典型网络结构
为了让大家更清楚MQTT的具体位置,我们需要先对LoRaWAN组网的典型网络结构进行介绍。
图 1 LoRaWAN网络结构
图1是一个完整的LoRaWAN网络结构。从图1中我们很清楚的可以看到,一个完整的LoRaWAN网络由以下三个角色组成:终端设备(End Nodes),网关(Concentrator/Gateway),NS服务器(Network Server)。虽然我们很清楚的知道了LoRaWAN网络中的角色组成,但是各个角色的作用是什么,它们分别完成什么工作呢?
终端设备就是我们常说的节点。终端设备负责数据采集,将采集到的数据以无线信号的形式传递出去,这个数据是经过加密处理的。网关负责接收终端传递过来无线信号数据。因为终端对数据进行了加密,网关是无法知道接收到的数据内容。网关会将接收到的数据直接转发给NS服务器。
NS服务器接收到网关转发的数据,NS会根据数据中的身份信息使用对应的终端密钥对数据进行解密,解密之后就得到了终端采集的数据信息。RAK的商业网关内部集成NS服务器,也就是说,RAK的商业网关既承担网关角色又承担的NS服务器角色。
二、MQTT功能简述
那么,MQTT又是如何工作的呢?我们通过图2来理解MQTT的工作原理。
图 2 MQTT的工作原理
我们从字面意思上可以看出,发布者(Publisher)实际上就是负责发布信息,订阅者(Subscriber)实际上负责收集发布者发布的信息。发布者应该将信息往哪里发布,订阅者又需要到哪里订阅信息呢?这个时候就需要MQTT Broker,它实际上就是一台MQTT服务器。
我们可以将MQTT Broker理解为一个新闻发布的网站,发布者理解为新闻编辑人员或者新闻发布人员,将订阅者理解为浏览、查看新闻的用户。
三、在LoRaWAN网络中,如何通过MQTT订阅来获取到LoRa节点的数据?我们已经清楚了LoRaWAN网络的工作原理,我们也清楚了MQTT的工作原理,那么我们如何通过MQTT来获取节点的数据呢?可以参见图3。
图 3 MQTT订阅获取LoRa节点的数据的原理图
有些LoRaWAN网关仅仅是网关,但有些LoRaWAN网关内置服务器(NS)。比如,RAK瑞科慧联的商业网关既是LoRaWAN网关的角色,又是NS的角色。对于这种类型的LoRaWAN网关而言,我们就可以按照图3的方式来进行组网,构成LoRaWAN+MQTT的网络组合。
在我们的LoRaWAN+MQTT的网络组合中,NS是做为一个发布者,将接收到的LoRa节点数据发布到MQTT Broker上,用户自己的应用程序只要做为订阅者,就可以非常便捷的获取到LoRa节点的数据信息了。
进一步的,我们还可以思考这个问题:在LoRaWAN网络中,RAK瑞科慧联的商业网关既是LoRaWAN网关的角色,又是NS的角色。那么在MQTT的网络中,RAK瑞科慧联的商业网关就只能是发布者的角色吗?它能不能扮演MQTT Broker的角色呢?
RAK瑞科慧联的商业网关内部集成一个MQTT Broker,也就是说,RAK瑞科慧联的商业网关也能兼职MQTT Broker的角色。使用内部集成有MQTT Broker的LoRaWAN网关,比如RAK瑞科慧联的商业网关,用户无需其他部署,就能在用户自己的应用服务器上通过MQTT订阅到LoRa节点上报的数据信息了。
本文介绍了LoRaWAN网络结构的基本概念,MQTT功能的基本工作原理,以及MQTT如何在LoRaWAN网络的基础上进行组网,从而在用户自己的应用服务器上通过MQTT订阅获取到LoRa节点上报的数据信息。本文仅仅是介绍工作原理,具体如何通过MQTT获取到LoRa节点的数据的应用实例,请期待我们的接下来的系列文章。
fqj
全部0条评论
快来发表一下你的评论吧 !