将Edgex网关接入Thingsboard物联网平台
系统环境准备Thingsboard物联网平台平台概述安装概述Edgex foundry开源边缘计算物联网软件框架将Edgex网关接入Thingsboard物联网平台的关键组件eKuiper安装确认推荐安装eKuiper 管理控制台将 Edgex 设备数据上报关键步骤主要步骤Thingsboard平台建立网关创建 EdgeX 流并建立规则登录eKuiper 管理控制台添加docker内的 eKuiper 规则引擎建立规则,发送物联网平台物联网遥测上传API参考说明
在众多的开源物联网平台项目中,Thingsboard在体系架构先进性、功能完整性、文档完备性方面,应是首屈一指。
物联网平台ThingsBoard,作为大屏开发工具,只要拖拉一些内置控件或直接定制开发控件的方式,可快速提供较好的可视化效果。
更多详细参考官网
1.参见官方文档
https://thingsboard.io/docs/user-guide/install/cluster/docker-compose-setup/
2.推荐参考
语雀文档 基于docker-compose部署步骤 https://www.yuque.com/qingchuntian/tfod6d/ktkxg2
Edgex foundry是一个Linux 基金会运营的开源边缘计算物联网软件框架项目,该项目的核心是基于与硬件和操作系统完全无关的参考软件平台建立的互操作框架,使能即插即用的组件生态系统,统一市场,加速物联网方案的部署。EdgeX Foundry 使有意参与的各方在开放与互操作的物联网方案中自由协作,无论他们是使用公开标准或私有方案。
安装文档参考官网,推荐docker方式。 https://cn.edgexfoundry.org/ 建议安装版本不带token ,方便后面调试开发,如:yml文件带'no-secty.'关键字 curl https://raw.githubusercontent.com/edgexfoundry/edgex-compose/ireland/docker-compose-no-secty.yml -o docker-compose.yml; docker-compose up -d
LF Edge eKuiper - 超轻量物联网边缘数据分析软件
LF Edge eKuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源软件,可以运行在各类资源受限的边缘设备上。eKuiper 设计的一个主要目标就是将在云端运行的实时流式计算框架(比如 Apache Spark (opens new window),Apache Storm (opens new window)和 Apache Flink (opens new window)等)迁移到边缘端。eKuiper 参考了上述云端流式处理项目的架构与实现,结合边缘流式数据处理的特点,采用了编写基于源 (Source)
,SQL (业务逻辑处理)
, 目标 (Sink)
的规则引擎来实现边缘端的流式数据处理。
该软件在安装Edgex foundry时候已经默认安装到docker里面
从 eKuiper 0.9.1 版本开始,每发布一个 eKuiper 新版本,会随之发布对应版本的管理控制台。本文以一个实际例子来说明如何使用管理控制台对 eKuiper 节点进行操作与管理。有这个工具方便写eKuiper 处理规则,具备交互界面
1.使用docker安装需指定软件版本号,安装文档里面可能不是最新的版本,没有规则编辑界面的 2.安装说明 https://docs.emqx.cn/kuiper/latest/manager-ui/overview.html#%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1
docker run --name kuiperManager --network=home_edgex-network -d -p 9082:9082 emqx/kuiper-manager:1.2.1
登录 kuiper-manager
登录时需要提供 kuiper-manager 的地址,用户名、密码。如下图所示:
http://$yourhost:9082
使用该工具,直接管理现有docker内部的eKuiper 节点,端口是 59720 ;非官网教程那个端口
主要参考文档 https://docs.edgexfoundry.org/2.2/examples/Ch-CommandingDeviceThroughRulesEngine/ 核心思路:使用规则引擎eKuiper,基于Thingsboard物联网平台网关方式,使用规则引擎的数据格式模板生成平台所需格式json数据,采用mqtt接口把数据发送到Thingsboard物联网平台。
本文档不会涵盖 EdgeX 或 LF Edge eKuiper 的基本操作。读者应具备以下基本知识:
创建 EdgeX 流并建立规则3种方式 1.通过命令方式,参考https://docs.edgexfoundry.org/2.2/examples/Ch-CommandingDeviceThroughRulesEngine/ 2.通过Edgex foundry UI管理界面,通过交互界面的方式,建立EdgeX 流和规则,可查询规则状态等信息。但目前支撑简单规则,不支持数据模板规则。 3.在笔者实践中,通过eKuiper 管理控制台最新版本,可实现 eKuiper 规则引擎全面管理。
为方便大家阅读,下面以界面操作方式介绍
链接成功后,建立流demo,选择流类型为edgex
更多sql参考 https://docs.emqx.cn/kuiper/latest/sqls/streams.html 关键说明:如何使用 meta 函数抽取在 EdgeX 消息总线中发送的其它信息?
SELECT Temperature,meta(DeviceName) AS DeviceName,tstamp() as tm FROM demo
1、第一个参数:物联网平台mqtt地址及端口 2、第二个参数: 默认物联网平台mqtt主题,不能改。 主题:v1/gateway/telemetry 3、第三个参数:物联网平台前面建立的网关设备的token 4、数据转换模板,需要参考说明 eKuiper 中使用 Golang 模版 (template) 定制分析结果
{"{{.DeviceName}}":[{"ts":{{.tm}}, "values": {"temperature": {{.Temperature}}}}]}
为了将设备遥测发布到 ThingsBoard 服务器节点,请将 PUBLISH 消息发送到以下主题:
Topic: v1/gateway/telemetry
信息:
{
"Device A": [
{
"ts": 1483228800000,
"values": {
"temperature": 42,
"humidity": 80
}
},
{
"ts": 1483228801000,
"values": {
"temperature": 43,
"humidity": 82
}
}
],
"Device B": [
{
"ts": 1483228800000,
"values": {
"temperature": 42,
"humidity": 80
}
}
]
}
其中设备 A和设备 B是您的设备名称,温度和湿度是遥测键,ts是以毫秒为单位的 unix 时间戳。
来源 | 知识星球 | 物联网低代码平台的价值 声明:如转载,请注明本文链接,谢谢合作。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。