跳到主要内容

Lora被动模式 Hex透传(C001C)

[TOC]

一、实现功能简介

基于 FlexLua 《DTU01万能采集器》实现 Lora 星型网中的子节点功能,以及 Hex 字节流消息的被动传输模式(查询模式)。大致流程就是:云端通过网关下发 Modbus Hex 字节流查询消息,Lora 子节点通过网关向云端返回 Modbus Hex 字节流响应消息。

Hex 字节流传输方式相比 Json 字符串传输方式能够传输更信息,但缺点是不够直观并且云端需要能够对 Modbus 字节流进行解析。

diag2

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

二、通信详细描述

show4

(1)Lora网络角色定义:

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

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

下行HEX数据格式举例说明(01 02 55 AA 02 01 01 01 03 00 00 00 02 C4 0B):

字节序号1 - 23 - 45 - 78 - N
含义目标Lora子节点地址,高位在前,1-65535固定数值 55 AA ,用于包校验RS485通信参数信息Modbus 查询数据
举例01 02 = 25855 AA02 01 01 = 9600 N 101 03 00 00 00 02 C4 0B

RS485通信参数信息说明:例如当 5 -7 字节为 02 01 01时,表示需要 Lora子节点将其 RS485 接口设置为:波特率=9600,无校验,1位停止位。关于如何配置该值请参考《软件使用指导书(RS485_LORA_PASSIVE_HEX)》文档。

通信过程描述:

云端通过 以太网 下发一包 Hex 字节流消息,DTU02 Lora 中心点网关收到该消息后从该消息的前两个字节解析出需要转发的 Lora子节点地址,然后根据该地址通过Lora无线传输将后面的字节全部转发给对应的 DTU01 Lora 子节点,DTU01 Lora 子节点收到这些数据后,便可以通过RS485 Modbus读取相应传感器/仪器/设备的数据,并将数据原封不动返回给DTU02 Lora 中心点网关,具体流程举例如下:

--step1: 云端下发数据:01 02 55 AA 02 01 01 01 03 00 00 00 02 C4 0B,其中01 02 = 258,表示目标是地址=258的Lora子节点
--step2: 地址=258的Lora子节点将收到:55 AA 02 01 01 01 03 00 00 00 02 C4 0B
--step3: 55 AA 是固定值,02 01 01表示需要Lora子节点配置其RS485接口以<9600 N 1>参数通信
--step4: 随后Lora子节点将Modbus数据01 03 00 00 00 02 C4 0B通过RS485发送给相应的RS485设备以读取传感器/仪器/设备的s数据

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

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

上行HEX数据格式举例说明(01 02 01 03 04 01 E6 FF 9F 1B A0):

字节序号1 - 23 - N
含义源Lora子节点地址,高位在前,1-65535Modbus 响应数据
举例01 02 = 25801 03 04 01 E6 FF 9F 1B A0

通信过程描述:

由上面的内容可知,DTU01 Lora 子节点通过RS485 Modbus读取到相应传感器/仪器/设备的Modbus响应数据后,会将该数据原封不动转发给DTU02 Lora 中心点网关,然后Lora中心点网关在该数据的基础上在前端插入两个字节的Lora子地址后,便将该数据通过以太网接口转发给云端,具体流程举例如下:

--step1: Lora 子节点通过RS485 Modbus获取到: 01 03 04 01 E6 FF 9F 1B A0 (Modbus响应数据)
--step2: 然后再将该数据原封不动发送给Lora中心点网关
--step3: Lora中心点网关在该数据的基础上在前端插入两个字节的Lora子地址(比如258)得到:01 02 01 03 04 01 E6 FF 9F 1B A0
--step4: 随后Lora中心点网关将01 02 01 03 04 01 E6 FF 9F 1B A0通过以太网接口发送给云端

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

三、实现方法

(1)硬件

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

  • DTU01 电路板上的 ‘A’ 和 ‘B’ 引脚需配置成 485 接口的 ‘A’ 和 ‘B’,即 S3 选择
  • DTU01 电路板上的 ‘+’ 和 ‘-’ 电源输出引脚需配置成 12v 输出用来接12v的传感器/仪表/设备(注意在 DTU01 电路板上 ‘+’ 和 ‘-’ 对应 ‘VIN’ 和 ‘GND’)

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

(2)软件

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

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

{FlexLua开源网盘} -> {Software} -> {DTU01万能采集器}-> {RS485} -> {Lora被动发送} -> {HEX透传版本} 文件夹中

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

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

(1)硬件开源资料

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

(2)软件开源资料

软件开源网盘路径
《软件使用指导书(RS485_LORA_PASSIVE_HEX)》及main.lua源码{FlexLua开源网盘} -> {Software} -> {DTU01万能采集器}-> {RS485} -> {Lora被动发送} -> {HEX透传版本} 文件夹

(3)其他(非必需)

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

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