目录

​​一,配置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(未完待续)_入门教程_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(未完待续)_入门教程_04

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

pg_ctl.exe start -D ..\data

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

如果初始化失败

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

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

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

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

可能会出现下面的问题

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

在postgreSQL的bin下运行命令

createuser -s -r postgres

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

  

 再次运行文件runpsql.bat 

Windows配置ThingsBoard,并实现简单Demo(未完待续)_PostgreSQL_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(未完待续)_入门教程_11

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

install --loadDemo

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

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

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

net start thingsboard

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

4,访问​​http://localhost:8080/login​​,可能会有点延迟,需要等一会

5,登录账户。参考​​@ 沉迷IoT的森【01学习thingsboard-在Windows部署thingsboard】​​

后台的系统管理员默认账号

  • 用户名:sysadmin@thingsboard.org
  • 密码:sysadmin

默认租户管理员帐户:

  • 用户名:tenant@thingsboard.org
  • 密码:tenant

演示租户客户:

  • 客户A用户:customer@thingsboard.orgcustomerA@thingsboard.org
  • 客户B用户:customerB@thingsboard.org
  • 客户C用户:customerC@thingsboard.org
  • 所有用户的密码都是“customer”

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

三,Demo

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

2,创建新设备

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

 

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

3,复制访问令牌

Windows配置ThingsBoard,并实现简单Demo(未完待续)_sql_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(未完待续)_PostgreSQL_18

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