1、安装数据库
ThingsBoard可以基于SQL或混合数据库。
https://thingsboard.io/docs/user-guide/install/windows/#step-3-configure-thingsboard-database
消息量在5K条/秒以下,只用PostgreSQL,在5K条/秒以上,建议用PostgreSQL+Cassandra。
要求下载PostgreSQL 9.6以上版本,目前最新版本是12.2
安装完成后,对应于
https://thingsboard.io/docs/user-guide/contribution/how-to-contribute/#optional-sql-database-postgresql
中的命令:
psql -U postgres -d postgres -h 127.0.0.1 -W
CREATE DATABASE thingsboard;
将postgres用户的密码设置为postgres,并建立一个thingsboard数据库:
此时,数据库上显示有错误,但没关系,可以进行下一步,执行
\application\target\windows\install_dev_db.bat
数据库安装成功。
2、启动Thingsboard
在命令行中执行
java -jar application/target/thingsboard-2.5.0-SNAPSHOT-boot.jar
可以正常启动了。
在浏览器中http://localhost:8080/login
密码tenant
登陆系统
3、向Thingsboard推送数据
进入ThingsBoard管理界面的“设备”->DHT11 Demo Devide,点击“复制访问令牌”:
得到Test Device1的访问令牌:DHT11_DEMO_TOKEN
按照文档,执行命令行:
curl -v -X POST -d "{\"temperature\": 25}" http://localhost:8080/api/v1/DHT11_DEMO_TOKEN/telemetry --header "Content-Type:application/json"
在管理界面中可以看到中增加了一条遥测数据,其值为上报的(temperature, 25)
4、用python向Thingsboard推送数据
用命令安装requests包:
pip install requests
声明了一个包含温湿度的简单对象telemetry,直接转换为json格式并post到thingsboard。Python代码如下:
import requests
import json
import importlib,sys
class telemetry(object):
def __init__(self, temperature, humidity):
self.temperature = temperature
self.humidity = humidity
t = telemetry(22, 33)
print(json.dumps(obj=t.__dict__,ensure_ascii=False))
importlib.reload(sys)
aheaders = {'Content-Type': 'application/json'}
url = "http://localhost:8080/api/v1/DHT11_DEMO_TOKEN/telemetry"
response = requests.post(url, headers=aheaders, data = json.dumps(obj=t.__dict__,ensure_ascii=False))
print (response.text)
在管理界面中可以看到中遥测数据变化,其值为推送的:
temperature,22
humidity,33