先给你整体认知,再给学习路径。
一、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天)
| 步骤 | 内容 | 链接 |
|---|---|---|
| 1 | Docker 部署 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天)
| 步骤 | 内容 |
|---|---|
| 1 | Docker 部署 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 半小时能走完。跑完你就知道这东西到底怎么回事了,后面学起来有方向感。
发表评论
全部评论