ThingsBoard开源物联网平台介绍

news2024/11/25 11:46:32

1. Thingsboard 简介

ThingsBoard是一个基于Java的开源物联网平台,旨在实现物联网项目的快速开发、管理和扩展。它使用行业标准的物联网协议(MQTTCoAPHTTP)实现设备连接,并支持云和本地部署。ThingsBoard结合了可扩展性容错性高性能,确保数据不会丢失。

ThingsBoard集群可以处理数百万个设备,提供高可用性和可扩展性。该平台还支持多种数据采集方式,包括从设备直接采集、通过网关采集以及使用其他云服务采集。用户可以在云服务器上通过可自定义的仪表板查看或共享来自任意数量设备的数据。此外,ThingsBoard还提供了30多个可自定义的小部件,允许用户为大多数物联网用例构建最终用户自定义仪表板。

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

2. Thingsboard 基本特点

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

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

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

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

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

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

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

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

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

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

3. Thingsboard架构

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

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

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 以自定义命令推送到设备。

测量数据处理:

RPC 过程:

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

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

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

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

规则引擎:

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

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

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

IoT网关:

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

(其中最新版本的采用Python语言进行编写,建议可以自定义接收端口后,发送到ThingsBoard)

目前网关支持:

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

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

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

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

4. 系统环境

        1、操作系统

Thingsboard兼容多种操作系统,包括LinuxWindowsmacOS

        2、Java环境

Thingsboard需要Java运行环境。推荐使用Java 11(OpenJDK 11),确保Java环境正确安装并配置环境变量。

        3、数据库系统

ThingsBard平台目前支持三种数据库选项:

  • SQL:将所有实体和遥测存储在SQL数据库中,建议使用PostgreSQL数据库HSQLDB可用于本地开发和测试不建议将HSQLDB用于任何其他用途。
  • 混合:将所有实体存储在SQL数据库中,并将所有遥测存储在NoSQL数据库中。
  • 混合 (PostgreSQL + Cassandra):将所有实体存储在PostgreSQL数据库中,并将时间序列数据存储在Cassandra数据库中。
  • 混合 (PostgreSQL + TimescaleDB):将所有实体存储在PostgreSQL数据库中,并将时间序列数据存储在Timescale数据库中。

5. 主架构

        1、ThingsBoard设计为:

  • 扩展性:可水平扩展的平台使用领先的开源技术构建。
  • 容错性:没有单点故障集群中的每个节点都是相同的。
  • 健壮性:单个服务器节点可以根据使用情况处理以万级别的设备,集群可以处理数百万级别设备。
  • 持久化:永远不会丢失你的数据。
  • 自定义:使用可自定义的部件和规则引擎节点可以轻松添加新功能。

        2、规则引擎

ThingsBoard规则引擎是系统的心脏,负责处理传入的消息

  • 规则引擎使用Actor来实现。主要实体的actor:规则链和规则节点
  • 规则引擎节点可以加入集群,其中每个节点负责传入消息的某些分区。
  • 在隔离模式下规则引擎处理特定租户的消息。
  • 在共享模式下规则引擎处理多个租户的消息。
  • ThingsBoard规则引擎可能以两种模式运行:共享和隔离
  • 规则引擎从队列中订阅传入的数据并且仅在处理完消息后才对其进行确认。

6. 内置功能

  1. 设备管理: 提供了对物联网设备的注册、分组、监控远程控制功能。
  2. 数据收集和存储: 负责从各类IoT设备高效地收集和存储大量数据。
  3. 数据可视化: 通过自定义仪表板小部件,实现数据的实时可视化和分析
  4. 规则引擎: 使用户能够定义复杂的业务逻辑,自动化处理响应数据
  5. 安全: 提供了全面的安全机制,包括数据加密设备鉴权,确保平台和数据的安全。
  6. 集成和API: 支持与外部系统和服务的广泛集成,增强平台的功能和灵活性。

提供了丰富的API和集成选项,可以轻松地与其他系统和应用程序集成。

7. 适用场景

  • 智能城市:监控和管理城市基础设施。

  • 工业物联网:实现工厂自动化和过程优化。、

  • 能源管理:监控和优化能源使用。

  • 农业技术:提高农业生产效率和作物管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1512065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

synchronized关键字(锁升级)

