本帖最后由 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”,随后开始轮询并接收到的传感器温湿度信息。 图3 MQTT订阅栏显示执行成功的上行消息的示意图
三、移除定时轮询任务单 下行指令消息格式如表3所示。
表3 移除定时轮询任务单的下行指令消息格式
RAK7421节点移除定时轮询温湿度传感器任务单示例如图4所示。 图4 RAK7421节点移除定时轮询温湿度传感器任务单示例
发布主题: Application/1/device/60c5a8fffe76ddc1/tx 内容: { "comfirmed":true, "fPort":129, "data":"040001000101" }
执行成功上行消息格式如表4所示。 表4 移除定时轮询任务单执行成功的上行指令消息格式
MQTT订阅栏查看到执行成功的上行消息“8400010000”,即表示任务移除成功。
四、读取定时轮询任务单 下行指令消息格式如表5所示。
表5 读取定时轮询任务单的下行指令消息格式
RAK7421节点读取定时轮询温湿度传感器任务单示例如图5所示。 图5 RAK7421节点读取定时轮询温湿度传感器任务单示例 发布主题: Application/1/device/60c5a8fffe76ddc1/tx 内容: { "comfirmed":true, "fPort":129, "data":"050001000101" }
执行成功上行消息格式如表6所示。 表6 读取定时轮询任务单执行成功的上行指令消息格式 打开MQTT订阅栏即可看到执行成功的上行消息:“850001000901010300000002C40B”, 即查询到的任务单ID为1,任务单内容为010300000002C40B(温湿度感应器轮询单)。
结语 本文基于RAK瑞科慧联的数据采集器RAK7421,介绍了如何通过MQTT工具来远程下发 轮询指令给到RAK7421。 通过设置轮询指令,我们可以使得传感器定时轮询,而无需每次都从服务器下发指令,从而可以大大降低网络拥塞的可能性。 |