今日头条
在前面的文章《如何通过mqtt.fx客户端来订阅节点数据》里面,我们已经介绍了在RAK瑞科慧联的LoRa网关的网页上,如何设置MQTT的Topic参数,在mqtt.fx客户端上进行设置,以订阅到LoRa节点的数据。
本文介绍如何测试我们之前的设置是否成功,LoRa节点与MQTT SERVER之间的数据传输是否正常。
如果希望了解LoRa网关的其他获取数据的方式,还可以参见文章,《没有互联网,如何本地获取到LoRaWAN的终端数据?》、《两步走,让自己的LoRaWAM网关与阿里云连线》、《超低成本get一项新技能:在阿里云上进行IoT系统开发》、《LoRa节点如何以OTAA方式入网TTN server?》、《LoRa节点如何以ABP方式入网TTN server?》
一、LoRa节点发送数据到LoRaWAN网关内置的MQTT SERVER
LoRa节点成功join之后,我们在LoRa节点侧发送一条信息,比如“Hello Rakwireless”。
由于LoRa节点需要接收16进制的数据,因此,我们将“Hello Rakwireless”转换为16进制,就是“48656c6c6f52616b776972656c657373”。如图1所示,是RAK瑞科慧联的LoRa节点操作界面,采用AT指令at+send来发送该信息,并点击发送。
图1 RAK瑞科慧联的LoRa节点操作界面
当我们在LoRa节点的操作界面上发送了信息之后,就可以回到mqtt.fx的界面进行查看,确定MQTT SERVER是否接收到了我们订阅到的LoRa节点所发送的数据。
图2 RAK瑞科慧联LoRaWAN网关内置MQTT SERVER接收数据示意图
如图2所示,我们点击打开Subscribe界面,可以看到data部分就是LoRa节点刚才发送的数据,不过格式与刚才的16进制的格式不一样,这是因为Data部分的内容是对LoRa节点发送的数据进行了base64编码,我们只需要对data部分进行base64解码,即可看到原始数据。
或者,我们也可以查看RAK瑞科慧联所提供的LoRaWAN商业网关的web管理页面,如图3所示,该管理工具已经对数据进行了base64解码,因此我们在该管理页面上看到的数据就与LoRa节点刚才发送的16进制的数据一致。
图3 RAK瑞科慧联的LoRaWAN商业网关的web管理页面
二、LoRaWAN网关内置的MQTT SERVER发送数据到LoRa节点
我们也可以测试一下,从LoRaWAN网关内置的MQTT SERVER是否能成功发送信息到LoRa节点。
我们要通过mqtt.fx工具来向LoRa节点发送信息的话,就需要使用到Downlink Topic。如图4所示的方式来找到并填写Downlink Topic的内容。具体填写规则,可以参考我们之前的文章《如何在RAK的LoRaWAN网关的网页上,设置MQTT的订阅的Topic?》
图4 RAK瑞科慧联的LoRaWAN网关Topic填写界面
填写了Topic之后,就可以在如图5所示的mqtt.fx工具的界面中,点击左上角的Publish标签,在输入框2的位置输入Downlink Topic,在输入框3的位置输入{"confirmed": true,"data": "SGVsbG8=","fPort": 10},点击按钮4的Publish按钮,即可将数据发送到LoRa节点。
需要注意的是,LoRa节点是否能立刻收到MQTT SERVER所发送的数据,取决于该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节点端看到接收到的数据。
fqj
全部0条评论
快来发表一下你的评论吧 !