当前位置:   article > 正文

【thingsboard+NodeRed+chirpstack】实现Lora节点设备的数据上下行通讯_chirpstack+nodered+thingsboard

chirpstack+nodered+thingsboard

本文主要实现基于 thingsboard+NodeRed+chirpstack 实现 lora设备的数据上下行通讯。
NodeRed作为mqtt桥接器,在开源的社区版 thingsboard上实现

在这里插入图片描述

LoRa 设备上下行通讯方案

数据上行

img

img

Ø 【chirpstack中的mqtt消息】

img

以上信息重点关注框出的箭头指向的字段。我们需要将 object 字段下有物理含义的三个值发送给thingsboard 进行数据分析,其余的重要信息都是用于区分设备的信息,devEUI是设备的ID号,用于区分设备,其余字段用于进行设备管理。

Ø 【NodeRed中进行数据处理】

img

NodeRed接收chirpstack的mqtt消息,利用JSON解析脚本将数据完全还原出来,如下图:

我们将解析后的数据通过nodered 的mqtt out 控件将数据发送至thingsboard,在nodered中顺便将thingsboard需要的telemetryattribute作了组合,分别利用两个主题对数据发送:

msg.topic = "v1/devices/me/attributes";

msg.topic ="v1/devices/me/telemetry";

img

数据下行

img

方案说明:

Thingsboard 端控制下行设备,利用 attribute update的方式,数据经过thingsboard中配置的规则链数据解析,解析为chripstack 需要的数据格式,然后发给chirpstack的mqtt端,完成设备的控制。

【通讯实例】

场景:通过客户端给chirpstack发送mqtt消息,从而实现对设备的控制。

实现:客户端连接chirpstack的mqtt broker之后发送的消息至少包含以下信息

描述:通过thingsboard更新relaySwitch 属性,完成数据的下发

Ø Mqtt_Topic: application/11/device/88000111000200aa/command/down

n 11 :消息中的 applicatiID字段,是chirpstack应用分组号

n 88000111000200aa:为消息中的devEUI字段,设备ID号,用于唯一区分设备节点

Ø Mqtt_message: Json数据格式,且至少包含信息为,其中

{
  "fPort": 2,
  "object": {"relaySwitch": 10
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Device 层面

创建设备时,要添加 relation

img

规则链层面

每一类lora产品:

对应在chirpstack服务器中有一个单独的 application 号

在tb中有一个专门的规则链配置

灯控模块规则链

【思路分析】

对于灯控设备来说,在thingsboard一端只需要解析有物理含义的属性,如本灯控模块的雷达值、继电器状态、温度值。但是为了在thingsboard端进行更好的设备管理,除了这几个值以外,还将上传节点设备的其他信息,如 applicationID devEUI deviceName fPort等几个字段,含义分别如下:

Ø applicationIDchirpstack中的 application分组的ID号,同一类产品在chirpstack中分为一组,有共同的ID号

Ø devEUI :节点设备的ID号,在chirpstack中用于唯一区分设备。

Ø fPort:LoRa发送数据的端口,这个值比较重要

Ø deviceName:节点名称,该值为在chirpstack中创建设备的设备命名

【规则链解释】

img

Ø 上行消息,post attribute 分别 post 至 客户属性 和 共享属性(原因见说明1)

Ø 下行消息,需要将 devEUI fPort 这两个字段值,更新的设备属性值发送给chirpstack

规则链------上行通信解析:

上行通信的数据没什么可以解释的,数据从nodeRed解析出来之后,分别将不同的字段组合为 attributetelemery发送至thingsboard

规则链------下行通信解析:

img

如图,利用img这个控件将以上四个字段添加到元数据(*Metadata*)中。

img

因此就要求设备的客户端属性 client attribute 中包含以上几个字段。所以数据上行通信时,需要将以上几个字段作为 attribute 保存起来。

所以在创建设备时,要添加关联:

img

可以管理设备自己,也可以将所有的灯控模块利用 asset,组合为一个 assset Profile,添加关联的时候可添加asset。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/171234
推荐阅读
相关标签
  

闽ICP备14008679号