如何将 LoraWan 网络与 MQTT 连接?

物联网 联网 MQTT 劳拉
2021-06-17 00:50:45

我一直在从事一个项目,该项目涉及使用以下方法创建 LoraWan 网络:

  • Dragino lg01 作为网关。
  • 带有简单 LM35 温度传感器的 Arduino Uno 和 Dragino Lora 扩展板
  • 至于服务器,我一直在寻找开源的并且与 LoraWan 兼容的东西,我找到了 Wso2 IoT 服务器并且我已经开始使用它,我想我需要用它安装 Apache ActiveMQ JMS Provider 而我没有知识。

要将数据从网关发送到服务器,我将使用 MQTT。

至于可视化数据,我将使用 AngularJS 创建一个应用程序。

所以我遇到的问题是我对将节点连接到服务器感到困惑,因为我发现了两种方法(无线激活和个性化激活),它是否影响网关和服务器的编程方式?

我还要对网关进行编程以使用 MQTT 将数据发送到服务器还是所有编程都发生在节点中?

3个回答

将您的网络想象成一个维恩图,其中一组是 LoraWan,另一组是 MQTT。

在此处输入图片说明

集合中的元素应该只知道它们的集合。

  • 因此,使用 LoraWan 的节点(在 LoraWan 集合中)不必理会 MQTT 或服务器。他们只是向/从网关发送/接收数据。门户是他们世界的尽头。
  • Gateway 位于 LoraWan 和 MQTT 两个集合的交集处。MQTT 相关部分应托管在此处,因为此元素是两个集合的一部分。它的任务是通过将适当的节点数据发布到特定的 MQTT 主题,将收集到的数据从 LoraWan 节点转发到服务器。在正确的 MQTT 主题之间分配数据的逻辑应该在这里实现。

  • 服务器可以按原样在 MQTT 集中托管 MQTT 代理,并且与 LoraWan 无关。


如果您正在寻找与 LoraWan 兼容的服务器并且您拥有启用了 LoraWan 的节点,那么我不明白您在哪里需要网关。网关应该提供两个不同网络之间的互操作性。在 LoraWan 网络和 TCP/IP 网络或 Internet 之间的情况。

许多人采用的一种方法是简单地向基于社区的免费 TTN(物联网注册节点和网关除了实际对节点的固件进行编程(您可能使用 Arduino IDE 或 VSCode+PlatformIO)之外,TTN 会执行为您的节点提供 LoRaWAN 密钥和 ABP 或 OTAA 所需的所有内容。

然后,您将能够 (1) 在他们的控制台上查看您节点的消息(以及网关流量),这对调试非常有帮助,您还可以 (2) 在他们的 MQTT 代理上订阅消息。

下一步可能是对 Node-RED、Telegraf 和 Grafana 进行 DIY 安装,这将为您提供一个强大的测试平台,用于处理和可视化您的数据。

顺便说一句,网关不与服务器 IIRC 交流 MQTT。它是一种基于 UDP 的 JSON。

所有这些都在网络中得到了很好的记录。

标准方法是将您的网关连接到如上所述的 LORAWAN 网络服务器。

如果您想将网关直接连接到您的代理,您可以使用网关的 MQTT 转发功能:MQTT 转发指令