Edgex网关接入Thingsboard物联网平台-初探

系统环境准备

Thingsboard物联网平台

平台概述

在众多的开源物联网平台项目中,Thingsboard在体系架构先进性、功能完整性、文档完备性方面,应是首屈一指。

物联网平台ThingsBoard,作为大屏开发工具,只要拖拉一些内置控件或直接定制开发控件的方式,可快速提供较好的可视化效果。
image

更多详细参考官网

安装概述

1.参见官方文档

https://thingsboard.io/docs/user-guide/install/cluster/docker-compose-setup/

2.推荐参考

语雀文档 基于docker-compose部署步骤

https://www.yuque.com/qingchuntian/tfod6d/ktkxg2

Edgex foundry开源边缘计算物联网软件框架

    Edgex foundry是一个Linux 基金会运营的开源边缘计算物联网软件框架项目,该项目的核心是基于与硬件和操作系统完全无关的参考软件平台建立的互操作框架,使能即插即用的组件生态系统,统一市场,加速物联网方案的部署。EdgeX Foundry 使有意参与的各方在开放与互操作的物联网方案中自由协作,无论他们是使用公开标准或私有方案。
image

安装文档参考官网,推荐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


将Edgex网关接入Thingsboard物联网平台的关键组件

LF Edge eKuiper - 超轻量物联网边缘数据分析软件

eKuiper安装确认

LF Edge eKuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源软件,可以运行在各类资源受限的边缘设备上。eKuiper 设计的一个主要目标就是将在云端运行的实时流式计算框架(比如 [Apache Spark (opens new window)](https://spark.apache.org/),[Apache Storm (opens new window)](https://storm.apache.org/)和 [Apache Flink (opens new window)](https://flink.apache.org/)等)迁移到边缘端。eKuiper 参考了上述云端流式处理项目的架构与实现,结合边缘流式数据处理的特点,采用了编写基于`源 (Source)`,`SQL (业务逻辑处理)`, `目标 (Sink)` 的规则引擎来实现边缘端的流式数据处理。

该软件在安装Edgex foundry时候已经默认安装到docker里面

arch

推荐看中文文档

https://docs.emqx.cn/kuiper/latest/

推荐安装eKuiper 管理控制台

从 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
  • UI 端:可视化的界面,便于用户操作
  • Kuiper-manager:管理控制台,本质是一个反向 HTTP 代理服务,提供用户管理,权限验证等服务。既可以部署在云端,也可以部署在边缘端
  • eKuiper 实例,被管理的 eKuiper 节点实例,Kuiper-manager 可以同时管理多个 eKuiper 节点
construct

登录 kuiper-manager

登录时需要提供 kuiper-manager 的地址,用户名、密码。如下图所示:

  • 地址:http://$yourhost:9082

  • 用户名:admin

  • 密码:public

    image-20211222122245265

    使用该工具,直接管理现有docker内部的eKuiper 节点,端口是 59720 ;非官网教程那个端口

将 Edgex 设备数据上报关键步骤

主要参考文档

https://docs.edgexfoundry.org/2.2/examples/Ch-CommandingDeviceThroughRulesEngine/

核心思路:使用规则引擎eKuiper,基于Thingsboard物联网平台网关方式,使用规则引擎的数据格式模板生成平台所需格式json数据,采用mqtt接口把数据发送到Thingsboard物联网平台。

本文档不会涵盖 EdgeX 或 LF Edge eKuiper 的基本操作。读者应具备以下基本知识:

  • 获取并启动 EdgeX。有关如何使用虚拟设备服务获取和启动 EdgeX,请参阅快速入门
  • 运行 eKuiper 规则引擎。请参阅EdgeX eKuiper 规则引擎教程以了解 eKuiper 和 EdgeX 的基础知识。

主要步骤

  1. Thingsboard平台创建网关设备,接收 EdgeX 端发送过来数据,并明确mqtt端口默认1883,同时复制网关token备用。
  2. 启动 eKuiper 并创建 EdgeX 流,在规则引擎中建立mqtt转发规则。
  3. 创建规则,使用模版生成Thingsboard平台所需格式json数据,并发送对应mqtt接口。

Thingsboard平台建立网关

image-20211222132003165

创建 EdgeX 流并建立规则

创建 EdgeX 流并建立规则3种方式

1.通过命令方式,参考https://docs.edgexfoundry.org/2.2/examples/Ch-CommandingDeviceThroughRulesEngine/

2.通过Edgex foundry UI管理界面,通过交互界面的方式,建立EdgeX 流和规则,可查询规则状态等信息。但目前支撑简单规则,不支持数据模板规则。

3.在笔者实践中,通过eKuiper 管理控制台最新版本,可实现 eKuiper 规则引擎全面管理。

为方便大家阅读,下面以界面操作方式介绍

登录eKuiper 管理控制台

http://localhost:9082/

image-20211222133115264

添加docker内的 eKuiper 规则引擎

链接成功后,建立流demo,选择流类型为edgex

image-20211222122245265
image-20211222133447656

建立规则,发送物联网平台

image-20211222133345189
  • 新建规则,id名称不能重复,sql规则按照业务需求取出监测指标和设备名称

更多sql参考

https://docs.emqx.cn/kuiper/latest/sqls/streams.html

关键说明:如何使用 meta 函数抽取在 EdgeX 消息总线中发送的其它信息?

image-20211222133735782
SELECT Temperature,meta(DeviceName) AS DeviceName,tstamp() as tm FROM demo
  • 动作可以有多个及多种类型,下图是动作发送物联网平台参数配置
image-20211222135252901

1、第一个参数:物联网平台mqtt地址及端口

2、第二个参数: 默认物联网平台mqtt主题,不能改。 主题:v1/gateway/telemetry

3、第三个参数:物联网平台前面建立的网关设备的token

4、数据转换模板,需要参考说明 eKuiper 中使用 Golang 模版 (template) 定制分析结果

{"{{.DeviceName}}":[{"ts":{{.tm}}, "values": {"temperature": {{.Temperature}}}}]}


物联网遥测上传API参考说明

物联网MQTT 网关 API 参考

为了将设备遥测发布到 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 时间戳。

来源 | 知识星球 | 物联网低代码平台的价值
声明:如转载,请注明本文链接,谢谢合作。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容