先给你整体认知,再给学习路径。


一、ThingsBoard 是什么——一句话

一个开源的 IoT 中间件:设备连上来 → 数据存下来 → 规则引擎处理 → 仪表板展示 → 告警通知。你不用写这些基础能力,只需要配。

二、核心架构——5层

┌─────────────────────────────────────────────┐
│              5. 用户界面层                     │
│   Web UI (Angular)  ·  Mobile APP (Flutter)  │
├─────────────────────────────────────────────┤
│              4. 业务服务层                     │
│   设备管理 · 仪表板 · 告警 · 用户权限 · OTA    │
├─────────────────────────────────────────────┤
│              3. 规则引擎(核心中的核心)          │
│   消息过滤 → 数据转换 → 告警触发 → 动作执行      │
│   类似 Node-RED 的可视化拖拽编排               │
├─────────────────────────────────────────────┤
│              2. 传输层                         │
│   MQTT(1883) · HTTP(8081) · CoAP(5683)      │
├─────────────────────────────────────────────┤
│              1. 存储层                         │
│   PostgreSQL(实体+时序) · Redis(缓存)          │
│   可选 Cassandra(大规模时序)                    │
└─────────────────────────────────────────────┘

数据流:设备 → 传输层 → 消息队列 → 规则引擎 → 存储 + 告警 + 仪表板

三、6个核心概念——必须理解的

概念是什么类比
Device接入的物理设备,有Token/证书认证一头牛脖子上的定位器
Asset逻辑资产,设备挂到资产下面一个牧场
Attribute设备/资产的属性(静态)设备型号、固件版本
Telemetry设备上报的时序数据(动态)GPS坐标、温度、步数
Rule Chain数据处理流水线,由 Rule Node 组成一条自动化工作流
Dashboard可视化面板,拖拽组件拼出来你看到的监控界面

关系模型

Tenant(租户)
  └── Customer(客户)
        └── Asset(牧场)
              └── Device(定位器)
                    ├── Attributes(属性)
                    └── Telemetry(遥测数据)

四、规则引擎——最核心的能力

所有数据进来都经过规则引擎,你不用写代码,拖拽节点就能编排逻辑:

[GPS数据进来] → [围栏判断节点] → [在围栏内?]
                                    ├── Yes → [更新状态]
                                    └── No  → [创建告警] → [推送通知]

节点类型:

类型作用举例
Filter过滤消息GPS Geofencing Filter
Enrichment补充数据查设备属性
Transform转换数据脚本转换格式
Action执行动作创建告警、发邮件、调API
External对接外部Kafka、REST API

五、技术栈——你要碰到的

技术你需要会什么
后端Java 17 / Spring Boot能读懂、能改、能加接口
前端Angular + TypeScript能改UI组件
移动端Flutter (Dart)能改APP
数据库PostgreSQL会写SQL
规则引擎可视化拖拽 + JavaScript脚本JS脚本写自定义逻辑
部署Docker / Docker Compose会 docker compose up
设备对接MQTT / HTTP会调API
网关Python (IoT Gateway)能配connector

六、学习路径

阶段1:跑起来 + 理解概念(1-2天)

步骤内容链接
1Docker 部署 ThingsBoard CE安装指南
2跑完官方 Hello World快速入门
3用模拟器发送 MQTT 数据,看仪表板更新Hello World 里自带

目标:看到数据从"设备"流到仪表板,理解 Device → Telemetry → Dashboard 的闭环。

阶段2:规则引擎 + 告警(2-3天)

步骤内容
1学 Rule Chain 基础:Getting started with Rule Engine
2配一个告警:温度超阈值 → 触发 Alarm
3学 Alarm Rule:条件、清除规则、告警级别
4学 Notification:告警推送到 Web/邮件

目标:理解数据进来后怎么被处理、怎么触发告警。

阶段3:仪表板 + 地图 + 围栏(2-3天)

步骤内容
1创建自定义 Dashboard,拖拽 Widget
2学地图 Widget:OpenStreetMap + 设备标记
3学 GPS Geofencing:官方围栏教程
4学 Geofencing Calculated Field:多围栏配置

目标:能做出"设备在地图上+围栏告警"的效果,这是你项目的核心。

阶段4:ChirpStack 对接(2-3天)

步骤内容
1Docker 部署 ChirpStack
2配 ChirpStack MQTT Integration → ThingsBoard
3写 Uplink Decoder(JS),解析 LoRa 定位器数据
4验证数据从 ChirpStack 流到 ThingsBoard

目标:跑通 ChirpStack → ThingsBoard 数据链路。

阶段5:指令下发 + 定制开发(3-5天)

步骤内容
1学 RPC(Remote Procedure Call):平台向设备发指令
2实现蜂鸣器/LED 指令下发
3学 Device Profile + 编解码器
4看源码结构,知道在哪改

目标:能控制设备,能改源码加自己的逻辑。

阶段6:移动端 + 部署(3-5天)

步骤内容
1下载 ThingsBoard Mobile APP(Flutter 开源)
2改 APP 品牌和配置
3生产环境部署:Nginx + SSL + 备份
4性能调优:数据库索引、规则引擎优化

目标:交付级部署。


关键文档入口

资源地址
官方文档(英文)https://thingsboard.io/docs/
官方文档(中文镜像)http://www.ithingsboard.com/docs/
GitHub 源码https://github.com/thingsboard/thingsboard
移动端源码https://github.com/thingsboard/flutter_thingsboard_app
IoT Gateway 源码https://github.com/thingsboard/thingsboard-gateway
示例和模板https://thingsboard.io/docs/samples/

建议:先把阶段1跑通,看到数据流动的感觉。Docker 一条命令就起来了,Hello World 半小时能走完。跑完你就知道这东西到底怎么回事了,后面学起来有方向感。