ESP8266 Micropython - подключение к университетскому Wi-Fi ( WPA2 Enterprise PEAP)

У меня есть плата с чипом ESP8266 под прошивкой Micropython v1.8.7. Мое требование - использовать WebREPL через университетский Wi-Fi, который использует аутентификацию WPA2 Enterprise EAP-MSCHAPv2. Мое Google-фу до сих пор сообщало мне, что пользователи Arduino смогли подключиться к WPA2 Enterprise EAP-TLS (аутентификация на основе сертификатов) ( ссылка), но не (SSID, имя пользователя, pwd).

Похоже, что все темы, которые я видел до сих пор, относятся к самой поздней середине 2016 года, поэтому мне интересно, смог ли кто-то выяснить, как это сделать с тех пор. Я никогда не баловался с сетевыми вещами раньше (и при этом я не отличный программист), так что все громкие слова выше довольно новы для меня. Таким образом, у меня есть следующие вопросы:

  1. Это просто неотъемлемое ограничение ESP8266? Или это можно сделать? Похоже, это обсуждение предполагает, что это можно сделать, но возможности должны быть закодированы.
  2. Можно ли как-то разветвлять персональное соединение WPA2 с WPA2 Enterprise, которое может использоваться как ESP8266, так и моим компьютером? До сих пор я пробовал использовать горячую точку с помощью Connectify, но там не повезло.

Я ценю любую помощь, которую вы, ребята, можете оказать. Если есть какая-либо соответствующая информация, которую я не включил, пожалуйста, дайте мне знать, и я отредактирую ее.

Редактировать: @MaximilianGerhardt Это то, что работает для меня на личном WPA2:

import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('ssid','pwd')
wlan.ifconfig()

import webrepl
webrepl.start()

На WPA2 Enterprise я надеялся, что изменение этой линии сработает, но не радость:

wlan.connect('ssid',auth=WPA2_ENT,'user','pwd')

Спасибо, я посмотрю на Espressif Non-OS SDK V2.0.0 и посмотрю, смогу ли я заставить его работать.

1 ответ

Решение

Как я упоминал в комментариях, проблема, по-видимому, была решена в новейшей версии 2.0 Espressif SDK. Но так как вы используете не Espressif C SDK, а прошивку Python "Micropython", это изменение еще не распространялось на эту прошивку Python.

Вы можете увидеть отображение сетевых функций (active(), connect(), ifconfig() и т.д.) в прошивке здесь: https://github.com/micropython/micropython/blob/master/esp8266/modnetwork.c#L430. В строке 115 вы также можете увидеть вызов wifi_station_connect(), которая является родной функцией Espressif-SDK. Таким образом, вы увидите, что прошивка еще не использует новые функции для аутентификации WPA2. В строке 490 вы можете увидеть все доступные варианты аутентификации:

MP_OBJ_NEW_SMALL_INT(AUTH_OPEN) ,
MP_OBJ_NEW_SMALL_INT(AUTH_WEP) ,
MP_OBJ_NEW_SMALL_INT(AUTH_WPA_PSK) ,
MP_OBJ_NEW_SMALL_INT(AUTH_WPA2_PSK) ,
MP_OBJ_NEW_SMALL_INT(AUTH_WPA_WPA2_PSK)

Корпоративная аутентификация WPA2 еще не входит в их число.

Так что теперь я бы сказал, что ваши варианты:

  1. Откройте проблему github https://github.com/micropython/micropython/ в которой вы попросите их внедрить аутентификацию WPA2 для ESP8266.
  2. Переключитесь на C SDK от Espressif
Другие вопросы по тегам