要讓手機或電腦在連上 Raspberry Pi Pico W 的 AP 模式(無線基地台)時自動跳出指定網頁,這個功能在網路上被稱為 「強制網路門戶」(Captive Portal),就像我們在機場或咖啡廳連線免費 Wi-Fi 時,會自動跳出登入或歡迎網頁一樣
要達成這個效果,除了原本的 Web 伺服器 之外,Pico W 還必須同時充當 DNS 伺服器。因為當手機連上沒有網際網路的 Wi-Fi 時,系統會自動在背景向特定的網址(例如 Apple 的 ://apple.com 或微軟的 msftconnecttest.com)發送請求測試網路。
Libraries:DNSServer.h、LEAmDNS.h、ESPAsyncWebServer.h
AsyncWebServer server(80);
DNSServer dnsServer;
dnsServer.start(53,"*",apIP)//DNS port:53,apIP:(192.168.4.1)
dnsServer.processNextRequest();//放loop()內
// 關鍵防呆:當手機在背景亂戳微軟、蘋果或 Google 的測試網址時,一律強制把它導回 192.168.4.1 首頁
server.onNotFound([](AsyncWebServerRequest *request) {
request->redirect("http://192.168.4.1");
基本使用步驟