我有一块运行 Micropython 固件 v1.8.7 的带有 ESP8266 芯片的电路板。我的要求是通过大学 Wi-Fi 使用 WebREPL,它使用 WPA2 Enterprise EAP-MSCHAPv2 身份验证。到目前为止,我的 Google-fu 告诉我,Arduino 用户已经能够连接到 WPA2 Enterprise EAP-TLS(基于证书的身份验证)( link),但不能连接到(SSID、用户名、密码)网络。
到目前为止,我在该主题上看到的所有主题似乎最迟都来自 2016 年年中,所以我想知道从那时起是否有人能够弄清楚如何做到这一点。我以前从未涉足过网络相关的东西(我也不是一个伟大的程序员),所以上面所有的大词对我来说都很新鲜。因此,我有以下问题:
我很感激你们能提供的任何帮助。如果有任何我没有包含的相关信息,请告诉我,我会编辑它。
编辑:@MaximilianGerhardt 这对我来说适用于 WPA2 Personal:
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,看看我能不能让它工作。
最佳答案
正如我在评论中链接的那样,问题显然已在最新的 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 身份验证的新功能。在 line 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 企业认证还不是其中之一。
所以现在我想说你的选择是:
关于python - ESP8266 Micropython - 连接到大学 Wi-fi (WPA2 Enterprise PEAP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41552502/