如何借助MQTT远程给数据采集器RAK7421下发 轮询指令
本帖最后由 RAK瑞科慧联 于 2020-10-27 13:56 编辑前言RS485转LoRaWAN数据采集器,顾名思义,其是工业常用的RS485接口的传感器与LoRaWAN网络之间的桥梁。受限于工业上的传感器设置的位置,RS485转LoRaWAN数据采集器安装的位置有可能不太方便于现场调试,因此,远程下发指令就显得很重要。另外,设置轮询指令的作用在于,我们可以使得传感器定时轮询,而无需每次都从服务器下发指令,从而可以大大降低网络拥塞的可能性。本文基于RAK瑞科慧联的数据采集器RAK7421,介绍如何通过MQTT工具来远程下发 轮询指令给到RAK7421。
一、远程下发 轮询指令的类型通过MQTT工具来远程下**询指令给到RAK7421,总共包括三种轮询指令:(a)增加定时轮询任务单消息(b)移除定时轮询任务单(c)读取定时轮询任务单接下来我们将对这三种轮询指令进行具体介绍。
mqtt下发指令给RAK7421,需要通过LoRaWAN网关来下发。因此,为了能够利用MQTT工具来远程下发 轮询指令到RAK7421,我们需要首先登陆RAK瑞科慧联提供的网关的用户界面,如图1所示,并通过以下路径:LoRa Network sever->Application->Edit->Integrations,来修改数据编码类型到HEX String。 图1 RAK瑞科慧联的LoRaWAN网关用户界面 修改完成后,我们就可以利用MQTT工具来下发指令给到RAK7421。
二、增加定时轮询任务单消息下行指令消息格式如表1所示。表1 增加定时轮询任务单消息的下行指令消息格式注:消息长度不包含报文头
图2是RAK7421节点添加定时轮询温湿度传感器任务单的示例图。 图2 RAK7421节点添加定时轮询温湿度传感器任务单示例
如图2所示,发布主题:Application/1/device/60c5a8fffe76ddc1/tx(注:Application ID和Device EUI与网关内的设置一致)内容:{"comfirmed":true,"fPort":129,"data":"030001000901010300000002C40B"}任务单内容解释:
03 0001 0009 01 010300000002C40B①② ③ ④ ⑤
① DTU命令字CMD② 消息序号③ 消息长度(不含报文头)④ 任务单ID⑤ 任务单内容
执行成功上行消息格式如表2所示。表2 增加定时轮询任务单执行成功的上行指令消息格式
如图3所示,MQTT订阅栏即可看到执行成功的上行消息“8300010000”,随后开始轮询并接收到的传感器温湿度信息。 图3MQTT订阅栏显示执行成功的上行消息的示意图
三、移除定时轮询任务单下行指令消息格式如表3所示。
表3移除定时轮询任务单的下行指令消息格式
RAK7421节点移除定时轮询温湿度传感器任务单示例如图4所示。 图4RAK7421节点移除定时轮询温湿度传感器任务单示例
发布主题:Application/1/device/60c5a8fffe76ddc1/tx内容:{"comfirmed":true,"fPort":129,"data":"040001000101"}
执行成功上行消息格式如表4所示。表4移除定时轮询任务单执行成功的上行指令消息格式
MQTT订阅栏查看到执行成功的上行消息“8400010000”,即表示任务移除成功。
四、读取定时轮询任务单下行指令消息格式如表5所示。
表5 读取定时轮询任务单的下行指令消息格式
RAK7421节点读取定时轮询温湿度传感器任务单示例如图5所示。 图5RAK7421节点读取定时轮询温湿度传感器任务单示例 发布主题:Application/1/device/60c5a8fffe76ddc1/tx内容:{"comfirmed":true,"fPort":129,"data":"050001000101"}
执行成功上行消息格式如表6所示。表6 读取定时轮询任务单执行成功的上行指令消息格式 打开MQTT订阅栏即可看到执行成功的上行消息:“850001000901010300000002C40B”,即查询到的任务单ID为1,任务单内容为010300000002C40B(温湿度感应器轮询单)。
结语本文基于RAK瑞科慧联的数据采集器RAK7421,介绍了如何通过MQTT工具来远程下发 轮询指令给到RAK7421。通过设置轮询指令,我们可以使得传感器定时轮询,而无需每次都从服务器下发指令,从而可以大大降低网络拥塞的可能性。
页:
[1]