我一直在嘗試使用針對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二,是的,我注意到你描述的是真實的。 –