了解如何使用带有 PlatformIO IDE 扩展的 VS Code 将文件上传到 ESP8266 NodeMCU 板文件系统 (LittleFS)(快速而简单)。将文件系统与 ESP8266 一起使用有助于保存 HTML、CSS 和 JavaScript 文件以构建 Web 服务器,而不必在 Arduino 草图中编写所有内容。
介绍 SPIFFS/LittleFS
您可以将两种文件系统用于板载 ESP8266 闪存:SPIFFS 和 LittleFS。
SPIFFS 和 LittleFS 让您可以像在计算机中的普通文件系统中一样访问闪存,但更简单且更受限制。您可以读取、写入、关闭和删除文件。
SPIFFS:
- 原始文件系统;
- 非常适合使用许多文件的空间和 RAM 受限应用程序;
- 不支持目录——所有内容都保存在平面结构中;
- 闪存上的文件系统开销很小;
- SPIFFS 目前已弃用,可能会在未来的核心版本中删除。
LittleFS:
- 最近的;
- 专注于更高的性能;
- 支持目录;
- 更高的文件系统和每个文件的开销(最小 4K 与 SPIFFS 的 256 字节最小文件分配单元)。
有关 SPIFFS 和 LittleFS 的更多信息,请参阅ESP8266 Arduino Core 文档。
SPIFFS 目前已弃用,可能会在 ESP8266内核的未来版本中删除。建议改用 LittleFS。
LittleFS 正在积极开发中,支持目录,并且对于大多数操作来说速度要快很多倍。SPIFFS 使用的方法与 LittleFS 兼容,因此,我们可以简单地使用表达式LittleFS代替SPIFFS将代码从 SPIFFS 转换为 LittleFS 时。
例如,将大多数应用程序从 SPIFFS 转换为 LittleFS 只需更改SPIFFS.begin()到LittleFS.begin()和SPIFFS.open()到LittleFS.open().
将文件系统与ESP8266 板一起使用 特别有用:
- 使用设置创建配置文件;
- 永久保存数据;
- 创建文件以保存少量数据,而不是使用 microSD 卡;
- 保存 HTML、CSS 和 JavaScript 文件以构建 Web 服务器;
- 保存图像、数字和图标;
- 以及更多。
上传文件到 ESP8266 NodeMCU LittleFS
您要上传到 ESP8266 文件系统的文件应放在项目文件夹下名为data的文件夹中。为了让您了解一切是如何运作的,我们将上传一个。文本文件带有一些随机文本的文件。您可以上传任何其他文件类型。
使用 LittleFS 作为默认文件系统
SPIFFS 目前已弃用,可能会在 ESP8266 内核的未来版本中删除。建议改用 LittleFS。LittleFS 正在积极开发中,支持目录,并且对于大多数操作来说速度要快很多倍。因此,我们将在本教程中使用 LittleFS。
在 VS Code + PlatformIO 中,上传文件时,我们必须指定我们要使用 LittleFS 文件系统而不是 SPIFFS(默认),因此需要在 ESP826 中添加以下行平台io.ini配置文件。
board_build.filesystem = littlefs
创建数据文件夹
在项目文件夹中创建一个名为data的文件夹。这可以在 VS Code 上完成。
用鼠标选择您正在处理的项目文件夹。单击“新建文件夹”图标以创建一个新文件夹。
这个新文件夹必须被命名为data,否则它将不起作用。
然后,选择新创建的数据文件夹并通过单击“新建文件”图标创建要上传的文件。在本例中,我们将创建一个名为文本.txt. 例如,您可以创建和上传任何其他文件类型,例如.html、.css或.js文件。
在里面写一些随机文本。文本文件文件。
数据文件夹应该在项目文件夹下,您要上传的文件应该在数据文件夹内。否则,它将无法正常工作。
上传文件系统映像
在数据文件夹下创建并保存要上传的文件后,请执行以下步骤:
-
单击左侧栏中的 PIO 图标。项目任务应该打开。
-
选择env:nodemcuv2(可能会因您使用的板而异)。
-
展开平台菜单。
-
选择构建文件系统映像。
-
最后,单击Upload Filesystem Image。
重要提示:要成功上传文件系统映像,您必须关闭
与主板的所有串行连接(串行监视器)。
一段时间后,您应该会收到一条成功消息。
故障排除
这是一个常见的错误:无法打开端口“COMX”访问被拒绝。
此错误意味着您在 VS Code 或任何其他程序中打开了与您的板的串行连接。关闭任何可能正在使用主板串行端口的程序,并确保关闭 VS Code 中的所有串行连接(单击终端控制台上的回收站图标)。
测试
现在,让我们检查文件是否实际保存到 ESP8266 文件系统中。将以下代码复制到主文件文件并将其上传到你的开发板。
#include <Arduino.h>
#include "LittleFS.h"
void setup() {
Serial.begin(9600);
if(!LittleFS.begin()){
Serial.println("An Error has occurred while mounting LittleFS");
return;
}
File file = LittleFS.open("/text.txt", "r");
if(!file){
Serial.println("Failed to open file for reading");
return;
}
Serial.println("File Content:");
while(file.available()){
Serial.write(file.read());
}
file.close();
}
void loop() {
}
您可能需要根据文件名更改以下行。
File file = LittleFS.open("/text.txt");
打开串行监视器,它应该打印文件的内容。
您已使用 VS Code + PlatformIO 成功将文件上传到 ESP8266 文件系统 (LittleFS)。