开源项目物联网iot平台

贵客云 2021-10-13 17:05 阅读 27

b5405579f8b3cdc06573442dd62cd6d6.png

1. Thingsboard 简介

ThingsBoard 是一个基于Java的开源的物联网平台,用于数据收集、处理、可视化和设备管理。它使用物联网行业的标准协议(MQTT、CoAP和HTTP)实现设备连接,并支持云和本地部署。ThingsBoard 具有可扩展性、容错性和高性能,因此永远不会丢失数据。

Thingsboard 分为专业版和社区版,社区版是开源的,专业版是收费的。thingsboard 提供了30多个可自定义的小部件,允许为大多数物联网用例构建最终用户自定义仪表板。官网地址:http://thingsboard.io/

70d08d566e943cf2b5fc945e75c5215f.png

2. Thingsboard 基本特点

提供设备、资产和客户,并定义它们之间的关系。

  • 警报管理:分析传入的遥测数据并通过复杂的事件处理触发警报。

  • 设备管理:使用远程过程调用(RPC)控制设备。根据设备生命周期事件,REST API 事件,RPC 请求等构建工作流

  • 可扩展性:可水平扩展的平台,使用领先的开源技术进行构建。

  • 数据可视化: 从设备和资产收集并可视化数据。提供了现成的30个可配置小部件,并能够使用内置编辑器创建自己的小部件。内置线图,数字和模拟仪表,地图等等。

  • 容错:没有单点故障,集群中的每个节点都是相同的。没有主人工人或热备用人员。自动检测到节点故障。可以在不停机的情况下更换故障节点。使用可靠的 NoSQL 数据库复制持久数据。

  • 强大而高效:单个服务器节点可以处理成千上万个设备,具体取决于用例。ThingsBoard 集群可以处理数百万个设备。

  • 可自定义的:通过可自定义的小部件和规则引擎节点,轻松添加新功能。使用可自定义的规则链,窗口小部件和传输实现来扩展默认平台功能。除了MQTT,CoAP和HTTP支持之外,ThingsBoard用户还可以使用自己的传输实现或自定义现有协议的行为。

  • 持久:永远不会丢失您的数据。

  • 遥测数据收集功能: 设计动态且响应迅速的仪表板,并向您的客户提供设备或资产遥测和见解。可以可靠地收集和存储遥测数据,以应对网络和硬件故障。使用可自定义的Web仪表板或服务器端API访问收集的数据。

3. Thingsboard架构

Thingsboard有两种架构形式,微服务架构和 Monolithic 架构,两个架构的基本功能一致,该文档主要介绍 Monolithic 架构,架构图如下:


Device端:数据采集,需要支持MQTT或HTTP等协议
通讯通道:数据采集监听
规则引擎:对数据进行过滤,处理核心业务规则服务侧 API 和 GW
用户端:用户和应用

88e666d48cbc2a7e5f4657d088e35649.png

1. 设备连接

支持MQTT、CoAP、HTTP(S) 等协议,通过以上协议设备可以连接到信息网络,比如4G、5G。

2. 引擎规则

TingsBoard Rule Engine 处理来自设备的信息,并触发称为插件的可配置模块。

3. 核心服务

  • TingsBoard包含一组允许管理管理以下实体的核心服务:

  • 设备及其凭据

  • 规则链及规则节点

  • 租户 Tenants,客户 Customers 和平台的关系是:平台 =>租户 =>客户

  • 小部件和仪表盘

  • 警报和事件

  • 规则能够调用此API的某个子集。例如,规则可以为某些设备创建报警

4. 服务端API网关

每个 ThingsBoard 服务器都为注册用户提供 REST API。system telemetry 服务允许使用REST API 和 websocket 管理属性并获取时间序列数据。系统 RPC 服务提供 REST API 以自定义命令推送到设备。

测量数据处理:

6da366eeb5b89f68f26091c3c8961327.png

RPC 过程:

根据发起者,Thinsboard RPC 功能可以分为两种类型:设备发起的 RPC 调用和服务器发起的 RPC 调用。为了使用更熟悉的名称,我们将源自设备的 RPC 调用命名为客户端 RPC 调用,将源自服务器的 RPC 调用命名为服务器端 RPC 调用。

cdac9a42cb6ebf2e0e7ecc24e7c102fb.png

服务器端RPC调用可以分为单向和双向:

  • 单向RPC请求没有发送确认就发送到设备,并且显然不提供设备的任何响应。仅当在可配置的超时时间内没有与目标设备的活动连接时,RPC调用才会失败。

929f8b61394de2c5cda112183b9638be.png
  • 双向RPC请求被发送到设备,并期望在特定的超时时间内接收到来自设备的响应。服务器端请求将被阻止,直到目标设备回复该请求为止。

8052422d3b4807a402729711e0f952d5.png

规则引擎:

9e278ec3485316111a722b9f84fbfe2d.png


规则:过滤器,处理器,Action
插件:处理消息,服务侧API请求,WebSocket和应用,持久化和查询事件,插件间RPC通信

929ce0aff1c7ab582e8d5e49e5b0b277.png

遥测插件-系统插件,负责处理与设备属性和遥测有关的各种请求。

