Как бороться с сообщением об ошибке «OSError: Доступные интерфейсы не работают»? - PullRequest
0 голосов
/ 05 февраля 2019

В настоящее время я работаю с устройством 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)

Я использовал модуль umqtt, расположенный здесь: https://github.com/micropython/micropython-lib/blob/master/umqtt.simple/umqtt/simple.py. Я могу подключиться к своему Wi-Fi без проблем, ошибка происходит в client.connect().

1 Ответ

0 голосов
/ 23 апреля 2019

Я столкнулся с подобной проблемой, но я понял, что клиенту требуется время для подключения.Добавьте задержку в 2 секунды перед подключением и 10 секунд

...