LoRa养成记录

备忘进度。待输出详细文章

day1: 2020.10.21

lora基础概念入门
从头部署ChirpStack,并完成接入网关及3个lora设备。

网关ISM频段标准:

EU868和EU433主要是欧洲标准,
US915是美国标准,
CN779、CN470是中国标准,
AU915主要是澳大利亚标注,
AS923主要是亚洲其余国家标准,
KR923主要是韩国标准,
IN865主要是印度标准,
RU864主要是俄罗斯标准。

节点的入网/激活

每个要接入LoRaWAN网络的节点,必须经过入网/激活的过程,节点入网的目的是获得云端分配的DevAddr、AppSKey、NwkSEncKey等通信必须的信息,入网方式分以下两种。

OTAA(Over-The-Air Activation)空中激活

OTAA中,节点的AppSKey和NwkSEncKey信息是临时从云端获取的,节点中需要提前烧录NwkKey和Appkey、JoinEUI等信息,节点向云端发送Join-request message请求,云端返回Join-accept message,节点提取Join-accept message中的DevAddr,JoinNonce等信息,并自己计算生成AppSKey和NwkSEncKey等信息。

ABP (Activation By Personalization)人工激活

ABP中,节点需要的DevAddr、AppSKey、NwkSEncKey等信息,不是从云端获取的,而是提前在云端配置好,并烧录到节点固件中,节点使用这些信息可以直接和云端通信,省去了OTAA中的Join-request流程。

ChirpStack 编解码函数功能

在 Device Profile 中有一个 codec 模块。

  • Custom JavaScript codec functions 即JS 编解码函数
Decode解析数据

启动 Decode 之后的数据,多了一个 object 对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function toHexString(bytes) {
return bytes.map(function(byte) {
return ("00" + (byte & 0xFF).toString(16)).slice(-2)
}).join('').toUpperCase()
}

function Decode(fPort, bytes, variables) {
var hex = toHexString(bytes)
return {
"Version": hex.substring(0, 2),
"DeviceType": hex.substring(2, 4),
"ReportType": hex.substring(4, 6),
"battery": parseInt(hex.substring(6, 8), 16),
"a_current": parseInt(hex.substring(8, 12), 16),
"b_current": parseInt(hex.substring(12, 16), 16),
"c_current": parseInt(hex.substring(16, 20), 16),
"Mulitplier1": hex.substring(20, 22),
}
}
1
2
3
function Encode(fPort, obj, variables) {
return [];
}

day2: 2020.10.22

通过mqtt打通ChirpStack上下行数据,操作lora设备。

ChirpStack中的mqtt主题示例:

ApplicationID和 DevEUI 可以直接从订阅主题中获得

Events

application/[ApplicationID]/device/[DevEUI]/event/[EventType]

application/[ApplicationID]/device/[DevEUI]/command/down

day3: 2020.10.23

熟悉lora设备的指令操作解析
主要有2种方式,一种是从上面讲的mqtt中进行publish,
另外一种是从ChirpStrack进行上行数据查看及下发数据

下发数据:
9k6kPm
查看上行数据
EWBRYB

待评估处理:

1.调研lora采用的时序数据库,通过美观的方式展现lora的数据

ChirpStack 在应用集成中配置将数据的收发存储到 InfluxDB,再通过 Granfana 进行可视化观察。

时序数据库 InfluxDB集成
Grafana

2.调研lora的监控及报警

Prometheus

3.chripstack整合平台的可行性

评估chripstack的开放api接口的操作能力

4.对硬件实际测试效果

对实际lora设备进行测试,评估lora实际运用的效果