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

ESP32(MicroPython)复位后重连树莓派AP失败,返回STAT_WRONG_PASSWORD错误

ESP32(MicroPython)复位后重连树莓派AP失败,返回STAT_WRONG_PASSWORD错误

我之前也碰到过类似的设备重连AP异常的情况,结合你描述的场景——ESP32正常连接树莓派AP没问题,但复位后立刻重连就报密码错误,等树莓派那边显示ESP断开关联后又能正常连接——大概率是两端的WiFi连接状态不同步导致的:

问题根源分析

ESP32复位时属于硬重启,可能没来得及给树莓派AP发送正常的断开关联报文,树莓派的AP还会认为ESP32处于已连接状态。这时候ESP32重启后发起新的连接请求,树莓派可能因为旧连接未释放,对新请求的验证逻辑出现异常,误返回密码错误的状态码。

可行的解决办法

1. 树莓派AP端:缩短 stale 连接的超时时间

通过配置让树莓派更快清理未正常断开的设备连接,避免旧连接残留干扰新连接:

  • 可以设置WiFi station的超时时间,执行以下命令:
    sudo iw dev wlan0 set station_timeout 3000
    
    这里的3000是毫秒,也就是3秒后树莓派会自动清理无响应的设备连接,你可以根据需求调整时长。
  • 也可以优化nmcli的Hotspot安全配置,让AP的连接验证逻辑更严谨:
    sudo nmcli connection modify Hotspot 802-11-wireless-security.proto rsn
    sudo nmcli connection modify Hotspot 802-11-wireless-security.group ccmp
    sudo nmcli connection modify Hotspot 802-11-wireless-security.pairwise ccmp
    

2. ESP32(MicroPython)端:重连前主动重置WiFi状态

在复位后的连接流程中,先主动清理WiFi模块的旧状态,再发起新连接:

import network
import utime

wlan = network.WLAN(network.STA_IF)
# 先断开旧连接(如果存在)
if wlan.isconnected():
    wlan.disconnect()
# 关闭再开启WiFi接口,彻底重置状态
wlan.active(False)
utime.sleep(0.5)
wlan.active(True)
# 执行连接逻辑
wlan.connect("raspi_ap", "raspi_ap_pwd")

这样可以确保ESP32用全新的状态发起连接,避免旧连接信息的干扰。

3. 优化ESP32的连接重试逻辑

可以在连接失败时增加重试机制,同时每次重试前都重置WiFi状态:

import network
import utime

def connect_wifi(ssid, pwd):
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    max_retries = 3
    retry_count = 0
    while not wlan.isconnected() and retry_count < max_retries:
        print(f"尝试连接WiFi,第{retry_count+1}次")
        wlan.disconnect()  # 每次重试前先断开旧连接
        wlan.connect(ssid, pwd)
        utime.sleep(2)  # 等待连接结果
        retry_count += 1
    if wlan.isconnected():
        print(f"连接成功,IP地址:{wlan.ifconfig()[0]}")
    else:
        print("连接失败")

# 调用连接函数
connect_wifi("raspi_ap", "raspi_ap_pwd")

额外排查点

  • 查看树莓派的NetworkManager日志(sudo journalctl -u NetworkManager),看看ESP32复位后重连时AP侧的报错信息,能帮你更精准定位问题;
  • 尝试更换WiFi加密模式(比如从纯WPA2改为WPA/WPA2混合模式),部分设备在特定加密配置下会出现重连异常。

备注:内容来源于stack exchange,提问作者Loïc G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 08:03:18