[软件设计/软件工程] thingsboard 使用 MQTT 连接到 esp32

[复制链接]
发表于 2022-5-5 09:04:55
问题
我想用 MQTT 连接 ESP32 到 demo thingsboard,我用 umqtt.simple 连接,但是有问题。每当我尝试连接时,它都会给我这个(文件“umqtt/simple.py”,第 99 行,连接中)或(文件“umqtt/simple.py”,第 57 行,连接中

索引器错误:列表索引超出范围),我相信它们是相同的。尽管当我尝试将 ESP32 连接到 thingspeak(进行一些编辑)时,它可以完美地连接、发送和接收数据。那么问题是什么?

我的代码:
  1. import machine
  2. import time
  3. from machine import Pin, PWM
  4. from umqtt.simple import MQTTClient
  5. from time import sleep
  6. import random
  7. import json
  8. import network
  9. #################MQTT###################

  10. def connect():
  11.   username="USER_NAME"
  12.   broker=  "demo.thngsboard.io"
  13.   topic = "v1/devices/me/telemetry"
  14.   client = MQTTClient(username,broker)

  15.   try:
  16.     print("uuuuuuuuuu")
  17.     client.connect()
  18.   except OSError:
  19.     print('Connection failed')
  20.     sys.exit()

  21.   data = dict()
  22.   data["see"] = 15
  23.   data2=json.dumps(data)#convert it to json

  24.   print('connection finished')
  25.   client.publish(topic,data2)
  26.   print("kkkkkkkkkkkkkkkkkk")
  27.   time.sleep(5)
  28. #print("Sending OFF")
  29. connect()
复制代码

我也看到了一个问题,他也有类似的问题,但是他没有提供解决方案就解决了:

设备未使用 MQTT 连接到 Thingsboard

当然,我会将它连接到互联网。

回答
问题似乎是micropython中的umqtt只支持不认证或者用户密码认证。

所以我将代码编辑如下:
  1. import machine
  2. import time
  3. from machine import Pin, PWM
  4. from umqtt.simple import MQTTClient
  5. from time import sleep
  6. import random
  7. import json
  8. import network
  9. #################MQTT###################


  10. def connect():
  11.   username="Your_Token"
  12.   broker=  "demo.thingsboard.io"
  13.   topic = "v1/devices/me/telemetry"
  14.   Mqtt_CLIENT_ID = "Client_ID"        # Max. Number is 23 due to MQTT specs
  15.   PASSWORD=""
  16.   client = MQTTClient(client_id=Mqtt_CLIENT_ID, server=broker, port=1883, user=username, password=PASSWORD, keepalive=10000)
  17.   try:
  18.     client.connect()
  19.   except OSError:
  20.     print('Connection failed')
  21.     sys.exit()
  22.   data = dict()
  23.   data["see"] = 15
  24.   data2=json.dumps(data)#convert it to json

  25.   print('connection finished')
  26.   client.publish(topic,data2)
  27.   print("Data_Published")
  28.   time.sleep(5)
  29. #print("Sending OFF")
  30. connect()
复制代码






上一篇:将JFileChooser标签Look in:更改为Save in:
下一篇:for hellip;of 循环中变量的默认类型?

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表