我一直在尝试使用适用于Arduino的ESP8266WiFi库设置一个与Web服务器相结合的接入点。我正在使用安装了NodeMCU固件的ESP8266 Huzzah模块(最新的主人)。
使用softAP设置AP工作正常,我也可以断言PSK并选择使用哪个频道(我选择了流量最少的频道,在本例中为ch 11)。问题是当尝试从连接的设备访问Web服务器时,它总是以超时异常结束。在这种情况下,ESP的IP为192.168.4.1,端口为80。
我尝试在STA模式下将ESP连接到另一台AP(家庭路由器),我已成功通过给定的IP地址连接到ESP。
总结一下:
这是我与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();
之前有其他人这样做过吗?我在这里做错了什么?
答案 0 :(得分:1)
好的,所以我似乎部分地想出了......
一直以来,我都在使用智能手机连接到ESP AP并试图访问网络服务器。我尝试从我的电脑连接到这世界上所有的愚蠢,它确实有用。
为什么我无法通过手机连接对我来说是一个谜,也许有人可以告诉我这里发生了什么......
答案 1 :(得分:0)
基本上在某些android设备上会按照注释中的说明寻找保持连接的通知。
如果您不接受保持连接状态,则手机仍将显示为“已与互联网连接”,并且该页面也不会加载,一旦您接受了有关保持连接状态的通知,便可以加载wemos页面。
在基于android nvidia的平板电脑上,这不是必需的,但是在我的Motorola智能手机上,直到我接受该盒子,它才起作用。