我一直在尝试使用针对Arduino的ESP8266WiFi库设置一个与Web服务器结合的访问点。我正在使用安装了NodeMCU固件的ESP8266 Huzzah模块(最新的主设备)。WebServer + AP不工作? WebServer + STA确实
使用softAP建立一个AP可以正常工作,我也可以向其声明一个PSK并选择使用哪个通道(我选择了流量最小的通道,在本例中为ch 11)。问题是当试图从连接的设备访问Web服务器时,它总是以超时异常结束。 ESP的IP在这种情况下是192.168.4.1,端口是80.
我试着在STA模式下将ESP连接到另一个AP(家庭路由器),并且我能够通过给定的方式成功连接到ESP IP地址。
要总括起来:
- ESP8266WebServer + WIFI_AP(站)=>不行!
- ESP8266WebServer + WIFI_STA(Client)=> Works!
这是我如何设置网络服务器起来,连同AP:
在设置:
#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", "", 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();
有没有人否则之前做过这件事,并有它的工作?我究竟在这里做错了什么?
你使用什么手机? Android手机(或至少我所有的Nexus设备)会在连接时提示一次,说没有网络连接,并询问您是否要保持连接。如果您未确认要保持连接状态,则无法访问ESP。 –
OnePlus二,是的,我注意到你描述的是真实的。 –