目录
安装环境
- 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
initdb.exe -D ../data
命令二:启动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目录,执行
install --loadDemo
如果在过程中出现 异常、失败(多半是因为权限不够,运行途中被终止,从而进退两难),则需要在命令行执行uninstall命令,然后重启电脑,重新从步骤一中第3步开始执行
3,安装成功后,启动服务(此步必须在管理员启动的cmd中执行,否则服务无法启动)
net start thingsboard
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,运行