第25天,接續昨天利用FS.h儲存網頁資料。
在函數庫的部分我將原本的webserver改成了ESPAsyncWebServer,這個函數庫一樣在google上就能找到,一樣在導入函數庫後設定要聯接的網路。
再來要將原本的webserver更改為AsyncWebServer
之後要設定的東西基本一樣,多的部分之有將fs的功能開啟而已
在網頁的部分變化就比較大,首先是要先設定將fs儲存的網頁套用在伺服器上,這行程式碼也是用來網頁儲存在arduino記憶體的部分。
再來就是將開啟伺服器,可以在server.on的部分額外去增加對arduino部分的控制。
接下來的部分就都一樣了,不過因為使用了不同的伺服器函數庫,所以loop的部分不需要再加其他的東西。
在來是導入網頁資料的部分。
首先要先在新增一個資料夾在同一目錄中,因為fs默認最先抓取的資料夾為data所以要將資料夾命名為同一個名字。
資料夾內則是存放網頁資料。
接著就可以點擊工具欄中的選項,因為會使用到rx及tx腳位,所以在儲存時不可以開啟監控台。
儲存中的畫面。
顯示這樣就代表儲存完畢。
接這就可以開啟網頁。
順利的話就會看到儲存網頁的內容了。
程式碼
#include <ESPAsyncWebServer.h>
#include <ESP8266WiFi.h>
#include <FS.h>
const char* ssid = "Asus z7";
const char* password = "cat891021";
AsyncWebServer server(80);
void setup(){
Serial.begin(9600);
SPIFFS.begin();
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
server.serveStatic("/",SPIFFS,"/").setDefaultFile("text.html");
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(200,"html","");
});
server.onNotFound([](AsyncWebServerRequest *request){
request->send(404, "text/plain", "not Found!");
});
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
}