2. ThingsBoard 平台概述:架构、核心组件、设备管理与数据可视化

ThingsBoard 是一个开源的物联网平台,专为设备连接、数据采集、处理与可视化而设计。它原生支持 MQTT 协议,是构建 MQTT 主题订阅与发布模式的理想载体。理解 ThingsBoard 的整体架构与核心组件,是后续实战操作的基础。

2.1 平台架构总览

ThingsBoard 采用微服务与分层架构设计,从上到下依次为:应用层(仪表板、规则链)、核心服务层(设备管理、租户管理)、消息传输层(MQTT/HTTP/CoAP 网关)、数据存储层(Cassandra/PostgreSQL/SQL)。这种分层设计保证了高可用性与水平扩展能力。

架构要点: 消息传输层是 MQTT 主题交互的入口;核心服务层负责设备认证与权限校验;规则链引擎处理消息路由与数据持久化。
ThingsBoard 分层架构图 ThingsBoard 分层架构图 应用层 仪表板 · 规则链 · 告警中心 · 客户门户 核心服务层 设备管理 · 租户管理 · 用户管理 · 权限控制 消息传输层 MQTT Broker · HTTP API · CoAP 网关 · 设备连接 数据存储层 Cassandra · PostgreSQL · SQL · 时序数据

2.2 核心组件详解

ThingsBoard 由多个功能明确的组件构成,下表列出了与 MQTT 主题交互最密切的核心组件及其职责:

组件名称 职责说明 与 MQTT 的关系
设备 物理或虚拟 IoT 设备的数字孪生,拥有唯一凭证 通过 MQTT 客户端连接,发布/订阅主题
租户 多租户隔离单元,管理设备、用户与资产 定义设备归属与主题访问权限
规则链 可视化消息处理引擎,支持过滤、转换、持久化 处理 MQTT 消息,路由到不同主题或服务
仪表板 实时数据可视化面板,支持图表、地图、控件 订阅设备遥测主题,刷新数据
告警中心 基于规则链触发告警,支持通知与升级 通过 MQTT 发布告警消息到指定主题
实战提示: 在 ThingsBoard 中,每个设备都对应一组预定义的 MQTT 主题(如 v1/devices/me/telemetry)。理解组件职责有助于正确选择主题与配置规则链。

2.3 设备管理机制

设备管理是 ThingsBoard 的核心功能之一,涵盖设备的注册、认证、连接、数据上报与状态监控。设备通过 MQTT 连接时,必须携带访问令牌(Access Token)或 X.509 证书进行身份验证。

设备管理的关键流程如下:

  1. 设备注册: 在租户下创建设备,系统自动生成唯一的访问令牌。
  2. 设备认证: MQTT 客户端使用令牌连接 ThingsBoard Broker,平台校验凭证。
  3. 数据上报: 设备发布遥测数据到 v1/devices/me/telemetry 主题。
  4. 属性同步: 设备通过 v1/devices/me/attributes 主题获取或更新属性。
  5. RPC 控制: 平台通过 v1/devices/me/rpc/request/+ 主题向设备发送指令。
注意: 设备访问令牌是敏感信息,切勿在代码中硬编码或暴露在公共仓库中。生产环境建议使用 X.509 证书认证。

2.4 数据可视化能力

ThingsBoard 提供强大的数据可视化工具——仪表板(Dashboard)。用户可以通过拖拽式界面创建实时图表、数字显示、地图、控件等组件,并绑定到设备的遥测数据或属性上。

仪表板支持以下常见可视化组件:

  • 时序图: 展示设备遥测数据随时间变化的趋势。
  • 仪表盘: 模拟物理仪表,显示实时数值。
  • 地图: 基于 GPS 坐标显示设备位置。
  • 控件: 按钮、开关,用于向设备发送 RPC 指令。
  • 表格: 展示设备属性或最新遥测数据。
设备数据流与可视化关系图 设备数据流与可视化关系图 IoT 设备 MQTT 发布 ThingsBoard MQTT Broker 规则链处理 数据存储 Cassandra/SQL 仪表板 实时可视化 用户 查看

通过上图可以看出,设备通过 MQTT 发布数据到 ThingsBoard,经过规则链处理后存入数据库,最终由仪表板实时展示给用户。这一完整链路正是本课程后续实战的核心场景。