一、LoRaWan温控器(AC602)

二、 Lorawan相关参数
lorawan发送端口(Fport) :24
lorawan自带确认模式:设置为不应答
三、协议帧格式(终端透传数据部分)终端->服务器
| 字节序号 | 占字节个数 | 名称 | 数据内容 |
| 0 | 1 | 帧头 | 固定为0x55 |
| 1 | 1 | 命令类型 | 参考命令类型定义部分 用于区分命令类型 |
| 2 | 2 | 数据区长度 | 依数据区长度确定 |
| 4 | n | 数据区 | 传送数据信息,数据内容 可参考数据区的定义 |
| 4+n | 1 | 校验位 | 参考校验位定义部分 |
1.命令类型定义
命令类型-00:回复命令,回复服务器,已收到服务器下发的命令或数据,无需服务器回复
命令类型-01:数据上传命令,需服务器回复
命令类型-02:数据请求命令,需服务器回复
2.数据区的定义
00-回复命令 数据区定义如下:
无需特殊数据,直接设定为1个字节,数值为0
01-数据上传命令 数据区定义如下:
第一个字节表示字段类型,见字段类型列表
剩余字节表示字段的值
字段类型列表:
| 字段类型 (占1个字节) | 字段名 | 字段的值的长度 | 数据区总长度 | 字段区的值含义 |
| 1 | 开关机 | 1 | 1+1 | 1:开机; 0:关机 |
| 2 | 锁定功能选择 | 1 | 1+1 | 1:锁定; 0:不锁定 |
| 3 | 模式选择 | 1 | 1+1 | 0:制冷; 1:制热; 2:通风 |
| 4 | 风速选择 | 1 | 1+1 | 0:自动; 1:高风速;2:中风速; 3:低风速 |
| 5 | 当前温度 | 1 | 1+1 | 数值为真实值乘以2 |
| 6 | 设定温度 | 1 | 1+1 | 数值为真实值乘以2 |
| 7 | 节能开关 | 1 | 1+1 | 0:节能关; 1:节能开 |
| 8 | 所有数据 | 7 | 7+1 | 此字段用于前7个字段 数据一起上传时使用 减少上传帧的数量 |
02-数据请求命令 数据区定义如下:
数据区共一个字节表示要求上传字段类型,见字段类型列表
字段类型列表:
| 字段类型 (占1个字节) | 字段名 |
|---|---|
3.校验位的定义
校验位定义为从帧头开始,按字节求和,得出的结果对 256 求余从帧头开始
四、协议帧格式(服务器透传终端部分)服务器->终端
| 字节序号 | 占字节个数 | 名称 | 数据内容 |
| 0 | 1 | 帧头 | 固定为0x55 |
| 1 | 1 | 命令类型 | 参考命令类型定义部分 用于区分命令类型 |
| 2 | 2 | 数据区长度 | 依数据区长度确定 |
| 4 | n | 数据区 | 传送数据信息,数据内容 可参考数据区的定义 |
| 4+n | 1 | 校验位 | 参考校验位定义部分 |
1.命令类型定义
命令类型-00:回复命令,回复终端已接收到终端发来的命令或请求
命令类型-01:数据下发命令,需终端回复
命令类型-02:数据请求命令,需终端回复
2.数据区的定义
00-回复命令 数据区定义如下:
无需特殊数据,直接设定为1个字节,数值为0
01-数据下发命令 数据区定义如下:
第一个字节表示下发字段类型,见字段类型列表
剩余字节表示下发字段的值
字段类型列表:
| 字段类型 (占1个字节) | 字段名 | 字段的值的长度 | 数据区总长度 | 字段区的值含义 |
| 1 | 开关机 | 1 | 1+1 | 1:开机; 0:关机 |
| 2 | 锁定功能选择 | 1 | 1+1 | 1:锁定; 0:不锁定 |
| 3 | 模式选择 | 1 | 1+1 | 0:制冷; 1:制热; 2:通风 |
| 4 | 风速选择 | 1 | 1+1 | 0:自动; 1:高风速;2:中风速; 3:低风速 |
| 5 | 设定温度 | 1 | 1+1 | 数值为真实值乘以2 |
| 6 | 节能开关 | 1 | 1+1 | 0:节能关; 1:节能开 |
| 7 | 所有数据 | 6 | 6+1 | 此字段用于前5个字段 数据一起下发时使用 减少下发帧的数量 |
02-数据请求命令 数据区定义如下:
数据区共一个字节表示要求上传字段类型,见字段类型列表
字段类型列表:
| 字段类型 (占1个字节) | 字段名 |
| 1 | 开关机 |
| 2 | 锁定功能选择 |
| 3 | 模式选择 |
| 4 | 风速选择 |
| 5 | 当前温度 |
| 6 | 设定温度 |
| 7 | 节能开关 |
| 8 | 所有数据 |
3.校验位的定义
校验位定义为从帧头开始,按字节求和,得出的结果对 256 求余从帧头开始
五、通信过程
终端上传数据
终端发送01命令到服务器->服务器收到数据后发送00回复命令
服务器下发数据
服务器发送01命令到终端->终端收到数据后发送00回复命令(部分有关参数设置的数据,在终端设置完成后会安排上传设置完成后的数据)
终端请求数据
终端发送02命令到服务器->服务器收到后发送00回复命令->服务器发送01命令将请求数据下发给终端-> 终端接收到下发数据后发送00回复命令
服务器请求数据
服务器发送02命令到终端->终端收到后发送00回复命令->终端发送01命令将服务器请求数据上传给服务器->服务器接收到上传数据后发送00回复命令
六、注意事项
1. 若终端发送数据后未收到服务器回复,会等待约15s后,重发数据。如重发数据仍未收到回复,则丢弃该 数据,转而发送后续数据
2. lora模块发送数据和接受数据不能同时进行,因此频繁下发或发送数据,会导致丢包情况。采用一问一答 的通讯方式可以一定程度上避免丢包