RPC 插件-允许使用 REST API 对设备执行 RPC 调用。RPC 调用将使用支持的网络协议传递到设备。
设备消息传递插件-允许分配给相同客户交换事件的设备。
发送邮件插件-允许发送电子邮件。您可以指定邮件服务器属性。有关更多详细信息,请参见插件文档。
Kafka插件-允许将遥测消息推送到Apache Kafka。有关更多详细信息,请参见插件文档。
RabbitMQ插件-允许将遥测消息推送到RabbitMQ。有关更多详细信息,请参见插件文档。
REST API呼叫插件-允许使用REST API将遥测消息推送到外部服务器。有关更多详细信息,请参见插件文档。时间RPC插件-允许从设备发送RPC请求以获取当前服务器端时间戳。

IoT网关:

在所有的物联网中,IOT 网关是非常重要的一环,大部分(60%-80%)设备都属于哑终端设备(不支持 IP),这些设备都需要通过网关才能够接入到云平台。因此 Thingsboard 支持通过 IOT 网关进入到平台,下面是 IOT 网关的整体架构图。

db2ee9e71c96d48ea5bed9d79c9c39c3.png


目前网关支持:

  • MQTT扩展,用于控制,配置和收集使用现有协议连接到外部MQTT代理的IoT设备的数据。

  • OPC-UA扩展,用于从连接到OPC-UA服务器的IoT设备收集数据。

  • Sigfox扩展,用于从连接到Sigfox Backend的IoT设备收集数据。

  • Modbus扩展,用于从通过Modbus协议连接的物联网设备收集数据。

4. Thingsboard简单应用

4.1 Thingsboard的安装部署

开发环境要求:
JDK 1.8版本,官方下载地址:oracle.com/java/technol
Node.js,官网地址:nodejs.org/en/download/
Maven 3.6以上, 下载地址:maven.apache.org/download/

4.2 Thingsboard的数据推送

以租户管理员(tenant@thingsboard.org / tenant)的身份来完成入门操作

d54a64fefd0a5d77d9b87f9dde5e32c2.png

登录成功后,进入到管理页面,在这里我们能够创建资产、设备和客户,以及自定义仪表盘实时展示数据。

563dfe85e7452afc556c390454c3bda2.png

4.2.1 创建资产

在主页面点击左侧栏 资产 项,进入资产管理页面,单击左上角 添加资产 添加新资产 ,进入添加页面填写相关属性值:名称为 Building A ,资产类型为 Building;

f31364edd16f20ed19ee6e334d7e4500.png

4.2.2 添加设备

在主页面点击左侧栏 设备 项,进入设备管理页面,单击左上角 添加设备 添加新设备 ,进入添加页面填写相关属性值:名称为 Thermometer A-1 ,设备类型为 thermometer;填写完成后,添加设备 Thermometer A-2,步骤和上面一致;点击 添加 后,即可在所有设备页面看到新增的 Thermometer A-1 、Thermometer A-2 设备;

b9101b6870956b860ef92e4abd24a1cb.png

4.2.3 定义资产和设备

创建完设备和资产后,需要定义资产和设置之间的关联关系。在 资产管理页面 单击上述创建的 Building A 资产,弹出资产详情页面,切换到 关联 tab页;点击 添加 按钮,进入添加关联页面,关联类型为 Contains 实体类型为 设备,选择刚刚创建的设备Thermometer A-1 、Thermometer A-2 分别添加;

ede4a1c859789e3dd2128bd3ac73e9a5.png

4.2.4 从设备推送数据

使用规则链连续推送数据,在主页面点击左侧栏 规则链库 项,进入规则链管理页面,单击 添加规则 添加新规则,弹出添加规则页面填写属性值,名称为 Temperature emulation;

b48266db073e67b5863c36a844f48c5d.png

添加完成后,单击 Open rule chain 打开 Temperature emulation 规则,进入编辑页面,添加 generator 节点,填写相关属性值如下所示;

8a93418383a3541528b0619b1482ad2c.png

拖入 rule chain 节点到编辑面板,规则链选择已存在的 Root Rule Chain 规则,点击添加;

266c8f1aab6b57ea284786f4bd3924ff.png

链接 Temperature generator 和 Root Rule Chain 节点,条件为 Success ;

1c5162bf413d2f3e37056e5713593d6f.png

添加完成后点击 应用更改 ,在设备 Thermometer A-1 最新遥测 tab页面即可看到实时变化的温度数据;

d271129861a90f7026f74729faeaa4da.png

往期推荐

1、HarmonyOS 到底是不是Android套壳?

2、5G将是一个彻底失败的通信技术吗?

3、AWS IoT 物联网平台 MQTT 通讯模式

4、2021中国 IoT物联网平台对比报告

78a176783620398e2d3c35fa905e4196.gif

分类: 科技/物联网 关键词: 物联网平台
原文 编辑 投诉 置顶 分享
推荐
快讯
剧透网 展会网 区块链 乡村游
游戏运营 营销软件 行业信息

营销 微信营销 QQ营销 网络营销 自媒体营销 产品推广 营销策划 媒体投放 电商营销 抖音营销 广告联盟 科技 大数据 人工智能 统计分析 智能硬件 工业互联网 物联网
财经 跨境电商 投资理财 量化交易 投资理论 价值投资 短期投资 理财App 基金定投 指数基金 理财课程 理财知识 理财产品 理财项目 招商加盟 食品招商 餐饮加盟

版权所有©贵客云    QQ732055019 鲁ICP备08109250号-5

鲁公网安备 37020302371242号