Thingsboard 开源 IoT 物联网平台入门
1. Thingsboard 简介
ThingsBoard 是一个基于Java的开源的物联网平台,用于数据收集、处理、可视化和设备管理。它使用物联网行业的标准协议(MQTT、CoAP和HTTP)实现设备连接,并支持云和本地部署。ThingsBoard 具有可扩展性、容错性和高性能,因此永远不会丢失数据。
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端:数据采集,需要支持MQTT或HTTP等协议
通讯通道:数据采集监听
规则引擎:对数据进行过滤,处理核心业务规则服务侧 API 和 GW
用户端:用户和应用
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 网关的整体架构图。
目前网关支持:
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)的身份来完成入门操作
登录成功后,进入到管理页面,在这里我们能够创建资产、设备和客户,以及自定义仪表盘实时展示数据。
4.2.1 创建资产
在主页面点击左侧栏 资产 项,进入资产管理页面,单击左上角 添加资产 添加新资产 ,进入添加页面填写相关属性值:名称为 Building A ,资产类型为 Building;
4.2.2 添加设备
在主页面点击左侧栏 设备 项,进入设备管理页面,单击左上角 添加设备 添加新设备 ,进入添加页面填写相关属性值:名称为 Thermometer A-1 ,设备类型为 thermometer;填写完成后,添加设备 Thermometer A-2,步骤和上面一致;点击 添加 后,即可在所有设备页面看到新增的 Thermometer A-1 、Thermometer A-2 设备;
4.2.3 定义资产和设备
创建完设备和资产后,需要定义资产和设置之间的关联关系。在 资产管理页面 单击上述创建的 Building A 资产,弹出资产详情页面,切换到 关联 tab页;点击 添加 按钮,进入添加关联页面,关联类型为 Contains 实体类型为 设备,选择刚刚创建的设备Thermometer A-1 、Thermometer A-2 分别添加;
4.2.4 从设备推送数据
使用规则链连续推送数据,在主页面点击左侧栏 规则链库 项,进入规则链管理页面,单击 添加规则 添加新规则,弹出添加规则页面填写属性值,名称为 Temperature emulation;
添加完成后,单击 Open rule chain 打开 Temperature emulation 规则,进入编辑页面,添加 generator 节点,填写相关属性值如下所示;
拖入 rule chain 节点到编辑面板,规则链选择已存在的 Root Rule Chain 规则,点击添加;
链接 Temperature generator 和 Root Rule Chain 节点,条件为 Success ;
添加完成后点击 应用更改 ,在设备 Thermometer A-1 最新遥测 tab页面即可看到实时变化的温度数据;
往期推荐
1、HarmonyOS 到底是不是Android套壳?
2、5G将是一个彻底失败的通信技术吗?
3、AWS IoT 物联网平台 MQTT 通讯模式
4、2021中国 IoT物联网平台对比报告
Thingsboard 开源 IoT 物联网平台入门相关推荐
- IoT物联网平台「设备影子」开发实战
IoT物联网平台提供设备影子功能,在云端通过一个JSON文件持久化存储设备上报状态值和业务系统的期望值.每个设备有且只有一个设备影子,设备可以通过MQTT协议获取期望值desired和设置设备状态re ...
- 开源的IoT物联网平台大比拼
目录 一:Kaa IOT Platform 二:SiteWhere: Open Platform for the Internet of Things 三:ThingSpeak: An open Io ...
- Thingsboard开源IOT平台(一)--基本介绍
因工作缘故,需要搭建一套IOT平台.出于数据保护和前期验证的缘故,没有选用华为.阿里等成熟的IOT平台,而是基于开源的Thingsboard去搭建IOT平台. Thingsboard简介 Things ...
- 年度最佳 | 国产开源、多租户、数字孪生 IoT 物联网平台
IoTSharp 是一个开源的物联网基础平台,集设备属性数据管理.遥测数据监测.RPC多模式远程控制.规则链设计引擎等强大能力,依据数字孪生概念将可见与不可见的物理设备统一孪生到数字世界,透过资产.产 ...
- 2022年 IoT 物联网平台发展趋势:私有化部署
据麦肯锡<物联网:抓住加速机遇>报告预测,到2030年,物联网将在全球创造最高可达12.6万亿美元的经济价值.随着亚马逊.阿里云等云计算巨头不断加码投入,公有云IoT物联网平台因其低成本. ...
- 2021 国内外 IoT 物联网平台汇总
物联网是继互联网.移动互联网之后的又一个万亿级的大市场.物联网平台作为物联网应用的基础设施,既管理设备.处理数据,又连接用户,必然是各路云厂商的兵家必争之地. 今天小编就为大家梳理了国内外主流的 Io ...
- 解密阿里云IoT物联网平台MQTT Access Server核心架构
MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布.订阅信息传输协议.MQTT已逐渐成为IoT领域最热门的协议,也是国内外各大物联网平台最主流的传输协议,阿里云IoT物联网平台 ...
- HaaS学习笔记 | 终端设备接入和断开阿里云IoT物联网平台的明细教程
[1]题目要求 [本教程视频]:终端设备连接阿里云物联网平台 [2]理论基础 aliyunIoT是HaaS轻应用扩展库中模块,能帮助厂商将设备安全地接入到阿里云IoT物联网平台,继而让设备可以被物联网 ...
- 微信小程序使用MQTT.js连接阿里云IoT物联网平台
官方已经开源了一个SDK版本,也是基于mqtt.js,进行了各种封装: https://github.com/aliyun/alibabacloud-iot-device-sdk · 阅读以下内容需要 ...
最新文章
- NHibernate之Could not initialize proxy - no Session Bug
- 安装nginx+ngx_lua支持WAF防护功能
- [转载]JAVA实现鼠标右键功能
- 如何设置Fiddler来拦截Java代码发送的HTTP请求,进行各种问题排查
- 颜色模型和颜色应用---小结
- 读者福利:复盘2018上半年精选文章,还有礼品等着你!
- 百分点集团刘译璟:人工智能四大挑战及对策
- Java菜鸟教程 递归算法与Scanner类
- web渗透中bypass防护系统
- 除了深度学习,你需要知道AI技术的23个方向
- npm环境报错解决方案
- HTML基础-跟着李南江学编程
- 微带线和带状线的设计指南
- 【ORM框架】Python ORM框架——peewee(详细)
- Apache Ignite详解
- 手机cpu性能天梯图2022
- 科研热点|2023年IEEE Fellow入选者名单公布,中国学者占比1/4~
- 化整为零 盛大在换轨
- 商派BBC系统——商家管理管理中心的菜单配置
- 用Python实现多层感知器神经网络
热门文章
- Libev源码分析05:Libev中的绝对时间定时器
- clock_gettime获取系统时间
- Maven项目中,添加依赖项后仍然出现找不到该jar包的解决方法
- 中国计算机科学家数量百人,百位科学家获“中国青年科技奖”,高校人数占比超七成...
- “部分-整体“——组合模式
- 服务器io测试工具-fio
- Python+pandas把多个DataFrame对象写入Excel文件中同一个工作表
- 程序员怎么高效做笔记
- django的update和create高级操作
- Job Statement