2017-02-17 111 views
0

我一直在嘗試使用針對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(); 

有沒有人否則之前做過這件事,並有它的工作?我究竟在這裏做錯了什麼?

回答

0

好了,看來我想通了部分...

一直以來,我是用我的智能手機連接到ESP AP,並試圖訪問Web服務器。我嘗試從我的電腦連接,並在這個世界上所有的愚蠢,它的作品。

爲什麼我無法通過手機連接對我來說是個謎,也許有人可以告訴我這裏發生了什麼......

+1

你使用什麼手機? Android手機(或至少我所有的Nexus設備)會在連接時提示一次,說沒有網絡連接,並詢問您是否要保持連接。如果您未確認要保持連接狀態,則無法訪問ESP。 –

+0

OnePlus二,是的,我注意到你描述的是真實的。 –