Esp32 wlan соединение с micro python не работает - PullRequest
1 голос
/ 08 мая 2020

Я пытаюсь подключить свой микроконтроллер esp32 через Wi-Fi. Но не работает. Я шаг за шагом следил за инструкциями по https://docs.micropython.org/en/latest/esp32/quickref.html#networking и смотрел много видео на YouTube.

мой код выглядит так:

import network


wlan = network.WLAN(network.STA_IF) # create station interface
wlan.active(True)       
print(wlan.scan())
wlan.connect('my_wlan_ssid', 'my_wlan_password')
print(wlan.isconnected())
print("Wlan is connected: ", wlan.isconnected())
print("My Wlan config: ", wlan.ifconfig())

здесь я добавляю изображение из моей командной строки из редактора Thonny Командная строка из редактора Thonny

Самое смешное, что веб-интерфейс моего роутера показывает мне подключение к контроллеру esp32 с его ip-адресом. Я также попробовал это с помощью мобильной точки доступа со своего мобильного телефона. Мой мобильный телефон показывает мне соединение с esp32, но esp32 не распознает wlan-соединение. Так почему же это так? Я что-то не так?

1 Ответ

2 голосов
/ 08 мая 2020

Похоже, вы не позволяете сети установить соединение.

wlan.connect('my_wlan_ssid', 'my_wlan_password')

требует времени, и, как показано в связанной ссылке, wlan.isconnected() следует вызывать в while l oop, чтобы гарантировать, что он завершится, только если он подключен. (вы, конечно, могли бы лучше управлять)

Так как насчет того, чтобы сделать это:

import network
sta_if = network.WLAN(network.STA_IF)
if not sta_if.isconnected():
    print('connecting to network...')
    sta_if.active(True)
    sta_if.connect('<essid>', '<password>')
    while not sta_if.isconnected():
        pass
    print('network config:', sta_if.ifconfig())

По вашей собственной ссылке

...