ESP8266 Micropython - 连接大学Wi-Fi(WPA2企业PEAP)

8
我有一个板子,上面有一个ESP8266芯片和Micropython固件v1.8.7。我的要求是通过大学Wi-Fi使用WebREPL,该Wi-Fi使用WPA2 Enterprise EAP-MSCHAPv2身份验证。到目前为止,我的谷歌搜索已经告诉我,Arduino用户已经能够连接到WPA2 Enterprise EAP-TLS(基于证书的身份验证)(link),但不能连接到(SSID,用户名,密码)网络。
到目前为止,我看到的所有主题似乎都是最迟在2016年中期发布的,因此我想知道自那时以来是否有人能够解决这个问题。我以前从未涉足过与网络相关的事情(也不是一个很好的程序员),因此上面的所有术语对我来说都是新的。因此,我有以下问题:
  1. 这只是ESP8266的固有限制吗?还是可以实现的?这个讨论似乎表明它是可以实现的,但需要编写相应的能力。
  2. 是否可能从WPA2企业版分支出一个WPA2个人版连接,以便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企业级网络中,我本希望更改这行代码就能解决问题,但未成功:
wlan.connect('ssid',auth=WPA2_ENT,'user','pwd')

谢谢,我会研究Espressif非OS SDK V2.0.0并尝试让它工作。


esp8266-eduroam 项目(https://github.com/joostd/esp8266-eduroam/blob/master/wpa2e-v20/user/user_main.c)中的代码和 22 天前的评论(https://github.com/esp8266/Arduino/issues/1032#issuecomment-267809940)表明,使用最新的 2.0 espressif SDK (wifi_station_set_enterprise_username()wifi_station_set_enterprise_password()) 是可能的。您已尝试了哪些代码? - Maximilian Gerhardt
请在 https://github.com/micropython/micropython/issues/2778 上为功能请求投票。 - Colonel Panic
@ColonelPanic 我就是开了2778号问题的那个人 :) - Udu
1个回答

5
正如我在评论中提到的,最新的2.0 Espressif SDK似乎已经解决了这个问题。但是,由于您没有使用Espressif C SDK,而是使用Python“Micropython”固件,因此这个更改尚未传播到这个Python固件中。
您可以在此处查看固件中网络功能(active()connect()ifconfig() 等)的映射:https://github.com/micropython/micropython/blob/52df2f889e3315a4ced5a81e80efbb138182cd1b/esp8266/modnetwork.c。在第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/,询问他们是否可以为ESP8266实现WPA2认证
  2. 转换到Espressif的C SDK

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


感谢确认!我已在Github上开了一个问题。如果可能的话,我将首先尝试向大学询问备用的WPA2 PSK连接。如果不行,我想我将不得不使用Espressif SDK。我已经为您的答案点赞并接受了它,但由于这是我在SO上的第一个问题,我的声望还不足以公开反映它。再次感谢! - Udu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接