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

标签 python iot esp8266 arduino-esp8266 micropython

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

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

  • 这只是 ESP8266 的固有限制吗?或者可以做到吗? This discussion似乎表明它可以完成,但需要对功能进行编码。
  • 是否有可能以某种方式从 WPA2 Enterprise 分支出 WPA2 Personal 连接,以便 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()
    

    在 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 企业认证还不是其中之一。

    所以现在我想说你的选择是:
  • 打开 github 问题 https://github.com/micropython/micropython/您要求他们为 ESP8266 实现 WPA2 身份验证
  • 从乐鑫切换到 C SDK
  • 关于python - ESP8266 Micropython - 连接到大学 Wi-fi (WPA2 Enterprise PEAP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41552502/

    相关文章:

    python - 执行内容协商的模拟 HTTP 服务器

    fiware - 通过提供的 RPM 在 CentOS 7 VM 上安装 IDAS 时出现问题

    javascript - 通过 Web 套接字将网页连接到 MQTT 代理

    .net - ESP8266 - .Net 可行吗?

    arduino - 如何使用esp8266将Arduino连接到pubnub云?

    python - pyspark datastax cassandra 连接器保持连接到本地主机

    python按字符串匹配模式对列表项进行分组

    python - 仅评估 tf.Tensor 的非零值

    apache-kafka - MQTT 代理和 Apache Kafka 有什么区别

    arduino - 如何将 SoftwareSerial 与 ESP8266 结合使用