我目前正在使用Pycom设备,并尝试将其连接到IoT平台(更确切地说是Adafruit IO)。我想让平台与我的设备进行通讯。它曾经运行得非常好,我可以使用MQTT发布和订阅网站上配置的主题/小工具,但是最近,当我尝试使用此协议连接到Adafruit时,得到了以下错误消息:OSError: Available Interfaces are down.
我没有知道为什么突然之间会发生这种情况,我也不知道该如何处理。有时,经过一段时间或多次尝试后,它又可以工作了,但我想更确切地知道这是什么原因。
import umqtt
from umqtt import MQTTClient
import ubinascii
import micropython
import time
import machine
import pycom
pycom.heartbeat(False)
IO_SERVER = "io.adafruit.com"
AIO_SERVER = "io.adafruit.com"
AIO_PORT = 1883
AIO_USER = "user"
AIO_KEY = "key"
AIO_CLIENT_ID = ubinascii.hexlify(machine.unique_id()) # Can be anything
client = MQTTClient(AIO_CLIENT_ID, AIO_SERVER, AIO_PORT, AIO_USER, AIO_KEY)
import network
from network import WLAN
wlan=WLAN(mode=WLAN.STA)
pw='pw'
nets=wlan.scan()
for net in nets:
if net.ssid == 'myssid':
wlan.connect(net.ssid,auth=(None,pw),timeout=5000)
if wlan.isconnected() == True:
pycom.rgbled(0x007f00)
else:
pycom.rgbled(0x7f0000)
client.connect()
pycom.rgbled(0x7f7f00)
我使用了位于https://github.com/micropython/micropython-lib/blob/master/umqtt.simple/umqtt/simple.py的umqtt
模块。我可以毫无问题地连接到wifi,错误发生在client.connect()
。
答案 0 :(得分:0)
我曾经遇到过类似的问题,我意识到客户端连接需要一些时间。 在连接之前增加2秒的延迟,例如10秒