乐鑫技术交流
直播中

王健

8年用户 1033经验值
私信 关注
[问答]

ESP-01使固件在SOFTAP STA模式下运行遇到的疑问求解

环境:
1. ESP-01 模块
2. SDK开发包1.2.0版本
3. iPhone 6 和 MacbookPro 作为 wifi 客户端

我们使固件在 SOFTAP STA 模式下运行,其中 wifi 客户端使用 SOFTAP 来配置 STA 登录 (ssid/pwd) 到外部 AP(连接到互联网)。在STA成功连接到外部AP后,我们在SOFTAP中发现了奇怪的行为。

以下是观察到的列表:


  • 连接 STA 后,wifi 客户端(10 次中有 7 次)无法再连接到 SOFTAP。
  • 当 wifi 客户端可以连接到 SKOTAP 时,会观察到异常频繁的 TCP 重新连接。
  • 断开连接后(从 wifi 客户端启动),SOFTAP 无法检测到客户端离开 - 即设置为 wifi_set_event_handler_cb() 的回调从不调用。
  • 如果等待足够长的时间(10 分钟),有时 SOFTAP 可以恢复(检测到客户端离开),但有时它会永远卡住。
  • 即使恢复后,SOFTAP也永远无法再次接受wifi客户端。

更多数据点:


  • 当 SOFTAP 和 STA 的 ssid 信道不匹配时,似乎会发生这种情况。如果我们对 SOFTAP 信道进行与外部 AP 相同的硬编码,则结果会更加稳定。我们知道 SOFTAP 和 STA 的单通道硬件限制,如果外部 AP 在启动 SOFTAP 时不共享同一频道,则 SOFTAP 将在 STA 开始连接到外部 AP 之前释放其站客户端。但是,在将 SOFTAP 切换为使用匹配的信道后,这不应导致上述不当行为。
  • 无论我们做什么,都没有办法恢复(或检测)错误状态。我们尝试了禁用然后启用 SOFTAP 模式或重新发出 wifi_softap_set_config(),但都无济于事。
  • system_restart或硬件重置并不能真正解决问题。WiFi 客户端可以第一次连接。但是,如果我们在 STA 上发出断开连接并重新启动这些步骤,则会发现相同的结果。

你看到这样的事情吗?

回帖(1)

神船大幅

2024-7-19 17:17:45
从您的描述中,我了解到您正在使用ESP-01模块和SDK开发包1.2.0版本,希望在SOFTAP STA模式下运行固件。您的目标是让WiFi客户端通过SOFTAP配置STA登录(SSID/密码)到外部AP(连接到互联网)。然而,您遇到了一些问题,包括WiFi客户端无法连接到SOFTAP、TCP重新连接异常频繁以及SOFTAP无法检测到客户端离开。

为了解决这些问题,我将分步骤提供一些建议:

1. **固件升级**:首先,确保您的ESP-01模块使用的是最新版本的固件。较新版本的固件可能已经解决了一些已知问题。

2. **检查STA配置**:确保STA的SSID和密码正确配置,以便正确连接到外部AP。同时,检查STA的IP地址、子网掩码、默认网关和DNS服务器设置是否正确。

3. **检查SOFTAP配置**:确保SOFTAP的SSID、密码、频道和加密方式正确配置。此外,检查SOFTAP的IP地址、子网掩码和DHCP服务器设置是否正确。

4. **优化TCP连接**:在您的应用程序中,尝试优化TCP连接的处理。例如,增加TCP连接超时时间,或者在TCP连接断开后自动重新连接。

5. **监控网络状态**:在您的应用程序中,添加网络状态监控功能。这样,当STA连接到外部AP或SOFTAP时,应用程序可以及时更新网络状态,从而避免TCP重新连接异常频繁的问题。

6. **检查硬件问题**:检查ESP-01模块和WiFi客户端的硬件连接是否正常。例如,确保天线连接正确,没有松动或损坏。

7. **减少干扰**:尝试将ESP-01模块和WiFi客户端放置在远离其他无线设备的区域,以减少信号干扰。

8. **测试其他设备**:尝试使用不同的WiFi客户端(如其他手机或笔记本电脑)连接到SOFTAP,以确定问题是否与特定的设备有关。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分