WebServer + AP无法正常工作? WebServer + STA可以

时间:2017-02-17 08:32:34

标签: arduino esp8266

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

使用softAP设置AP工作正常,我也可以断言PSK并选择使用哪个频道(我选择了流量最少的频道,在本例中为ch 11)。问题是当尝试从连接的设备访问Web服务器时,它总是以超时异常结束。在这种情况下,ESP的IP为192.168.4.1,端口为80。

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

总结一下:

  • ESP8266WebServer + WIFI_AP(Station)=>不起作用!
  • ESP8266WebServer + WIFI_STA(Client)=>作品!

这是我与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();

In Loop:

server.handleClient();

之前有其他人这样做过吗?我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

好的,所以我似乎部分地想出了......

一直以来,我都在使用智能手机连接到ESP AP并试图访问网络服务器。我尝试从我的电脑连接到这世界上所有的愚蠢,它确实有用。

为什么我无法通过手机连接对我来说是一个谜,也许有人可以告诉我这里发生了什么......

答案 1 :(得分:0)

基本上在某些android设备上会按照注释中的说明寻找保持连接的通知。

如果您不接受保持连接状态,则手机仍将显示为“已与互联网连接”,并且该页面也不会加载,一旦您接受了有关保持连接状态的通知,便可以加载wemos页面。

在基于android nvidia的平板电脑上,这不是必需的,但是在我的Motorola智能手机上,直到我接受该盒子,它才起作用。