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

ESP8266/ESP32 STA模式连接AP设备陷入循环问题求助

问题分析与解决

核心问题

你的代码存在两个关键问题导致连接失败:

  1. 静态IP设置时机错误:你在STA未完成连接时就尝试设置IP,且若AP模式ESP的默认网段与你指定的192.168.144.x不匹配,会直接导致IP分配冲突,无法完成连接握手。
  2. 无超时的等待逻辑:一旦连接卡住,代码会无限循环在while里,无法退出也无法排查问题。

具体修正步骤

  • 对齐AP与STA的网段:AP模式ESP默认网段是192.168.4.x,若你要使用192.168.144.x,需先修改AP的静态IP网段。
  • 调整静态IP配置时机:推荐在STA发起连接前就配置好静态IP,避免DHCP分配IP后再修改的冲突。
  • 添加连接超时机制:防止代码无限卡死,同时便于排查超时原因。

修正后的代码

import network
from time import sleep

def config_wifi():
    # 若AP模式ESP是默认配置,网段为192.168.4.x;若已修改AP网段,这里要对应调整
    ip        = '192.168.4.3'
    subnet    = '255.255.255.0'
    gateway   = '192.168.4.1'  # 必须与AP模式ESP的IP完全一致
    dns       = '8.8.8.8'
    ssid = 'MicroPython-AP'
    password = '123456789'
    
    # 关闭本地AP模式(避免资源冲突)
    ap = network.WLAN(network.AP_IF)
    if ap.active():
        ap.active(False)
    sleep(1)
    
    # 初始化STA模式
    sta = network.WLAN(network.STA_IF)
    sta.active(True)
    
    # 先配置静态IP,再发起连接
    sta.ifconfig((ip, subnet, gateway, dns))
    
    # 清除之前的残留连接
    sta.disconnect()
    sleep(1)
    
    # 连接目标AP
    sta.connect(ssid, password)
    
    # 带超时的连接等待逻辑
    timeout = 12  # 设置12秒超时
    while timeout > 0 and not sta.isconnected():
        print(f"等待连接... 剩余时间: {timeout}s")
        sleep(1)
        timeout -= 1
    
    if sta.isconnected():
        current_ip = sta.ifconfig()[0]
        print(f"连接成功,IP: {current_ip}")
        return current_ip
    else:
        print("连接超时失败")
        print(f"当前STA状态码: {sta.status()}")
        return None

def run():
    config_wifi()
    
run()

额外检查项

  • AP模式ESP的配置验证:若要使用192.168.144.x网段,需在AP模式的ESP上执行以下代码修改网段:
    ap = network.WLAN(network.AP_IF)
    ap.active(True)
    ap.config(ssid='MicroPython-AP', password='123456789')
    ap.ifconfig(('192.168.144.1', '255.255.255.0', '192.168.144.1', '8.8.8.8'))
    
  • 状态码1001的含义:该状态表示STA正在发起连接请求,但尚未完成IP握手或认证,因此isconnected()会返回False。
  • 密码有效性:MicroPython AP模式要求密码至少8位,你的密码符合要求无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:55:26