【发布时间】:2017-07-06 16:31:58
【问题描述】:
我一直在尝试使用适用于 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 的方式:
在设置中:
#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();
以前有没有其他人这样做过并且成功了?我在这里实际上做错了什么?
【问题讨论】: