视频讲解: https://www.bilibili.com/video/BV1av41177mZ/
thingsboard手动创建设备有如下几个步骤:
- 登录平台,打开设备页面,添加一个新设备,所有参数默认。
- 选中新建的设备,复制访问令牌,作为客户端用户名。
复制保存的访问令牌: aiQ9WxsquQAtduJmu5UY
- 客户端设备连接,发布数据,python代码。
import paho.mqtt.client as paho
import json
import time
import random
access = "aiQ9WxsquQAtduJmu5UY"
borker = 'www.vincentisme.com'
port = 1883
def on_publish(client, userdata, result):
print(time.time())
print("sending...")
def on_connect(client, userdata, flag, rc):
print(str(rc))
print("connected")
def on_subscribe(client, userdata, mid, granted_qos):
print("subscribe...")
def on_message(client, obj, msg):
print('rev...')
print(msg.payload)
# print("平台发布的需要修改的寄存器值是:", json.loads(msg.payload)['params'])
# 当收到平台发布的数据之后修改PLC的寄存器的值。modbus_tcp 的写操作。
test = paho.Client("device1")
test.on_publish = on_publish
test.on_connect = on_connect
test.on_subscribe = on_subscribe
test.on_message = on_message
test.username_pw_set(access)
test.connect(borker, port, keepalive=60)
test.loop_start()
while True:
# 来自PLC,实际状况中读 modbus TCP的读寄存器值。eg:40001
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秒发布一次数据
发布数据结果:
使用MQTTBOX测试验证:
发送{“hello” : “vincent iot”}
验证结果: