Arduino ESP8266和ESP32使用SPIFFS芯片文件系统

ESP32  FS插件其实只是在当前项目目录下创建了一个data目录,我们只要将需要上传到芯片文件系统的内容放置在这个 data目录中就可以了,然后点击ESP8266 Skech Data Upload Arduino IDE就会将这个目录的文件写入到SPIFFS中了。要注意的是文件的大小不能超过板子SPIFFS的大小,否则会上传失败。

我们就尝试将一个index.html网页文件放到data目录,然后将其上传到ESP32中,接下来用以下的代码将SPIFFS中的index.html读出来:

目录结构如下

20200825153934_00.png

使用演示

这里以使用SPIFFS作为文件系统进行静态文件服务功能演示,首先准备几个文件。将下面文本保存为名为index.html的文件:

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>ServeStatic Test</title>
    <link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<body>
    <p>这是静态文件服务测试</p>
    <p>本页面的背景颜色是由mystyle.css文件提供的</p>
    <p>本页面引用了mystyle.css文件,浏览器在解析时会自动向服务器请求该文件</p>
</body>
</html>

将下面文本保存为名为mystyle.css的文件:

body {
    background-color: gray;
}

SPIFFS芯片文件系统

上传方式:

①首次使用

 

上传文件用到的工具项目地址如下:
https://github.com/me-no-dev/arduino-esp32fs-plugin
从项目地址下载Release版本压缩包,将其解压到Arduino安装文件夹tools文件夹下,最终文件路径为: .../Arduino/tools/ESP32FS/tool/esp32fs.jar 。重启Arduino IDE后就可以在菜单中看到选项。

ESP8266上传文件到SPIFFS的工具项目地址如下:
https://github.com/esp8266/arduino-esp8266fs-plugin

②打开工具选择 ESP32 SKetch Data Upload 上传SPIFFS芯片文件系统 ,也就是目录data下的index.html和mystyle.css。

20200825152414_FS.png

上传成功打印信息

20200825153006_true.png

③在Arduino中使用下面代码:

#include <WiFi.h>
#include <SPIFFS.h>
#include <ESPAsyncWebServer.h> //引入相应库

const char *ssid = "";
const char *password = "";

AsyncWebServer server(80); //声明WebServer对象

void setup()
{
  Serial.begin(115200);
  Serial.println();

  WiFi.mode(WIFI_STA);
  WiFi.setSleep(false);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Connected");
  Serial.print("IP Address:");
  Serial.println(WiFi.localIP());

  SPIFFS.begin(true); //挂载SPIFFS,如果挂载失败则格式化生成SPIFFS,格式化时间较长
  //当然上面begin中不填true格式化也行,下面演示中用工具上传文件时会自动生成SPIFFS

  server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.html");

  server.begin(); //启动服务器

  Serial.println("Web server started");
}

void loop(){}

 

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值