如何将 LoRaWAN 网关连接到 MQTT Broker?
描述
当作为嵌入式网络服务器工作时,Linovision LoRaWAN 网关支持将数据包发送到第三方 MQTT/HTTP/HTTPS 服务器。我们可以在网关上创建一个新的应用程序,该应用程序可以定义从 LoRaWAN 终端设备发送的数据的解码方法,并选择 MQTT 数据传输协议将数据发送到 MQTT 服务器。
要求
- LoRaWAN 网关:IOT-G8x(固件版本 80.0.0.64 或更高版本), 物联网-G65, 物联网-G 67, 物联网-G 56, 物联网-G63 V1
- MQTT 服务器/代理
- MQTT 客户端工具:以 MQTT Explorer 为例
配置
步骤1.启用网关内置网络服务器。
去 数据包转发器 > 常规 启用本地主机服务器地址。
在网络服务器 > 常规页面启用网络服务器。
Step2. 添加应用程序
转到网络服务器>应用程序添加新的应用程序,单击保存。
名称:用户定义,任意值
描述:用户定义,任意值
步骤3.将网关连接到 MQTT 服务器。
去 网络服务器 > 应用程序为应用程序添加“数据传输”。一个应用程序只能添加一个 MQTT 集成。
填写MQTT代理信息并创建主题来存储不同的数据类型,点击 节省。
经纪人地址: MQTT 代理的 IP 地址/域名
Broker Port: MQTT 代理的通信端口
客户端ID:用户定义,客户端相对于服务端的唯一ID标识。
应根据需要启用和配置用户凭证和 TLS。
注意:如果 MQTT 代理是 HiveMQ,请启用 TLS 并将选项设置为 C A签名的服务器证书。
MQTT 配置完成后,您可以在此处检查连接状态:
步骤4.将LoRaWAN节点添加到网关。
去 网络服务器>配置文件以添加新配置文件,然后单击保存。您也可以使用预定义的配置文件。
名称:用户定义,任意值
最大 TXPower:默认值
其他参数可以从 LoRaWAN 节点用户指南中查看,或者您可以保留所有默认设置。
去 网络服务器 > 设备 要添加新设备,请点击 保存并应用。
设备名称:用户定义,任意值
描述:用户定义,任意值
设备配置文件:选择之前添加的相应配置文件之一。
应用程序:选择之前添加的对应应用程序之一。
其他参数可以与LoRaWAN节点制造商确认。
当状态显示如下时,表示上述步骤已正确完成。
Step5.添加上行数据主题。
自定义要发布到 MQTT 代理的上行数据并保存设置。如果您在主题上添加“$deveui”,则可以在订阅主题时将其替换为真实设备 EUI。
例如: /linovision/uplink/$deveui
步骤6. 从 MQTT 客户端订阅主题以获取上行链路。
MQTT explorer 是一个综合的 MQTT 客户端,可以替代其他类型的 MQTT 客户端工具(MQTT.fx、MQTT Box 等)。
打开 MQTT Explorer,在弹出的窗口中填写相关 MQTT 服务器信息。
名称:用户定义
协议: mqtt://
主机: MQTT 代理地址
端口:代理端口
用户名密码: 如果有用户凭证,请填写。如果没有,请保留空白。
点击 高级,复制网关上的上行数据主题,并将其粘贴到 MQTT 资源管理器上,单击 +添加。
保持默认的MQTT客户端ID,然后点击 后退 并点击 连接。
片刻之后,数据将被转发到 MQTT 代理,MQTT Exploerer 可以从 MQTT 服务器接收数据。
上行格式固定为json,内容如下。
如果需要从 MQTT 客户端发送下行命令,请参考文章 如何通过 Linovision 网关上的 MQTT 远程控制设备。
常问问题
Q1 .如何将解码或自定义上行内容发送到 MQTT 服务器?
答案1: 是的,这个需要用到网关上的Payload Codec功能。参考文章:
物联网-G56/G65/G67: 如何在 Linovision Gateway 上使用 Payload Codec
物联网-G63 V1/G8x: 如何在 Linovision Gateway 上使用 Payload Codec(旧版)
Q2.MQTT服务器连接状态为“断开连接”时该如何排除故障?
A2:
1)前往 维护 > 工具 > Ping ,检查网关是否可以 ping 通代理地址。
2) 检查您的 MQTT 客户端工具是否可以正常连接到 MQTT 服务器,然后按照 MQTT 客户端工具的设置来配置网关。
3)检查网关MQTT客户端ID是否与其他MQTT客户端冲突。
4)检查CPU负载是否过高,以及可用的RAM和eMMC是否很少。
5)将日志严重性改为Debug,复现断线问题,然后下载所有日志文件并发送到 联系电话: support@linovision.com 。
Q3 .为什么连接状态显示“已连接”,但是 MQTT 客户端没有收到任何数据?
答案3:
1)确保设备已添加到网关,然后转到网络服务器>数据包定期检查是否有来自设备的上行数据包。
2)确保设备已添加到正确的应用程序中。
3)确保网关固件升级到最新版本。
4)将日志严重性改为Debug,复现断线问题,然后下载所有日志文件并发送到 联系电话: support@linovision.com 。