加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

ESP8266 Micropython – 连接大学Wi-Fi(WPA2 Enterprise PEAP)

发布时间:2020-12-16 22:41:24 所属栏目:Python 来源:网络整理
导读:我有一块带ESP8266芯片的电路板,运行Micropython固件v1.8.7.我的要求是通过大学Wi-Fi使用WebREPL,它使用WPA2 Enterprise EAP-MSCHAPv2身份验证.到目前为止,我的Google-fu告诉我,Arduino用户已经能够连接到WPA2 Enterprise EAP-TLS(基于证书的身份验证)(link)

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

到目前为止我在这个问题上看到的所有主题似乎都是从2016年中期开始的,所以我想知道从那以后有人能够弄清楚如何做到这一点.我之前从未涉足网络相关的东西(也不是一个优秀的程序员),所以上面所有的大词对我来说都是新的.因此,我有以下问题:

>这只是ESP8266的固有限制吗?还是可以做到的? This discussion似乎暗示它可以完成,但能力需要编码.
>是否有可能以某种方式从WPA2企业分支出可以由ESP8266和我的PC使用的WPA2个人连接?到目前为止我尝试过尝试使用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 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企业身份验证还不是其中之一.

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

>打开一个github问题https://github.com/micropython/micropython/,在其中要求他们为ESP8266实施WPA2身份验证
>从Espressif切换到C SDK

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读