LoRaWAN 类在开发带有传感器的 LoRa 节点中的意义
Posted
技术标签:
【中文标题】LoRaWAN 类在开发带有传感器的 LoRa 节点中的意义【英文标题】:Significance of LoRaWAN classes in developing a LoRa Node with sensors 【发布时间】:2021-07-19 20:05:03 【问题描述】:我只是对 LoRa 技术感到好奇,并探索了我在定义 LoRaWAN 类(A、B 和 C)的地方陷入了困境。我的疑问是,如果我想设计一个带有市场上任何支持 LoRa 的模块的 LoRa 节点(由 Ai-Thinker、Heltech、pycom 等供应商提供),在对节点进行传输和接收编程时是否需要关心 Class?它们是由 LoRa 收发器处理还是我们需要通过编写代码来处理?
【问题讨论】:
【参考方案1】:您应该考虑要将哪个 LoRaWAN 类用于您要开发的应用程序。这三个类都有不同的行为:
A:只接受上行消息后2个时隙的下行消息。其他时间节点对网络不可用。 B:具有所有 A 功能,但也允许在设定的时刻接收下行链路消息。 C:这个类总是可以接收下行消息。无需等待时隙或上行链路即可与节点通信。不同的 tranceivers/mcus 需要不同程度的护理。
如果我以 RN2483 为例,这个节点在内部处理所有的 LoRaWAN 交互,你只需要配置你想要的。 (AFAIK 目前不支持 B/C 类,但计划支持它。)
如果我使用 CMWX1ZZABZ,则此处理器是直接编程的,您需要确保代码适用于您要使用的类 (A/B/C)。 CMWX1ZZABZ 带有一个 LoRaWAN 堆栈,但您需要确保它确实按需要工作,RN2483 会为您处理一切。
【讨论】:
很好的解释。我可以使用 RFM69 系列收发器和 ESP32 来创建 LoRa 节点吗?我探索了一些与 Arduino IDE(A 类或 B 类实现)一起工作的库?【参考方案2】:在物联网中,重要因素之一是电池寿命。也就是说,设备可以在生产中保留多长时间而不进行维护。
对于低功耗设备,最重要的方面是优化电池的使用。每个通信设备都需要能量来传输或接收数据。此外,如果 MCU 和硬件的外围设备始终处于唤醒状态,那么电池将很快耗尽。
因此,为了增加设备寿命并支持各种用例,有多种设备类。
这里给出了每个类的解释:https://www.thethingsnetwork.org/docs/lorawan/classes/
【讨论】:
【参考方案3】:您的以问号结尾的真实问题的答案如下。
在对节点进行传输和接收编程时是否需要关心 Class?它们是由 LoRa 收发器处理还是我们需要通过编写代码来处理?
当您的应用层代码通过其 API 使用 LoRaWAN 协议栈时,您通常不需要关心该类。
然而, 当你定义你的应用服务器和你的终端设备交换什么样的应用层消息时,你需要知道实际的 LoRaWAN 设备类是什么,你需要知道下行消息可能有什么延迟。
例如,如果您的设备在 A 类模式下运行(仅接受下行消息作为对上行消息的响应),您可以在应用程序代码中写入设备发送允许应用服务器发送的常规心跳消息下行链路作为对其中一个心跳的响应。
【讨论】:
以上是关于LoRaWAN 类在开发带有传感器的 LoRa 节点中的意义的主要内容,如果未能解决你的问题,请参考以下文章