如何处理“ OSError:可用接口已关闭”错误消息?

时间:2019-02-05 10:36:25

标签: mqtt connect platform adafruit micropython

我目前正在使用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.pyumqtt模块。我可以毫无问题地连接到wifi,错误发生在client.connect()

1 个答案:

答案 0 :(得分:0)

我曾经遇到过类似的问题,我意识到客户端连接需要一些时间。 在连接之前增加2秒的延迟,例如10秒