概述 synchronized是Java的一个关键字,用来保证多线程下临界区资源的共享安全性 synchronized可以加在方法上(静态方法和普通方法)、代码块上 使用语法: synchronized (对象) {// 操作临界资源 }public synchronized void te…

云起云落:揭秘云计算基础内功心法

文章目录 云计算基本概念云计算发展历程云计算计算模式云计算商业模式云计算部署模式私有云部署公有云部署混合云部署 云计算虚拟化技术虚拟机模式虚拟化容器模式虚拟化容器VS虚拟机 常见虚拟化工具和技术虚拟化工具“轻量级”虚拟化工具 云计算供应商云计算三要点(…

用miniconda建立PyTorch、Keras、TensorFlow三个环境

一、配置清华镜像conda源 由于网络问题,直接使用conda默认的源下载包可能会非常慢。为了解决这个问题,可以配置国内镜像源来加速包的下载。清华大学TUNA协会提供了一个常用的conda镜像源。下面是如何配置清华镜像源的步骤: 1. 配置清华conda…

案例分析篇14:信息系统安全设计考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测

多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测 目录 多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介…

ARM64汇编06 - 基本整型运算指令

ADD (immediate) 将 Xn 与 imm 相加,结果赋值给 Xd,imm 是无符号数,范围为 0 - 4095。 shift 是对 imm 进行移位,shift 为 0 的时候,表示左移 0 位,即不变。shift 为 1 的时候,表示左移12 位&a…

Django 学习笔记(Day1)

「写在前面」 本文为千锋教育 Django 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。 目录 0 课程介绍 1 Django 快速入门 1.1 Django 介绍 1.2 Django 安装 1.3 创建 Django 项目 1.4 运行 Django 项目 1.5 数据迁…

使用 Ruby 或 Python 在文件中查找

对于经常使用爬虫的我来说,在大多数文本编辑器都会有“在文件中查找”功能,主要是方便快捷的查找自己说需要的内容,那我有咩有可能用Ruby 或 Python实现类似的查找功能?这些功能又能怎么实现? 问题背景 许多流行的文本…

vite 安装tailwindcss失效

需求:在vite5 vue3 ts中安装tailwindcss 问题:按照tailwindcss的官方文档进行安装,可是一直不生效 解决方式: 在mian.ts 里面导出 style.css 文件 就可以了哈

【HomeAssistant新版文件管理器】

【HomeAssistant新版文件管理器】 1. 前言2. 地址3. 安装4. 使用方法5. 总结欢迎大家阅读2345VOR的博客【Home Assistant 之QQ邮箱推送提醒】🥳🥳🥳2345VOR鹏鹏主页: 已获得CSDN《嵌入式领域优质创作者》称号🎉🎉、阿里云《arduino专家博主》👻👻👻,座右铭:…

基于Springboot的预报名管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的预报名管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&a…

从根到叶:深入了解Map和Set

窗间映出一片高远的天空, 向晚的天际宁静而又清明。 我孤独的心灵在幸福地哭泣, 它在为天空如此美好而高兴。 恬静的晚霞一片火红, 晚霞灼烧着我的热情。 此刻的世界没有别人, 只有上帝,我和天空。 ——&#x…

【vivado】 clock wizard 时钟IP

一、前言 MMCM和PLL是在FPGA设计中不可避免需要使用到的时钟资源,对于其功能及使用方法的理解是正确进行FPGA设计的前提。 二、Xilinx 时钟 IP配置 vivado中使用时钟向导(Clocking Wizard)配置时钟IP核,其框图如下: clk_in 输入时钟&#…

Grafana

介绍 官网:https://grafana.com/ Grafana 是一个开源的指标分析和可视化工具,它被广泛用于展示和监控云基础设施和应用程序的实时数据。Grafana 提供了一个强大且易于使用的界面,允许用户创建各种图表、图形和仪表盘,以直观地展…

【漏洞复现】大华智慧园区综合管理平台SQL注入漏洞

Nx01 产品简介 大华智慧园区综合管理平台是一款综合管理平台,具备园区运营、资源调配和智能服务等功能。该平台旨在协助优化园区资源分配,满足多元化的管理需求,同时通过提供智能服务,增强使用体验。 Nx02 漏洞描述 大华智慧园区…

Web3:数字身份与隐私保护的新篇章

1. 数字身份验证的革新 在传统互联网上,个人的数字身份通常由中心化的身份验证机构控制,存在安全性和隐私保护的风险。而在Web3中,基于区块链技术的去中心化身份验证方案正在兴起。通过使用分布式账本和加密技术,Web3可以提供更安…

122. 买卖股票的最佳时机 II(力扣LeetCode)

文章目录 122. 买卖股票的最佳时机 II题目描述贪心 122. 买卖股票的最佳时机 II 题目描述 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。…

力扣题目汇总分析 利用单调栈解决问题

496 下一个更大元素 I 问题 nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。为nums1中每个数字 x找到下一…

nvm 的安装与管理 node.js

文章目录 下载 nvm使用 nvm 下载与管理 node.jsnpm 切换镜像源使用 cnpm使用 yarn 下载 nvm NVM是Node.js的版本管理工具,它允许你轻松地在同一台机器上安装和切换不同版本的Node.js。使用NVM,你可以在不同的项目中使用不同的Node.js版本,而…

按键+串口发送实验

摸鱼记录 Day_15 ~( ̄▽ ̄~)(~ ̄▽ ̄)~ review 前边已经学习了: 串口发送Vivado 串口通信(UART)------串口发送-CSDN博客 按键基于状态机的按键消抖实现-CSDN博客 1. …