You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派Pico W运行MicroPython v1.22.2遇MBEDTLS_ERR_SSL_CONN_EOF错误求助

解决树莓派Pico W HTTPS连接的MBEDTLS_ERR_SSL_CONN_EOF错误

可能的原因与修复方案

1. 强制同步系统时间

Pico W无内置RTC电池,重启后时间会重置到1970年,而HTTPS证书验证依赖正确的系统时间,这是该报错的常见诱因。

  • 连接WiFi后执行以下代码同步时间:
import ntptime
import network

# 替换为你的WiFi信息
ssid = "你的WiFi名称"
pwd = "你的WiFi密码"

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, pwd)
while not wlan.isconnected():
    pass

# 同步NTP时间,可替换为国内服务器如'cn.pool.ntp.org'
ntptime.host = 'pool.ntp.org'
ntptime.settime()
  • 执行import utime; print(utime.localtime())确认时间是否更新到当前年份。

2. 临时禁用证书验证(仅用于测试)

若时间同步后仍报错,可能是证书链不兼容问题,可临时关闭验证排查:

  • 修改ssl.wrap_socket调用:
ssl.wrap_socket(s, server_hostname=host, cert_reqs=ssl.CERT_NONE)
  • 使用urequests时添加参数:
urequests.get("https://目标地址", verify=False)

3. 更新MicroPython固件到最新版

v1.22版本的SSL栈存在已知bug,更新到最新稳定版可解决部分兼容性问题:

  • 按住Pico W的BOOTSEL键连接电脑,设备会识别为U盘
  • 下载对应Pico W的最新MicroPython固件,拖入U盘完成刷写

4. 排查网络环境

  • 切换到手机热点测试,排除校园网、企业网的代理/防火墙拦截HTTPS流量的可能
  • 确保路由器未开启SSL拦截类功能

5. 指定SSL协议版本

部分服务器不兼容默认协议,尝试强制使用TLSv1.2:

import ssl

# 创建socket后替换原wrap_socket逻辑
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
secure_sock = context.wrap_socket(s, server_hostname=host)

内容的提问来源于stack exchange,提问作者Aeisor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 09:34:52