Lora被动模式 Hex透传(C001C)
[TOC]
一、实现功能简介
基于 FlexLua 《DTU01万能采集器》实现 Lora 星型网中的子节点功能,以及 Hex 字节流消息的被动传输模式(查询模式)。大致流程就是:云端通过网关下发 Modbus Hex 字节流查询消息,Lora 子节点通过网关向云端返回 Modbus Hex 字节流响应消息。
Hex 字节流传输方式相比 Json 字符串传输方式能够传输更信息,但缺点是不够直观并且云端需要能够对 Modbus 字节流进行解析。
注意:本文只介绍 DTU01 Lora 子节点的实现方法,关于 DTU02 Lora 中心点的实现,请参考:
C000D
文章。
二、通信详细描述
(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 - 2 | 3 - 4 | 5 - 7 | 8 - N |
---|---|---|---|---|
含义 | 目标Lora子节点地址,高位在前,1-65535 | 固定数值 55 AA ,用于包校验 | RS485通信参数信息 | Modbus 查询数据 |
举例 | 01 02 = 258 | 55 AA | 02 01 01 = 9600 N 1 | 01 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 - 2 | 3 - N |
---|---|---|
含义 | 源Lora子节点地址,高位在前,1-65535 | Modbus 响应数据 |
举例 | 01 02 = 258 | 01 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子节点"。