问题标签 [spiffs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
374 浏览

esp32 - ESP32 的有限闪存低于声明为 SPIFFS 的 4mb

我正在使用 ESP32 模块 WEMOS LOLIN32 来设置带有基本强制门户的简单网络服务器。我修改了 Captive Portal 的内置示例以用作异步 Web 服务器,所有文件都存储为 SPIFFS。一切正常,但我有一个问题,我无法上传超过 1 mb 的文件。如果数据文件夹更大,那么我有一个错误:

我不知道闪存是否与程序数据共享(我想是的),即使这样我的草图也很大:

因此,如果程序的总空间小于 1.5 mb,那么我应该有超过 2.5 mb 的闪存可用于 SPIFFS(如果我的想法是正确的 - 但可能不是)。

在工具菜单中还有我设置为默认的“分区方案”,因为其他选项是

这听起来与我想要存档的内容相反(必须将这两个作为代码,因为堆栈不会让我的帖子提出问题)。

那么这里有什么问题呢?

0 投票
1 回答
2065 浏览

webserver - 在 ESP32 上的异步 Web 服务器上将多个 SPIFFS 文件添加到强制门户

我正在使用带有异步 Web 门户的修改后的 Captive 门户的简单代码(来自 ESPAsyncWebServer 库 - https://github.com/me-no-dev/ESPAsyncWebServer)。它从 SPIFFS 闪存发送 html 页面。

它现在的工作方式是在任何连接上发送 index.html。我刚刚修改了上述示例中发送 hmtl 代码的单行代码。我想要存档的是能够发送更多文件,例如 html 文件和图像。

所以这是我的代码:

我试图添加

在此处解释的设置部分中 - https://randomnerdtutorials.com/display-images-esp32-esp8266-web-server/

但它不起作用。我试过在它出现的地方弄乱路径更改“/”,但没有运气。此外,如果我改变

登录到 AP 时,我得到的是图像而不是网站,所以我认为路径很好。

要添加更多信息,这是我的网页代码:

它在 non-captive_portal 解决方案上运行良好(如前面提到的教程中所述)。

所以我的问题是我如何不仅可以在异步网络服务器的强制门户上加载单个文件,还可以加载更复杂(仍然非常简单)的网页?

0 投票
0 回答
421 浏览

fatfs - 带有 esp-idf 的 ESP32 上的 FatFs 无法创建带有 *.json 扩展名的文件

由于加密,我想在我的 Esp32 项目上从 SPIFFS 切换到 FAT。在我的示例项目中,我有这个。

它工作正常并按预期创建两个文件,但是:

json文件失败。

到目前为止,谷歌没有给我任何关于 FatFS 文件扩展名问题的信息。有人可以帮我理解这一点吗?

0 投票
1 回答
438 浏览

json - 使用 ArduinoJson 库无法使用 JsonObject 解析 Json

我正在使用以下代码使用 SPIFFS 将 Config.json 文件存储到 ESP32 闪存

但是解析失败,我在串行监视器上收到以下消息:Mounting FS...⸮xV⸮⸮⸮⸮⸮ 无法解析配置文件 无法加载配置

  • 我的 Arduino IDE 版本:1.8.13 (Windows)
  • 配置文件有 2 个对象:

先感谢您

0 投票
1 回答
1956 浏览

c++ - ESP8266[NodeMCU] LittleFS 库问题

我正在使用Arduino IDE来实现LittleFS文件系统。但是我收到错误消息“src\LITTLEFS.cpp:17:21: fatal error: vfs_api.h: No such file or directory #include "vfs_api.h"当我尝试编译我的程序时。

代码 :

Arduino版本:1.8.13

板子:NodeMCU v3(ESP12-E Module 1.0)

闪存大小:4MB(1 MB SPIFFS)

0 投票
1 回答
635 浏览

esp8266 - SPIFFS 更改文件中特定行的内容

我已经使用 ESP32 和 SPIFFS 有一段时间了。我的项目将涉及在用户需要时更改文件中特定行的内容。该文件将始终以相同的格式保存,因此我知道将更改哪一行。

我当前的文件是这样存储的:

当用户在应用程序中更改互联网 ssid 时,我的 esp32 将从数据库中读取内容并检测更改。它将存储传入的更改并更新行。

例如,我将数据更改为“int ssid now”,数据库将读取并将“internet ssid”更改为“int ssid now”。我只想从那一行更新内容,但我什么也没找到。如果我没有通过更新找到解决方案,我将不得不从文件中删除所有内容并创建一个新内容以更改该行。

我像这样附加数据:

0 投票
0 回答
77 浏览

spiffs - 用于 Winbond W25N01 闪存设备的 Mongoose-OS VFS 驱动程序在 20 个文件后失败

我有一个 ESP32 板和一个通过 SPI 总线连接的 Winbond W25N01 (1Gbit) NAND 闪存芯片。我正在使用 Mongoose OS 和他们的 Winbond VFS 驱动程序。我正在使用 LittleFS。

它主要是有效的,但是在我打开大约 20 个文件后,打开更多文件时出现错误,说“超级块已变得不可写”。我已经编写了一些 Arduino 代码来进行最低限度的测试,我相信硬件很好,尽管它现在在面包板上。

我想知道我的配置和代码是否正确,不胜感激,

mos.yml

错误:

0 投票
1 回答
100 浏览

c++ - SPIFFS 将返回键保存到字符串中

在我的 ESP32 上使用 SPIFFS 逐行读取 .txt 文件时,它还会保存返回键,有没有办法防止这种情况发生?

阅读功能:

我的 0.txt 的内容:

我想在网页上的“字符串处理器”的帮助下显示它们:

网页:

我预计它会设置日期,但它所做的是在 %LINE_ONE% 之后在我的代码中返回,以便 html 页面无法显示日期。第二行有效,因为它是最后一行没有不可见的返回键。

在这里你可以明白我的意思: 截屏

来自德国的感谢和问候!

0 投票
0 回答
251 浏览

c++ - 使用 SPIFFS 保存的 Arduino IDE ESP32 设备

我编写 ESP32 程序并使用 SPIFFS 来保存一些数据,因为我不想在关闭设备后丢失它。

我有 2 个功能:

首先,我运行我的程序并调用 writeFile(),然后调用 readFile():

那部分工作正常。从串行监视器中,我可以看到它已成功将我的文本写入 wifi.txt。

在我运行写/读功能之后

接下来,我注释掉写函数,只留下读函数。我再次运行代码,它无法读回我的文本:

只读取文件

有人可以帮我理解为什么会这样吗?我以为如果我写一次 spiffs,我以后就可以访问它,但事实并非如此。我以前使用过 EEPROM,这似乎可行。我可以写入 EEPROM 地址并稍后简单地访问相同的地址,并且在断电后该值仍然存在。任何帮助表示赞赏。提前致谢。

更新1

在我写信后,我设法从我的 SPIFFS 中读回了数据。我错过了一个关键步骤: https ://randomnerdtutorials.com/install-esp32-filesystem-uploader-arduino-ide/

但是,现在,我遇到了另一个问题:

在我的项目文件夹中,我创建了一个应该由 SPIFFS 访问的文件夹“数据”。在那里,我创建了 2 个文件:

  1. wifi.txt
  2. 更新.bin

update.bin 现在不相关。让我们谈谈wifi.txt

写完 Spiffs 后,我现在注释掉 writeFile 函数,只省略 readFile。我的串行监视器的结果:

正如您从上面的串行监视器中看到的那样,我的程序识别出我写入我的 spifs /wifi.txt 文件的文本。然而,当我进入我的实际项目目录并打开 data/wifi.txt 时,它是 emtpy:

wifi.txt 为空

这怎么可能发生?我的程序承认里面有数据,但它不会出现在文件中。

更新2

我已经对 SPIFFS 做了一些进一步的测试。

在我的数据文件夹中,我创建了另一个 txt 文件 test.txt。在那里,我手动输入了一些文本“这是短信”。

在我的程序中,我调用了函数:

串行监视器成功打印了我输入的消息。这证明 SPIFFS 能够毫无问题地从文件中读取。

然后,我修改了我的程序:

上面的代码应该用“hello123”覆盖我写入 txt 文件的所有内容,然后我的程序应该从 Spiffs 读取“hello123”。串行监视器响应:

如您所见,它能够成功读回“hello123”。

但是,当我转到我的项目文件夹时,打开 data/test.txt,我仍然可以看到我的初始文本没有被“hello123”替换。 在此处输入图像描述

我不明白这是怎么回事..

0 投票
1 回答
280 浏览

c++ - 使用 Esp8266 Asyncwebser 流式传输文件

我正在做一个项目,我将使用 SPIFFS 编写从服务器获取的参数并显示网页。

我面临的问题是,如何使用 <ESPAsyncWebServer.h> 库流式传输该文件。当我访问http://192.168.0.1/log.txt时,我需要查看 log.txt 文件中写入的内容。我试过了,

我无法获得成功,任何人都可以纠正我的错误!其余的一切似乎都是正确的,只是我被困在流式传输该文件部分。