跳到主要内容

Lora转以太网 Json透传(C000C)

[TOC]

一、实现功能简介

基于 FlexLua 《DTU02万能网关》实现 Lora 中心点星型组网功能,并实现 Json 消息的透传:

  • 上行:将 Lora 星型网络中的子节点上报的 Json 消息通过 以太网 转发给云端
  • 下行:将云端下发的 Json 消息转发给某个 Lora 子节点

diag3

注意:本文只介绍 DTU02 Lora 中心点的实现方法,关于 DTU01 Lora 子节点的实现,请参考:C001AC001B 文章。

并且 flexlua.com 网站中的传感采集(S)工业采集(M)中有大量**《DTU01万能采集器》**作为 Lora 子节点的案例可供参考。

二、通信详细描述

show3

(1)Lora网络角色定义:

  • **《DTU02万能网关》 **作为 Lora 中心点
  • **《DTU01万能采集器》 **作为 Lora 子节点

(2)下行通道透传说明:

描述:

云端通过 以太网 下发一条 Json 消息,DTU02 Lora 中心点收到该消息后将该消息完整的转发给对应的 DTU01 Lora 子节点。 既:

云端 -> 以太网 -> Lora中心点 -> Lora子节点

具体流程如下:

  1. 云端向 DTU02 下发一条完整 Json 消息,比如:

     {"LrAddr":N,} --其中的 "..." 表示其他 Json 成员,可由云端自定义
  2. DTU02 收到后,从 Json 消息中解析出 "LrAddr" 的值,该值为期望转发的 Lora 子机地址,范围应该在:1-65535

  3. 随后 DTU02 将该消息完整的转发给对应的《DTU01万能采集器》Lora 子节点

举例:

--如果云端下发一条消息,LrAddr = 130
发送内容:{"LrAddr":130, "Dev":"12345"}
--那么子机地址为 130 的 Lora 子节点将收到该条完整的消息
接收内容:{"LrAddr":130, "Dev":"12345"}

注意:云端下发的 Json 消息中必须包含 "LrAddr" 成员,且值范围在 1-65535,该值指明了消息的目的地(某个 Lora 子节点)

(3)上行通道透传说明:

描述:

DTU01 Lora 子节点向 DTU02 Lora 中心点发出一条 Json 消息,DTU02 Lora 中心点收到该消息后,通过 以太网 将该消息完整的转发给云端。 既:

Lora子节点 -> Lora中心点 -> 以太网 -> 云端

具体流程如下:

  1. DTU01 向 DTU02 发送一条完整 Json 消息,比如:

     {"LrAddr":130, "Temp":27.6, "Humi":69.5 }
  2. DTU02 收到后,将该消息完整的转发给云端

  3. 云端收到该消息后,从 Json 消息中解析出 "LrAddr" 的值,通过该值即可知道消息是来自 Lora 子地址=130 的子节点设备

举例:

--如果子机地址为 130 的 Lora 子节点发出一条消息
发送内容: {"LrAddr":130, "Temp":27.6, "Humi":69.5 }
--那么云端将收到该条完整的消息,并知道该消息来自地址为 130 的 Lora 子节点
接收内容: {"LrAddr":130, "Temp":27.6, "Humi":69.5 }

注意:Lora 子节点发出的 Json 消息中应包含 "LrAddr" 的值,这样云端收到才能知道消息是来自那个 Lora 子节点

三、DTU02 万能网关介绍

《DTU02万能网关》内部电路板灵活可配置,在电路板上搭配不同的通信模组后(4G/WiFi/以太网),可实现如下通信的转换:

  • Lora 转 4G
  • Lora 转 WiFi
  • Lora 转 以太网

DTU02

关于 DTU02 万能网关:

《DTU02万能网关》内部核心主控采用 ShineBlink C2M 低代码物联网核心模组,使用该主控核心模组可轻松实现Lora/4G/WiFi/以太网的通信功能。并且本网关的硬件资料和源代码开放且源码极其精简,所以开发者无论是否有嵌入式单片机开发经验,皆可轻松基于源码进行二次开发(例如:新功能增加、边缘数据处理、逻辑判断、特殊协议解析等)。当然如果使用者对编程不感兴趣也可直接参考本文,仅需一些简单的步骤即可实现本文中描述的功能。

四、实现方法

(1)硬件

由于 DTU02 的硬件接口是可配置的,所以需要确认一下您手上的 DTU02 万能网关的硬件是否满足要求,如果确认已满足就无需再做任何操作,否则请按《DTU02硬件使用指导书》完成下面的硬件配置:

配置项目说明
将DTU02 配置成 Lora 转 以太网 网关只需将 SB-C18 以太网 通信模块插在 DTU02 电路板正面即可

《DTU02硬件使用指导书》可在 {FlexLua开源网盘}->{Hardware}->{DTU02万能网关}->{DTU02硬件使用指导书} 文件夹中找到。

(2)软件

用户只需修改 main.lua 软件源代码中的配置信息,并将main.lua 烧录至设备中即可实现大部分场景的需求。

  • 如果 Lora 子节点是主动传输类型(即上报模式),那么 DTU02 万能网关的以太网配置信息必须配置成:TCP ClientDHCP 动态分配 IP 模式, 详情参考《软件使用指导书(LORA_ETH_TCPUDP)》
  • 如果 Lora 子节点是被动传输类型(即查询模式),那么DTU02 万能网关的以太网配置信息必须配置成:TCP Server静态IP 模式,详情参考《软件使用指导书(LORA_ETH_TCPUDP)》

《软件使用指导书(LORA_ETH_TCPUDP)》文件和 main.lua 软件源代码文件均位于:

{FlexLua开源网盘} -> {Software} -> {DTU02万能网关} -> {LORA_ETH_TCPUDP} 文件夹中

注意:《软件使用指导书(LORA_ETH_TCPUDP)》中提及的 "Lora主机" 即为本文中的 "Lora中心点", "Lora从机" 即为本文中的 "Lora子节点"。

五、本章相关开源资料汇总

(1)硬件开源资料

硬件开源网盘路径
《DTU02万能网关硬件使用指导书》{FlexLua开源网盘}->{Hardware}->{DTU02万能网关}->{DTU02硬件使用指导书} 文件夹
《DTU02万能网关硬件原理图》{FlexLua开源网盘}->{Hardware}->{DTU02万能网关}->{DTU02硬件原理图} 文件夹

(2)软件开源资料

软件开源网盘路径
《软件使用指导书(LORA_ETH_TCPUDP)》及main.lua源码{FlexLua开源网盘} -> {Software} -> {DTU02万能网关} -> {LORA_ETH_TCPUDP} 文件夹夹

(3)其他(非必需)

如对源代码中的实现细节感兴趣,开发者可查阅 《Lua编程学习指导》、《ShineBlink 函数API手册》、《ShineBlink C2M模组资料》:

内容开源网盘路径
《Lua编程学习指导》{FlexLua开源网盘}->{Tutorial}->{Lua编程学习指导} 文件夹
《ShineBlink 函数API手册》{FlexLua开源网盘}->{Tutorial}->{ShineBlink 函数API手册} 文件夹
《ShineBlink C2M模组资料》{FlexLua开源网盘}->{Tutorial}->{ShineBlink C2M模组资料} 文件夹