Lora被动模式 Json透传(C001B)
[TOC]
一、实现功能简介
基于 FlexLua 《DTU01万能采集器》实现 Lora 星型网中的子节点功能,并实现 Json 消息的被动传输模式(即查询模式)。大致流程就是:云端通过网关下发 Json 查询指令消息,Lora 子节点收到该消息后准备好需要返回的数据,然后通过Lora中心点网关向云端返回 Json 数据响应消息。
注意:本文只介绍 DTU01 Lora 子节点的实现方法,关于 DTU02 Lora 中心点的实现,请参考:
C000A
、C000B
、C000C
文章。
二、通信详细描述
(1)Lora网络角色定义:
- **《DTU02万能网关》 **作为 Lora 中心点
- **《DTU01万能采集器》 **作为 Lora 子节点
(2)通信流程说明:
描述:
**步骤1(下行):**云端下发 Json 查询消息,Json 消息成员中包含需要查询传感器数据的Lora子节点地址("LrAddr"),该Json消息会通过Lora 中心点转发给对应的 Lora子节点。
通信流程:云端
-> 4G/WiFi/以太网
-> Lora中心点
-> Lora子节点
。
步骤2(上行): Lora 子节点收到下行 Json 查询消息后,可将采集到的传感器数据发送给《DTU02万能网关》 Lora 中心点网关,继而转发给云端,整个如下
通信流程:RS485/Uart/IIc/AD/Gpio
-> 子节点Lora
-> Lora中心点网关
-> 云端
。
举例:
--云端下发 Json 查询指令消息,"LrAddr"=130 表示云端服务器希望查询某个Lora子节点地址为130的设备,"Dev"="TH"可以用来表示查询温湿度数据的指令标识
{"LrAddr":130, "Dev":"TH"}
--地址=130 的 Lora 子节点收到查询指令后,并判断"Dev"="TH"后知道云端是想查询温湿度数据,然后就将下面的包含传感器数据的 Json 消息返回给云端
{"LrAddr":130,"Dev":"TH","Data":{"Humi":79.7,"Temp":26.8},"Err":null}
三、实现方法
flexlua.com 网站中的 传感采集(S)
和 工业采集(M)
中有大量**《DTU01万能采集器》**作为 Lora 子节点被动传输的案例可供参考。
《DTU01万能采集器》 在软硬件上可配置成 RS485/Uart/IIc/AD/Gpio 这五种接口中的其中一种并采集传感器/设备/仪表的数据:
Lora子节点数据采集接口 | 实现参考 |
---|---|
RS485 接口 | S001A、S002A、M000A 等文章中的 Lora 被动传输 章节 |
IIc 接口 | S001B 文章中的 Lora 被动传输 章节 |
AD 接口 | S000B 文章中的 Lora 被动传输 章节 |
Gpio 接口: | S014B 文章中的 Lora 被动传输 章节 |