视频讲解: https://www.bilibili.com/video/BV1av41177mZ/
    thingsboard手动创建设备有如下几个步骤:

    • 登录平台,打开设备页面,添加一个新设备,所有参数默认。

    image.png

    • 选中新建的设备,复制访问令牌,作为客户端用户名。

    image.png
    复制保存的访问令牌: aiQ9WxsquQAtduJmu5UY

    • 客户端设备连接,发布数据,python代码。


    1. import paho.mqtt.client as paho
    2. import json
    3. import time
    4. import random
    5. access = "aiQ9WxsquQAtduJmu5UY"
    6. borker = 'www.vincentisme.com'
    7. port = 1883
    8. def on_publish(client, userdata, result):
    9. print(time.time())
    10. print("sending...")
    11. def on_connect(client, userdata, flag, rc):
    12. print(str(rc))
    13. print("connected")
    14. def on_subscribe(client, userdata, mid, granted_qos):
    15. print("subscribe...")
    16. def on_message(client, obj, msg):
    17. print('rev...')
    18. print(msg.payload)
    19. # print("平台发布的需要修改的寄存器值是:", json.loads(msg.payload)['params'])
    20. # 当收到平台发布的数据之后修改PLC的寄存器的值。modbus_tcp 的写操作。
    21. test = paho.Client("device1")
    22. test.on_publish = on_publish
    23. test.on_connect = on_connect
    24. test.on_subscribe = on_subscribe
    25. test.on_message = on_message
    26. test.username_pw_set(access)
    27. test.connect(borker, port, keepalive=60)
    28. test.loop_start()
    29. while True:
    30. # 来自PLC,实际状况中读 modbus TCP的读寄存器值。eg:40001
    31. data = {
    32. "温度": random.randint(0, 40),
    33. "高度": random.randint(5, 50)
    34. }
    35. test.publish('v1/devices/me/telemetry', payload=json.dumps(data), qos=0)
    36. time.sleep(5) #5秒发布一次数据

    发布数据结果:
    image.png
    使用MQTTBOX测试验证:
    image.png
    发送{“hello” : “vincent iot”}
    image.png
    验证结果:
    image.png