iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
自我挑戰組

arduino基礎實作系列 第 25

day25:利用FS.h儲存網頁資料(2)

  • 分享至 

  • xImage
  •  

第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() {
}

上一篇
day24:利用FS.h儲存網頁資料(1)
下一篇
day26:heroku註冊-linebot(1)
系列文
arduino基礎實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言