使用 Raspberry Pi 作为 Lora 节点进行 TTN 设置

物联网 树莓派 联网 ESP8266 劳拉 罗拉万
2021-06-22 07:19:46

我已经有一个 LoRa 网关,我使用带有 ESP8266 的 NodeMcu 制作,现在我想通过该网关将数据从 Raspberry Pi 3 发送到 TTN。

我做的第一件事是将 RFM95W 连接到 Raspberry Pi,(成功了,因为我将它作为带有单通道数据包转发器的网关进行了测试)。

但是我要如何让 Raspberry Pi 连接到 NodeMcu 网关以将数据上传到 TTN?

我能找到的关于 TTN 节点的唯一例子都是使用 Arduino 而不是 Raspberry Pi 的实现。

2个回答

您需要通过 SPI 将 RFM95W 连接到 RPI3(看起来已经完成),然后您需要一个驱动程序来允许 Linux 内核通过 SPI 与设备进行通信。之后,您需要调整您的软件以与驱动程序通信以从用户空间发送数据。

似乎没有人为 Linux 开发过驱动程序。最接近的(未经我测试)是 RFM69CW 在这里:https : //github.com/gkaindl/rfm12b-linux

一个更简单的解决方案可能是选择一个带有 UART 接口的 LoRaWAN 调制解调器,然后你只需要通过标准化的 TTY 接口向它发送 AT 命令。以下是一些参考示例:RN2483、RAK811、mDot。

或者,如果您想使用 RFM95W,您可以将它与一个小型 Arduino over SPI 一起使用,因为该库已经存在,然后通过 UART 将 Arduino 连接到您的 RPI3 并在它们之间开发您自己的协议。

下一步是在 Pi 上实施 LoRaWAN。RFM95W 处理 LoRa,但不包括 LoRaWAN 堆栈。TTN 需要 LoRaWAN(其他不多)。

是的,大多数 LoRaWAN 实现要么在随附的 MCU 上,要么在连接的 Arduino 上。Pi 上的 LoRaWAN 实现不太常见,但有几个。

首先检查在内核中包含 LoRa 的努力。这封电子邮件将提供良好的上下文,特别是本节:

现成的 LoRa 硬件模块分为三种,

a) 具有对底层 Semtech 芯片组的 SPI 访问,需要软件实现,例如 LoRaWAN 协议栈(即软 MAC),

b) 具有自定义的、通常基于 UART 的接口和已经集成的预先认证的 LoRaWAN 协议栈(即硬/全 MAC),以及

c) 带有不仅用于协议栈而且用作应用处理器的微控制器,不提供现成的接口。

然后查看lmic_pi项目。LMIC 是适用于 Arduino 的流行 LoRaWAN 堆栈,Ernst de Vreede善意地发表了将其移植到 Pi 的努力。它恰好已经用您心目中的无线电进行了测试。