1. ThingsBoard 概述:从设备接入到仪表板展示
ThingsBoard 是一个开源的企业级物联网平台,用于设备管理、数据收集、处理、可视化和设备控制。它采用基于租户的微服务架构,支持水平扩展,适用于从边缘计算到云端部署的多种场景。本章将系统介绍 ThingsBoard 的核心概念、功能模块、技术架构以及典型适用场景,为后续实战项目打下基础。
1.1 ThingsBoard 是什么
ThingsBoard 是一个基于 Java 开发的物联网平台,使用 PostgreSQL/TimescaleDB 或 Cassandra 作为数据库,支持 MQTT、CoAP、HTTP 等主流物联网协议。它提供开箱即用的设备连接、数据存储、规则引擎、仪表板展示和 REST API,帮助开发者快速构建物联网应用。
核心定位: ThingsBoard 不是硬件开发板,而是一个物联网中间件平台,负责设备与上层应用之间的数据流转与业务逻辑处理。
1.2 核心功能
| 功能模块 | 说明 | 典型用途 |
|---|---|---|
| 设备管理 | 设备注册、认证、属性管理、固件 OTA | 管理数千台传感器或执行器 |
| 数据采集 | 支持 MQTT/CoAP/HTTP 协议,自动解析遥测数据 | 实时采集温度、湿度、电压等数据 |
| 规则引擎 | 基于节点链的流式处理,支持过滤、转换、告警、动作 | 数据清洗、阈值告警、邮件通知 |
| 仪表板 | 拖拽式可视化编辑器,支持图表、地图、控件 | 实时监控大屏、历史趋势分析 |
| 租户隔离 | 多租户架构,租户间数据完全隔离 | SaaS 平台、多客户管理 |
| REST API | 完整的 RESTful 接口,支持 Swagger 文档 | 第三方系统集成、自动化运维 |
1.3 技术架构
ThingsBoard 采用微服务架构,核心组件包括:
- Transport Layer(传输层):MQTT、CoAP、HTTP 协议适配器,负责设备连接与数据接收。
- Core Service(核心服务):设备管理、租户管理、用户认证、权限控制。
- Rule Engine(规则引擎):基于 Actor 模型的流处理引擎,支持自定义节点链。
- Web UI(前端):基于 Angular 的单页应用,提供仪表板编辑与管理界面。
- Database(数据库):PostgreSQL/TimescaleDB 存储元数据与遥测数据,Cassandra 用于高吞吐场景。
- Queue(消息队列):Kafka / RabbitMQ / AWS SQS 等,用于服务间异步通信。
架构特点: ThingsBoard 的规则引擎与传输层解耦,使得数据处理逻辑可以独立扩展,适合高并发设备接入场景。
1.4 适用场景
ThingsBoard 适用于以下典型物联网场景:
- 工业物联网(IIoT):设备状态监控、预测性维护、产线数据采集。
- 智慧能源:电表、水表、气表数据远程抄表与能耗分析。
- 智能楼宇:温湿度、光照、门禁、空调联动控制。
- 环境监测:空气质量、水质、气象站数据实时上报与告警。
- 车联网:车辆定位、行驶数据采集、远程诊断。
- 农业物联网:土壤湿度、光照强度、灌溉自动化。
注意事项: ThingsBoard 社区版单节点建议管理不超过 1 万台设备;超过此规模需使用专业版或企业版,并配置 Cassandra 与 Kafka 集群。
1.5 版本对比
| 版本 | 协议支持 | 规则引擎 | 仪表板 | 集群支持 | 许可 |
|---|---|---|---|---|---|
| 社区版 | MQTT / CoAP / HTTP | 基础节点链 | 基础图表 | 单节点 | Apache 2.0 |
| 专业版 | + OPC-UA / Modbus / SNMP | 高级节点 + 脚本 | 高级控件 + 地图 | 水平扩展 | 商业许可 |
| 企业版 | 全部协议 + 自定义 | 全功能 + 白名单 | 全功能 + 白标 | 多数据中心 | 商业许可 |