ESP8266 NodeMCU with VS Code and PlatformIO:上传文件到文件系统(LittleFS)

了解如何使用带有 PlatformIO IDE 扩展的 VS Code 将文件上传到 ESP8266 NodeMCU 板文件系统 (LittleFS)(快速而简单)。将文件系统与 ESP8266 一起使用有助于保存 HTML、CSS 和 JavaScript 文件以构建 Web 服务器,而不必在 Arduino 草图中编写所有内容。

ESP8266 NodeMCU with VS Code and PlatformIO:上传文件到文件系统(LittleFS)_第1张图片

介绍 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

 ESP8266 NodeMCU with VS Code and PlatformIO:上传文件到文件系统(LittleFS)_第2张图片

创建数据文件夹

在项目文件夹中创建一个名为data的文件夹。这可以在 VS Code 上完成。
用鼠标选择您正在处理的项目文件夹。单击“新建文件夹”图标以创建一个新文件夹。

这个新文件夹必须被命名为data,否则它将不起作用。

ESP8266 NodeMCU with VS Code and PlatformIO:上传文件到文件系统(LittleFS)_第3张图片

 然后,选择新创建的数据文件夹并通过单击“新建文件”图标创建要上传的文件。在本例中,我们将创建一个名为文本.txt. 例如,您可以创建和上传任何其他文件类型,例如.html.css.js文件。

 ESP8266 NodeMCU with VS Code and PlatformIO:上传文件到文件系统(LittleFS)_第4张图片

 在里面写一些随机文本。文本文件文件。

数据文件夹应该在项目文件夹下,您要上传的文件应该在数据文件夹内。否则,它将无法正常工作。

ESP8266 NodeMCU with VS Code and PlatformIO:上传文件到文件系统(LittleFS)_第5张图片

上传文件系统映像

在数据文件夹下创建并保存要上传的文件后,请执行以下步骤:

  1. 单击左侧栏中的 PIO 图标。项目任务应该打开。

  2. 选择env:nodemcuv2(可能会因您使用的板而异)。

  3. 展开平台菜单。

  4. 选择构建文件系统映像。

  5. 最后,单击Upload Filesystem Image

ESP8266 NodeMCU with VS Code and PlatformIO:上传文件到文件系统(LittleFS)_第6张图片 重要提示:要成功上传文件系统映像,您必须关闭
与主板的所有串行连接(串行监视器)

一段时间后,您应该会收到一条成功消息。 

ESP8266 NodeMCU with VS Code and PlatformIO:上传文件到文件系统(LittleFS)_第7张图片

 故障排除

这是一个常见的错误:无法打开端口“COMX”访问被拒绝。

此错误意味着您在 VS Code 或任何其他程序中打开了与您的板的串行连接。关闭任何可能正在使用主板串行端口的程序,并确保关闭 VS Code 中的所有串行连接(单击终端控制台上的回收站图标)。

测试

现在,让我们检查文件是否实际保存到 ESP8266 文件系统中。将以下代码复制到主文件文件并将其上传到你的开发板。

#include 
#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");

打开串行监视器,它应该打印文件的内容。

ESP8266 NodeMCU with VS Code and PlatformIO:上传文件到文件系统(LittleFS)_第8张图片

您已使用 VS Code + PlatformIO 成功将文件上传到 ESP8266 文件系统 (LittleFS)。 

你可能感兴趣的:(ESP8266,PIO,c++)