0

我在接入点模式下使用 ESP8266 通过 HTTP 从移动应用程序向其发送一些数据(wifi 凭据)。接入点初始化代码非常简单:

IPAddress apIP(10, 10, 10, 1);                      
IPAddress subnet(255,255,255,0);                   
WiFi.softAPConfig(apIP, apIP, subnet);
WiFi.softAP(ACCESS_POINT_NAME);     // No password requird

我发现有时手机无缝连接到 ESP 的网络,而其他时候则严重困难(拒绝连接,或连接时间超过 3 分钟)。

问题是:

  1. 这段代码是否存在问题,可以通过客户气质建立到 ESP 的连接(有时很好,有时不是)?就像我应该将 WiFi 频道从 1 更改为一样吗?静态 IP/子网掩码是否会产生问题?
  2. 问题是否可能与硬件有关 - 即有时客户端从 ESP 获得良好的 wifi 信号,有时不是?
4

1 回答 1

0

如果其他人面临这个问题,我发现执行以下操作可以显着提高性能:

  • 删除 DNS
  • 重置 WiFi 配置
  • 将模块显式设置为 AP 模式 - 此Github 问题评论引用了这一点。这似乎是改进的主要驱动力。

所以现在的代码是:

// Set up WiFi mode [Improve AP stability - no dual STA mode]
ESP.eraseConfig();
WiFi.mode(WIFI_AP);

IPAddress apIP(10, 10, 10, 1);                      
IPAddress subnet(255,255,255,0);              
WiFi.softAPConfig(apIP, apIP, subnet);
WiFi.softAP(ACCESS_POINT_NAME);     // No password
WiFi.printDiag(Serial);

原因是在 STA 模式下,ESP 可能会进行信道跳跃(取决于环境),并且 AP 会随之拉动。因此,在通道跳跃之前连接的任何客户端都必须重新连接。

于 2019-08-11T06:46:13.037 回答