乐鑫技术交流
直播中

陈静

8年用户 1351经验值
私信 关注
[问答]

ESP8266FS ARduino IDE如何创建可以直接下载的SPIFFS文件?

我一直在使用 ESP8266FS ARduino IDE 插件将文件写入 SPIFFS。我想知道如何在不使用 Arduino IDE 插件的情况下通过创建一个 1MB 的 .bin 轻松地将文件写入 SPIFFS,这是我想要的 SPIFFS 图像(并包含所有文件),这样我就可以简单地刷新这 1 MB .bin 文件直接到闪存,并拥有我想要的所有文件。请注意,我使用的是“Flash 大小:4MB (1MB SPIFFS)”而不是默认的“Flash 大小:4MB (3MB SPIFFS)”,因为它使上传速度提高了 3 倍,而我几乎没有使用 199kb。

回帖(1)

王秀珍

2024-6-4 16:52:16
要创建可以直接下载的 SPIFFS 文件,您需要使用 ESP8266FS 工具,该工具是针对 SPIFFS 进行格式化和分区的命令行工具。以下是使用 ESP8266FS 工具的步骤:

1. 在 Arduino IDE 中打开您要上传到 SPIFFS 的文件夹。在文件夹名称上单击鼠标右键,然后单击“打开命令行窗口”。

2. 在命令行窗口中输入以下命令:`esp8266fs.jar -p COMXX -b 115200 -s --size 1048576 -f .` 其中 XX 是您的串行端口号,1048576 是您要设置的 SPIFFS 文件系统的大小(1MB),. 表示当前文件夹。

3. 运行命令后,ESP8266FS 工具将格式化 SPIFFS 并在您的文件夹中创建一个名为“spiffs.bin”的文件。这个文件就是您要下载的 SPIFFS 文件。

4. 将 ESP8266 模块连接到计算机,并打开 Arduino IDE。选择正确的开发板和串行端口,然后上传以下代码:

```
#include
#include
#include
#include

ESP8266WebServer server(80);

void handleFileRead(String path) {
  if (SPIFFS.exists(path)) {
    File file = SPIFFS.open(path, "r");
    size_t sent = server.streamFile(file, "application/octet-stream");
    file.close();
  } else {
    server.send(404, "text/plain", "File Not Found");
  }
}

void setup() {
  Serial.begin(115200);
  SPIFFS.begin();
  MDNS.begin("esp8266");
  server.on("/file", HTTP_GET, [](){
    if (!server.hasArg("name")) {
      server.send(400, "text/plain", "BAD REQUEST");
      return;
    }
    handleFileRead("/"+server.arg("name"));
  });
  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
}
```

5. 在浏览器中打开 http://esp8266.local/file?name=spiffs.bin。您将会看到 SPIFFS 文件下载页面,然后您可以通过简单地上传该文件直接到闪存中来刷新所有文件。

通过这些步骤,您可以创建和下载可以直接上传到 ESP8266 模块中的 SPIFFS 文件,而无需使用 Arduino IDE 插件。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分