thingsboard是一个用于管理设备和收集、处理、可视化数据的开源物联网平台,它通过物联网行业标准协议(MQTT、CoAP 和 HTTP)实现设备连接,支持单机和分布式部署。
简单来说,ThingsBoard 技术路线是:前台Angular、后台Java、移动端Flutter。本文使用最新代码(版本v3.3.4.1)整理前后台的编译运行。
1. 编译工具安装
详细安装过程不再描述,所需工具有:
- 安装Java 11,下载最新的OpenJDK 11 (LTS)包,这里使用的是jdk-11.0.15+10,Open JDK 下载https://adoptium.net/temurin/releases
- 安装Maven,版本需要3.1.0+,这里使用的是,apache-maven-3.8.3,Maven 下载https://maven.apache.org/download.cgi
- 安装Nodejs,这里使用v16.13.0版本,安装 yarnnpm install -g yarn@v1.22.17,Node 下载https://nodejs.org/en/download
注:可将 maven 和 npm 源设为淘宝镜像。
2. 编译
准备工作:
- 官方 Github 仓库下载最新源码,Github 地址
- 关闭 license 检查,注释根目录pom.xml中的license-maven-plugin相关内容
- 进入源码目录,执行命令构建:
mvnclean install -DskipTests
3. 运行
首先,安装 PostgreSQL 数据库,这里使用的版本是postgresql-11.13-1-windows-x64.exe,安装使用默认参数和密码即可。安装成功后,使用pgAdmin 4管理工具新建一个名为thingsboard的数据库。
然后,命令行进入application/target/windows目录中,运行install_dev_db.bat脚本,插入测试数据。
最后,用 IDEA 打开项目源码,在application模块中找到ThingsboardServerApplication类启动项目,访问地址:http://localhost:8080
默认用户名和密码:
系统管理员: sysadmin@thingsboard.org/sysadmin
租户: tenant@thingsboard.org/tenant
客户: customer@thingsboard.org/customer
推送模拟数据MQTT.js是一个开源客户端,用于Node.js和浏览器环境中,这里使用它连接设备并推送数据,全局安装使用命令行操作:
npminstall mqtt -g
使用租户用户登录后,查看设备配置,已预设了Thermostat T1和Thermostat T2两个设备,分别复制他们的访问令牌,然后在命令行使用mqtt 客户端发布以下格式数据:
{"temperature":25,"humidity":45}
多推送几组数据,就可以在仪表板库查看告警和历史数据折线图:
mqttpublish -h127.0.0.1-p1883-u"T1_TEST_TOKEN"-t"v1/devices/me/telemetry"-m"{\"temperature\": 18,\"humidity\": 29}"mqtt publish -h127.0.0.1-p1883-u"T2_TEST_TOKEN"-t"v1/devices/me/telemetry"-m"{\"temperature\": 25,\"humidity\": 22}"
实时点位数据和告警数据图:
设备Thermostat T1历史数据折线图:
4. 遇到的问题
(1)fatal: remote error: The unauthenticated git protocol on port 9418 is no longer supported.
用户目录下文件.gitconfig新增两项:
[url"https://"]
insteadOf = ssh://[url"https://"]
insteadOf = git://
(2)编译 JavaScript Executor 微服务失败
通常是下载对应版本的 pkg-fetch 失败导致,可手动在https://github.com/vercel/pkg-fetch/releases下载,然后放到用户目录下的.pkg-cache目录中。
3.3.4.1 版本需要v12.22.2,文件内容如下:
C:\Users\xxxxx\.pkg-cache\v3.2├─fetched-v12.22.2-linux-x64└─fetched-v12.22.2-win-x64
(3)mvn clean报错
一般是存活 node.exe 导致,使用命令结束(win 下):
taskkill/f /imnode.exe
(4)运行报Command line is too long. Shorten command line for错误
- 打开Run/Debug Configurations找到Modify options
- 选择Shorten command line,设置为JAR manifest
(5)其他
- 编译前端项目 ui-ngx 时,有些依赖下载超时导致失败,可单独对这个模块重复编译尝试
- 不想把 JDK11 设为全局变量,可在 cmd 执行set JAVA_HOME=”E:\dev-env\jdk-11.0.15+10″临时设置
评论0