ESP8266Arduino编程实例SPIFFS及数据上传Arduino IDE和PlatformIO IDE
ESP8266-Arduino编程实例-SPIFFS及数据上传(Arduino IDE和PlatformIO IDE)
SPIFFS及数据上传(Arduino IDE和PlatformIO IDE)
1、SPIFFS介绍
ESP8266 包含一个串行外设接口闪存文件系统 (SPIFFS)。 SPIFFS 是为带有闪存芯片的微控制器创建的轻量级文件系统。
SPIFFS 可以像在计算机中的普通文件系统中一样访问闪存芯片存储器,但更简单且更受限制。 可以读取、写入、关闭和删除文件。 SPIFFS 不支持目录,因此所有内容都保存在平面结构中。
将ESP8266与SPIFFS结合,可以方便储存数据:
- 使用设置创建配置文件;
- 永久保存数据;
- 创建文件以保存少量数据,而不是使用 microSD 卡;
- 保存 HTML 和 CSS 文件以构建 Web 服务器;
- 保存图像、数字和图标;
- …
在我们的大多数 Web 服务器项目中,我们直接将 Web 服务器的 HTML 代码编写为字符串。 使用 SPIFFS,可以在单独的文件中编写 HTML 和 CSS,并将它们保存在 ESP8266 文件系统中。
本文将详细介绍如何上传SPIFFS数据及如何使用SPIFFS。
2、Arduino IDE中上传SPIFFS数据
Arduino IDE默认不支持上传SPIFFS数据,需要安装插件。具体步骤如下:
**第一步:**下载插件,ESP8266FS-X.zip
**第二步:**解压,安装。
插件下载完成后,将其解压,并将ESP8266FS目录复制到Arduino IDE安装目录的tools目录:

**第三步:**重启Arduino IDE,即可看到安装的SPIFFS插件

第四步:在工程目录下创建data目录,注意:data目录必须与主程序*.ino文件同级。向data文件夹添加所需文件。
第五步:配置SPIFFS大小

最后,点击工具->ESP8266 Sketch Data Upload上传文件。
注意,如果不清楚工程的目录,请点击项目->显示项目文件夹,即可打开项目文件夹。
3、PlatformIO IDE中上传SPIFFS数据
**第一步:**打开工程快速访问页面

第二步:在工程目录下创建data文件夹。注意:data文件夹与src文件夹同级。添加需要的文件。

**第三步:**添加SPIFFS支持
打开platformio.ini文件,添加如下内容:
1 | board_build.filesystem = spiffs |
第四步:上传数据

将到得如下输出:

4、代码实现
1 | #include <Arduino.h> |
示例代码如何工作?
首先,在setup函数中,初始化串口
1 | Serial.begin(115200); |
接着,初始化SPIFFS
1 | if(!SPIFFS.begin()){ |
接着,打开文件(文件名为添加到data文件夹的名称)
1 | File file = SPIFFS.open("/test.txt", "r"); |
最后,读取文件内容并关闭
1 | while(file.available()){ |
SPIFFS常用API如下:
- begin:挂载文件系统。 必须在使用任何其他 FS API 之前调用它。 如果文件系统安装成功,则返回 true,否则返回 false。
- end:卸载文件系统。 在使用 OTA 更新文件系统之前使用此方法。
- format:格式化文件系统。 可以在调用begin之前或之后调用。 如果格式化成功,则返回 true。
- **open(path,mode)**:打开文件,参数path应该为绝对路径,mode表示文件访问模式,有“r”, “w”, “a”, “r+”, “w+”, “a+”。该方法返回文件对象。
- **exists(path)**:判断文件是否存在,如果存在,则返回true;否则返回false,参数path为绝对路径
- **openDir(path)**:打开文件夹,参数path为绝对路径
- **remove(path)**:删除路径,参数path为绝对路径
文件File常用API如下:
- close:关闭文件
- isDirectory:判断是否为目录
- isFile:判断是否为文件
- name:文件名称
- seek:移动当前文件流位置,与fseek类似
- position:当前文件流位置
- size:文件大小。
文章来源: https://iotsmart.blog.csdn.net/article/details/126026870