ESP8266 Micropython-连接到大学Wi-fi(WPA2 Enterprise PEAP)

Udu*_*Udu 5 python iot esp8266 micropython arduino-esp8266

我有一块带有运行Micropython固件v1.8.7的ESP8266芯片的电路板。我的要求是通过大学Wi-Fi使用WebREPL,后者使用WPA2 Enterprise EAP-MSCHAPv2身份验证。到目前为止,我的Google-fu告诉我Arduino用户已经可以连接到WPA2 Enterprise EAP-TLS(基于证书的身份验证)(链接),但不能连接(SSID,用户名,密码)网络。

到目前为止,我所看到的关于该主题的所有线索似乎都是最迟于2016年中开始的,所以我想知道自那时以来是否有人能够弄清楚该怎么做。我以前从未涉足网络相关的东西(我也不是一个出色的程序员),所以上面所有的大词对我来说都是很新的。因此,我有以下问题:

  1. 这仅仅是ESP8266的固有限制吗?还是可以做到?讨论似乎暗示可以完成,但功能需要进行编码。
  2. 是否可以通过某种方式从WPA2 Enterprise分支出WPA2个人连接,以供ESP8266和我的PC使用?到目前为止,我一直尝试使用Connectify尝试一个热点,但是那里没有运气。

感谢您提供的任何帮助。如果我没有提供任何相关信息,请告诉我,我将对其进行编辑。

编辑:@MaximilianGerhardt这是在WPA2 Personal上对我有效的方法:

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

import webrepl
webrepl.start()
Run Code Online (Sandbox Code Playgroud)

在WPA2 Enterprise上,我曾希望更改此行是可行的,但没有任何乐趣:

wlan.connect('ssid',auth=WPA2_ENT,'user','pwd')
Run Code Online (Sandbox Code Playgroud)

谢谢,我将研究Espressif Non-OS SDK V2.0.0,看看是否可以使它工作。

Max*_*rdt 5

正如我在评论中链接的那样,该问题显然已在最新的 2.0 Espressif SDK 中得到解决。但由于您使用的不是 Espressif C SDK,而是 python“Micropython”固件,因此此更改尚未传播到此 python 固件中。

您可以在此处查看固件中网络功能( active()、connect()等)的映射: https://github.com/micropython/micropython/blob/52df2f889e3315a4ced5a81e80efbb138182cd1b/esp8266/modnetwork.c。在第 115 行中,您还可以看到对 的调用,这是原生 Espressif-SDK 函数。因此您会看到,固件尚未使用 WPA2 身份验证的新功能。在第 490 行中,您可以看到所有可用的身份验证选项:ifconfig()wifi_station_connect()

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)
Run Code Online (Sandbox Code Playgroud)

WPA2 企业身份验证还不是其中之一。

所以现在我想说你的选择是:

  1. 打开 github 问题https://github.com/micropython/micropython/,要求他们为 ESP8266 实现 WPA2 身份验证
  2. 从 Espressif 切换到 C SDK

编辑:这仍然是一个问题,并在https://github.com/micropython/micropython/issues/2778中进行跟踪。