我正在构建一个没有 LoRaWAN 协议的私有 LoRa 网络。该网络由大约 50 个节点(arduino pro mini)和一个网关(esp32)组成。为了节省能源,最好具有 B 类或 TDMA 等功能。我画了一张流程图,然后
节点的主要过程:
- 在 bootup/setup 期间,初始化 lora,等待 Beacon 消息并设置本地时间
- 在每个 BP(Beacon Period),唤醒,等待 Beacon 并同步本地时间,然后进入睡眠
- 在每个 SP (Sense Period),唤醒,读取传感器并发送上行消息,等待下行消息X秒,调用执行器(如果有来自网关的指令),然后进入睡眠
网关的过程:
- 在启动/设置期间,初始化 lora,连接 wifi,连接 NTP 服务器并同步本地时间
- 在每个 BP,广播 Beacon 消息,从服务器读取并将指令保存在堆栈中,然后进入接收模式
- 接收来自的上行链路节点,解码数据并发送到服务器,发送下行消息,如果有任何指令
问题是,我不知道是否存在任何类似的代码或库来让生活更轻松。现在我已经用两个节点进行了测试,由于没有先听后说,我需要为每条上行链路消息的安全预留更多时间,这并不理想。