ThingsBoard 快速上手:Docker 部署,接上第一台设备
【免费下载链接】thingsboardAll-in-one IoT Platform - Device management, data collection, processing and visualization.项目地址: https://gitcode.com/GitHub_Trending/th/thingsboard
你有一批传感器,数据散落在各台嵌入式设备里,想在一个地方统一查看、管理并设置告警。读完本文你能做到:拥有一个本地 Docker 实例、一台上报 MQTT 遥测的模拟设备、一块实时刷新的仪表盘。
跑起来:环境准备与最小部署
最短路径是 Docker 微服务部署。先克隆仓库,进入docker目录执行官方安装与启动脚本:
git clone https://gitcode.com/GitHub_Trending/th/thingsboard cd thingsboard/docker./docker-install-tb.sh --loadDemo ./docker-start-services.sh--loadDemo会导入演示租户、演示设备和演示仪表盘,强烈建议新手加上。首次安装需要拉取镜像,耐心等待几分钟。部署完成的标志:浏览器打开http://localhost出现登录页。
| 项目 | 值 |
|---|---|
| 系统管理员 | sysadmin@thingsboard.org/sysadmin |
| 演示租户管理员 | tenant@thingsboard.org/tenant |
| Web 控制台 | 80 或 8080 |
| MQTT | 1883 |
| HTTP 传输 | 8081 |
| CoAP | 5683(UDP) |
接入第一台设备:MQTT 上报遥测
创建设备。登录控制台(演示租户即可),进入 设备 → 创建设备,协议选 MQTT,保存后复制它的访问令牌——这就是设备登录的密码。
准备上报脚本。仓库自带 Python 示例 tools/src/main/python/mqtt-send-telemetry.py,核心配置只需改两处:
import paho.mqtt.client as mqtt import json client = mqtt.Client() client.username_pw_set("你的访问令牌") # 用户名填访问令牌,密码留空 client.connect("localhost", 1883, 60) client.publish("v1/devices/me/telemetry", json.dumps({"temperature": 25.5, "humidity": 60}))运行并验证。装好依赖后执行:
pip install paho-mqtt && python3 mqtt-send-telemetry.py脚本静默无输出即发送成功。刷新设备页面:Latest Telemetry 里出现temperature和humidity两个值,设备状态变为 Active,采集链路即打通。
看懂数据流向:架构 30 秒
一句话概括全链路:设备 → MQTT 传输服务 → Kafka → 规则引擎 → 数据库 → Web 页面。链路上三个关键节点:
- 传输服务:MQTT、HTTP、CoAP、LWM2M、SNMP 五个独立服务,各监听一个端口,设备只跟它打交道,负责接收消息;
- 规则引擎:每条到达的消息(遥测、属性更新、RPC)都进规则链,按节点连线做转换、过滤、告警、存储;
- 存储:PostgreSQL 存实体与时序数据,Valkey 做缓存,Kafka 解耦服务间通信,入口由 HAProxy 转发。
核心配置模板在 application/src/main/conf/thingsboard.conf,数据库与队列类型等参数在docker/.env里调整。
两个真实场景
车队跟踪。车辆 GPS 持续上报位置,规则链过滤超速与偏离路线的消息触发告警,地图 Widget 实时显示轨迹。你在一张图上同时看到全部车辆当前位置和异常状态。
智慧农业。土壤温湿度传感器数据入库,超阈值时规则链触发告警或灌溉建议,仪表盘展示历史曲线。你在办公室里就能盯住整个地块的水肥状况。
两个场景的方案模板都内置在 IoT Hub(界面左侧导航),装一个模板相当于拿到一套配好的设备定义、规则链和仪表盘:
卡住了看这里
容器起不来或页面打不开。先docker-compose ps看哪个服务在重启,再docker-compose logs -f tb-core1 tb-mqtt-transport1追日志;首次安装中断的话重新执行./docker-install-tb.sh --loadDemo,脚本可重复运行。
MQTT 连不上 1883。确认tb-mqtt-transport1容器是 Up 状态;入口端口由 HAProxy 转发,若宿主机端口被占用,改docker/.env里的映射后重启。
忘了账号或没有演示数据。账号固定:sysadmin@thingsboard.org/sysadmin、tenant@thingsboard.org/tenant;没有演示数据就加--loadDemo重装一次,数据会补上。
下一步
下一个目标:写一条你自己的告警规则链——在规则链里加一个 Switch 节点判断温度超阈值,再挂一个 Send Email 节点,打开节点 Debug 模式看消息如何一步步走到告警。配置参考 application/src/main/conf/thingsboard.conf,设备侧脚本可直接改造 tools/src/main/python/ 下的示例,界面细节查内置帮助文档源文件 ui-ngx/src/assets/help/en_US/。
【免费下载链接】thingsboardAll-in-one IoT Platform - Device management, data collection, processing and visualization.项目地址: https://gitcode.com/GitHub_Trending/th/thingsboard
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考