WebServer + AP 不工作? WebServer + STA 可以

问题描述 投票:0回答:3

我一直在尝试使用 Arduino 的 ESP8266WiFi 库设置一个与 Web 服务器结合的接入点。我正在使用安装了 NodeMCU 固件的 ESP8266 Huzzah 模块(最新主控)。

使用 softAP 设置 AP 效果很好,我还可以对其断言 PSK 并选择要使用的通道(我选择了流量最少的通道,在本例中为通道 11)。问题是当尝试从连接的设备访问 Web 服务器时,总是会出现超时异常。在本例中,ESP 的 IP 为 192.168.4.1,端口为 80。

我尝试以 STA 模式将 ESP 连接到另一个 AP(家庭路由器),并且我成功地通过给定的 IP 地址连接到 ESP。

总结一下:

  • ESP8266WebServer + WIFI_AP(站)=> 不起作用!
  • ESP8266WebServer + WIFI_STA(客户端)=> 工作!

这就是我与 AP 一起设置 Web 服务器的方式:

在设置中:

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
[...]
ESP8266WebServer server(80);
[...]
Serial.print("Setting soft-AP ... ");
WiFi.disconnect(true);
WiFi.mode(WIFI_AP);
delay(100);
boolean result = WiFi.softAP("TestAP", "0123456789", 11); // This does of course return true, and the access point shows up on my device

if(result == true)
{
  Serial.println("Access Point Ready");
  Serial.println(WiFi.softAPIP()); // Prints 192.168.4.1
}
else
{
  Serial.println("Access Point Failed!");
}
[...]
server.on("/", [](){
  server.send(200, "text/html", webPage);
  delay(1000);
});
[...]
server.begin();

循环中:

server.handleClient();

之前有其他人这样做过并且有效吗?我在这里到底做错了什么?

arduino esp8266
3个回答
1
投票

好吧,看来我已经部分明白了...

我一直在使用智能手机连接到 ESP AP 并尝试访问 Web 服务器。我尝试从我的计算机进行连接,尽管这个世界上有很多愚蠢的事情,它仍然有效。

为什么我无法通过电话连接对我来说是个谜,也许有人可以告诉我这是怎么回事......


0
投票

基本上,在某些 Android 设备上,请注意评论中提到的有关保持连接的通知。

如果您不接受保持连接,您的手机仍会显示为“已连接,但没有互联网”,并且页面不会加载,一旦您接受了有关保持连接的通知,您就可以加载您的 wemos 页面。

在基于 Android nvidia 的平板电脑上,这不是必需的,但在我的摩托罗拉智能手机上,除非我接受该盒子,否则它无法工作。


0
投票

对我有帮助的是通过禁用“自动选择最佳网络”选项来禁用设置中的“WiFi助手”

© www.soinside.com 2019 - 2024. All rights reserved.