目录

​​一,配置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,记住密码

如果在双击后出现一堆乱码,类似于这样

Windows配置ThingsBoard,并实现简单Demo(未完待续)_sql

一般出现这个问题大部分是因为你的系统用户名有中文字符,需要把它改成英文

2,将PostgreSQL安装文件夹下的bin、lib文件夹的路径放到环境变量Path中

Windows配置ThingsBoard,并实现简单Demo(未完待续)_PostgreSQL_02

3, 进入安装路径C:\Program Files\PostgreSQL\13\data,清空data目录下的所有文件,否则进行下一步时会报这样的错误

Windows配置ThingsBoard,并实现简单Demo(未完待续)_入门教程_03

4,进入安装路径C:\Program Files\PostgreSQL\13\bin,打开cmd,依次运行下面的命令

命令一:初始化pgsql

initdb.exe -D ../data

Windows配置ThingsBoard,并实现简单Demo(未完待续)_postgreSQL_04

命令二:启动pgsql,启动完以后不要关闭窗口

pg_ctl.exe start -D ..\data

Windows配置ThingsBoard,并实现简单Demo(未完待续)_postgreSQL_05

如果初始化失败

Windows配置ThingsBoard,并实现简单Demo(未完待续)_sql_06

可以使用管理员身份开启命令行执行命令,或者参考这里​ ​@徐云鹤 【PostgreSQL 启动失败的解决方案】​ ​ ,修改目录的权限

Windows配置ThingsBoard,并实现简单Demo(未完待续)_thingsboard_07

5,进入到安装路径C:\Program Files\PostgreSQL\13\scripts,运行文件runpsql.bat

可能会出现下面的问题

Windows配置ThingsBoard,并实现简单Demo(未完待续)_postgreSQL_08

在postgreSQL的bin下运行命令

createuser -s -r postgres

Windows配置ThingsBoard,并实现简单Demo(未完待续)_thingsboard_09

再次运行文件runpsql.bat

Windows配置ThingsBoard,并实现简单Demo(未完待续)_thingsboard_10

二,配置ThingsBoard

下载地址:​ ​https://github.com/thingsboard/thingsboard/releases/download/v3.1.1/thingsboard-windows-3.1.1.zip​

1,步骤一中,最后一步运行文件runpsql.bat 后的窗口不要关闭,用它来创建thingsboard数据库

CREATE DATABASE thingsboard;

Windows配置ThingsBoard,并实现简单Demo(未完待续)_thingsboard_11

2,管理员身份启动cmd,进入thingsboard目录,执行

install --loadDemo

Windows配置ThingsBoard,并实现简单Demo(未完待续)_PostgreSQL_12

如果在过程中出现 异常、失败(多半是因为权限不够,运行途中被终止,从而进退两难),则需要在命令行执行uninstall命令,然后重启电脑,重新从步骤一中第3步开始执行

3,安装成功后,启动服务(此步必须在管理员启动的cmd中执行,否则服务无法启动)

net start thingsboard

Windows配置ThingsBoard,并实现简单Demo(未完待续)_thingsboard_13

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”

Windows配置ThingsBoard,并实现简单Demo(未完待续)_thingsboard_14

三,Demo

1,登录默认租户管理员帐户 tenant@thingsboard.org ,密码 tenant

2,创建新设备

Windows配置ThingsBoard,并实现简单Demo(未完待续)_thingsboard_15


Windows配置ThingsBoard,并实现简单Demo(未完待续)_postgreSQL_16

3,复制访问令牌

Windows配置ThingsBoard,并实现简单Demo(未完待续)_postgreSQL_17

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,运行

Windows配置ThingsBoard,并实现简单Demo(未完待续)_入门教程_18

Windows配置ThingsBoard,并实现简单Demo(未完待续)_thingsboard_19