目录
一,配置PostgreSQL
二,配置ThingsBoard
三,Demo
安装环境
-
Windows10
-
Java1.8
-
postgresql-13.3-2-windows-x64.exe
-
thingsboard-windows-3.0
为避免各种权限限制引发意外的错误,在每个涉及命令行的地方,务必以管理员身份运行!(左下角放大镜=》搜索cmd=》右键以管理员身份运行)
参考
@黄小鱼ZZZ【thingsboard在window部署】、
@徐云鹤 【PostgreSQL 启动失败的解决方案】
、@何大卫的博客【Postgres psql: 致命错误: 角色 "postgres" 不存在 】、
基于Windows服务器安装ThingsBoard
一,配置PostgreSQL
下载地址:
https://get.enterprisedb.com/postgresql/postgresql-13.3-2-windows-x64.exe
1,随便放个位置,双击运行,一路next,记住密码
如果在双击后出现一堆乱码,类似于这样
一般出现这个问题大部分是因为你的系统用户名有中文字符,需要把它改成英文
2,将PostgreSQL安装文件夹下的bin、lib文件夹的路径放到环境变量Path中
3, 进入安装路径C:\Program Files\PostgreSQL\13\data,清空data目录下的所有文件,否则进行下一步时会报这样的错误
4,进入安装路径C:\Program Files\PostgreSQL\13\bin,打开cmd,依次运行下面的命令
命令一:初始化pgsql
命令二:启动pgsql,启动完以后不要关闭窗口
pg_ctl.exe start -D ..\data
如果初始化失败
可以使用管理员身份开启命令行执行命令,或者参考这里
@徐云鹤 【PostgreSQL 启动失败的解决方案】
,修改目录的权限
5,进入到安装路径C:\Program Files\PostgreSQL\13\scripts,运行文件runpsql.bat
可能会出现下面的问题
在postgreSQL的bin下运行命令
createuser -s -r postgres
再次运行文件runpsql.bat
二,配置ThingsBoard
下载地址:
https://github.com/thingsboard/thingsboard/releases/download/v3.1.1/thingsboard-windows-3.1.1.zip
1,步骤一中,最后一步运行文件runpsql.bat 后的窗口不要关闭,用它来创建thingsboard数据库
CREATE DATABASE thingsboard;
2,管理员身份启动cmd,进入thingsboard目录,执行
如果在过程中出现 异常、失败(多半是因为权限不够,运行途中被终止,从而进退两难),则需要在命令行执行uninstall命令,然后重启电脑,重新从步骤一中第3步开始执行
3,安装成功后,启动服务(此步必须在管理员启动的cmd中执行,否则服务无法启动)
4,访问http://localhost:8080/login,可能会有点延迟,需要等一会
5,登录账户。参考@ 沉迷IoT的森【01学习thingsboard-在Windows部署thingsboard】
后台的系统管理员默认账号
-
用户名:
sysadmin@thingsboard.org
-
密码:
sysadmin
默认租户管理员帐户:
-
用户名:
tenant@thingsboard.org
-
密码:
tenant
演示租户客户:
-
客户A用户:
customer@thingsboard.org
或
customerA@thingsboard.org
。
-
客户B用户:
customerB@thingsboard.org
。
-
客户C用户:
customerC@thingsboard.org
。
-
所有用户的密码都是
“customer”
三,Demo
1,登录默认租户管理员帐户
tenant@thingsboard.org
,密码
tenant
2,创建新设备
3,复制访问令牌
4,编写python脚本
import paho.mqtt.client as paho
import json
import time
import random
access = "bYKd6PsaaXVp1OOyt6mK"
broker = "localhost"
port = 1883
def on_publish(client, userdata, result):
print("sending...")
def on_connect(client, userdata, flag, rc):
print(str(rc))
print("connected")
test = paho.Client("device1")
test.on_publish = on_publish
test.on_connect = on_connect
test.username_pw_set(access)
test.connect(broker, port, keepalive=60)
test.loop_start()
while 1:
data = {
"温度": random.randint(0, 40),
"湿度": random.randint(5, 50)
}
test.publish('v1/devices/me/telemetry', payload=json.dumps(data), qos=0)
time.sleep(5)
5,运行