打印

LoRa节点与网关内置的MQTT服务器之间的数据传输

[复制链接]
251|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
前言
在前面的**《如何在mqtt.fx客户端订阅LoRa节点数据》里,我们已经介绍了在RAK瑞科慧联的LoRa网关的网页上,如何设置MQTTTopic参数,在mqtt.fx客户端上进行设置,以订阅到LoRa节点的数据。
本文介绍如何测试我们之前的设置是否成功,LoRa节点与MQTT服务器之间的数据传输是否正常。

一、LoRa节点发送数据到LoRaWAN网关内置的MQTT服务器
LoRa节点成功join之后,我们在LoRa节点侧发送一条信息,比如“Hello Rakwireless”。
由于LoRa节点需要接收16进制的数据,因此,我们将“Hello Rakwireless”转换为16进制,就是“48656c6c6f52616b776972656c657373”。如图1所示,是RAK瑞科慧联的LoRa节点操作界面,采用AT指令at+send来发送该信息,并点击发送。
1  RAK瑞科慧联的LoRa节点操作界面

当我们在LoRa节点的操作界面上发送了信息之后,就可以回到mqtt.fx的界面进行查看,确定MQTT服务器是否接收到了我们订阅到的LoRa节点所发送的数据。
2  RAK瑞科慧联LoRaWAN网关内置MQTT服务器接收数据示意图

如图2所示,我们点击打开Subscribe界面,可以看到data部分就是LoRa节点刚才发送的数据,不过格式与刚才的16进制的格式不一样,这是因为Data部分的内容是对LoRa节点发送的数据进行了base64编码,我们只需要对data部分进行base64解码,即可看到原始数据。
或者,我们也可以查看RAK瑞科慧联所提供的LoRaWAN商业网关的web管理页面,如图3所示,该管理工具已经对数据进行了base64解码,因此我们在该管理页面上看到的数据就与LoRa节点刚才发送的16进制的数据一致。
3   RAK瑞科慧联的LoRaWAN商业网关的web管理页面

二、LoRaWAN网关内置的MQTT服务器发送数据到LoRa节点
我们也可以测试一下,从LoRaWAN网关内置的MQTT服务器是否能成功发送信息到LoRa节点。
我们要通过mqtt.fx工具来向LoRa节点发送信息的话,就需要使用到Downlink Topic。如图4所示的方式来找到并填写Downlink Topic的内容。具体填写规则,可以参考我们之前的**《https://bbs.21ic.com/icview-3040794-1-1.html》
4   RAK瑞科慧联的LoRaWAN网关Topic填写界面

填写了Topic之后,就可以在如图5所示的mqtt.fx工具的界面中,点击左上角的Publish标签,在输入框2的位置输入Downlink Topic,在输入框3的位置输入{"confirmed": true,"data": "SGVsbG8=","fPort": 10},点击按钮4Publish按钮,即可将数据发送到LoRa节点。
需要注意的是,LoRa节点是否能立刻收到MQTT服务器所发送的数据,取决于该LoRa节点的工作模式。当该LoRa节点的工作模式是Class c模式时,该LoRa节点会立刻收到mqtt.fx下发的数据;但如果处于Class a模式,则该LoRa节点需要在下一次上发数据之后,才能收到mqtt.fx下发的数据)。
5  MQTT工具下发数据界面

其中,我们对{"confirmed": true,"data": "SGVsbG8=","fPort": 10}'格式进行说明:
a. Confirmed可选值为true或者false
b. Data的内容就是我们要发送的数据,需要对数据进行base64编码。
c. fPort是要发送的端口号,有效端口号为1-255

我们回到LoRa节点界面,如图6所示,就可以在LoRa节点端看到接收到的数据。
6   LoRa节点接收到数据示意图

结语
本文介绍了如何测试我们之前的设置是否成功,LoRa节点与LoRaWAN网关内置的MQTT服务器之间的数据传输是否正常。而如果LoRaWAN网关并不内置MQTT服务器的时候,就需要用到外置的MQTT服务器。
当使用外置的MQTT服务器的时候,如何与节点互传数据,请期待我们的下一篇**。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

66

主题

68

帖子

0

粉丝