问题标签 [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 投票
1 回答
267 浏览

node.js - 如何将十六进制字符串保存到 spiffs 中的 png 文件以创建图像

我正在尝试通过 TCP/IP 连接从 node.js 服务器发送图像文件。我使用将图像文件转换为十六进制字符串fs.createReadStream,并在客户端按预期接收了十六进制字符串。现在我需要弄清楚如何使用十六进制字符串在客户端重建图像。

Node.js 代码:

ESP32 开发板上用于将数据保存到 spiffs 中的 png 文件的客户端代码(C 语言):

来自服务器的十六进制字符串如下所示(具有 png 文件的签名):

我的研究表明我需要在客户端将此十六进制字符串转换为二进制数据。但是当我这样做时(此处未显示转换代码),由 create_file_app 函数创建的 png 文件仅显示客户端接收到的二进制字符串(正确对应于十六进制字符串),而不是显示我认为我从下载的图像服务器。如何保存此十六进制数据,以便在打开客户端创建的 png 文件时获得预期的图像?或者是否有 C 库可以帮助解决这个问题?

编辑1:

我用于从 node.js 服务器发送图像数据的代码,无需转换为十六进制或其他格式:

这是 node.js 控制台为“块”显示的内容:

在客户端,这里是 esp_http_client_read_response() 的 ESP 代码:

Esp_http_client_read_response 调用 esp_http_client_read (同样,这是由 ESP 发布的) - 这是代码:

这是我的 create_file_app() 代码,它将检索到的数据保存在 spiffs 文件中:

0 投票
1 回答
224 浏览

css - SPIFFS Upload Failed Error Code -10010 将文件上传到 ESP8266 时

我有一个 ESP8266,确切地说是 WEMOS D1 Mini,我正在使用 Arduino IDE 和插件将数据上传到 ESP8266,这是错误消息:

看起来上传文件夹中的其他文件没有任何问题,只有css和fonts文件夹中的文件失败了。

我能做些什么来解决这个问题吗?谢谢

0 投票
0 回答
18 浏览

javascript - 为什么 Gulp 会不一致地生成文件?

我有一个项目,我正在使用 SPIFFS 在 ESP32 上加载网页,Gulp 正在准备包。

当我运行 gulp 命令时,生成的 .gz 文件中是否包含 heatmap.js 文件似乎有 50/50 的机会。

这是所有的 gulp 代码:

我尝试记录错误

但是没有记录错误?

这可能是什么原因造成的?

0 投票
2 回答
772 浏览

webserver - 如何使用 ESP-IDF 将二进制数据(html + favicon)上传到 ESP32?

我正在使用 ESP-IDF 和 PlatformIO 为 ESP32 编写一个文件服务 http 服务器,但我无法将数据上传到 SPIFFS 工作。我正在尝试将 html 和 favicon 发送到 flash,以便可以在 http 上提供。

服务器的代码取自示例https://github.com/espressif/esp-idf/tree/master/examples/protocols/http_server/file_serving。明显的区别是示例项目仅使用 ESP-IDF 工具(没有 platformio),并且在示例中,数据文件与源文件位于同一目录中,在我的项目中,我为 /src 和 /data 分开了目录。SPIFFS 是使用自定义分区表配置的。

我遵循 PlatformIO 文档(https://docs.platformio.org/en/latest/platforms/espressif32.html?utm_source=platformio&utm_medium=piohome)以及 ESP(https://docs.espressif.com )的说明/projects/esp-idf/en/latest/esp32/api-guides/build-system.html#embedding-binary-data)。

我有自定义 partitions.csv 文件(与示例相同)+ 更改 menuconfig 以使用它。

在 platformio.ini 中,我添加了:

我还更改了项目 CMakeLists 文件以嵌入如下数据:

/src/CMakeLists 保持不变:

但即使有所有这些配置,当我尝试在 file_server.c 中使用这些数据时,如下所示:

我收到编译错误

我尝试将外部定义更改为:

但这并没有改变什么。

此外,在运行“构建文件系统映像”任务时,我收到此错误:

任何帮助将不胜感激,因为我觉得我做了文档所述的一切。

0 投票
0 回答
294 浏览

arduino - 如何加载配置并保存新配置 LittleFS ESP32?

我在数据文件夹中使用一个 json 文件。我想将其用作配置文件并根据需要使用值更新它。我有一个简单的草图来存储 ssid 和密码。先读出,再修改,再通过串口监视器读出,进行测试。

问题是第一次读取似乎已经被覆盖,即使我稍后调用覆盖函数,我已经在第一次读取和覆盖函数之间使用不同的延迟对其进行了测试。

这似乎很简单,那么为什么它会在调用函数之前显示覆盖的值?

这是代码:

以下是 readJSON 和 writeFile 函数:

配置.json:

输出:

0 投票
1 回答
71 浏览

c++ - 在 Arduino ide 中读取多个文本文件

我的文件夹包含 n txt 文件(文件有数值)我需要读取这些文件并将文件包含在数组中。如何读取数组中第一个 file1 的内容,然后清除数组,然后读取同一数组中的第二个 file2,依此类推?

0 投票
1 回答
47 浏览

javascript - 您可以在 spiffs 中保存一个在线图书馆,以便您可以离线访问它

你好,我的问题很简单。我做了一些物联网项目,你想知道你是否能够在 esp32 或 esp8266 上的 spiffs 中保存一个 javascript 库,然后在浏览器中检索它。

你通常这样做的方式是这样的。

但我想知道如果它保存在 spiffs 中并且你编写了正确的代码,你是否可以做这样的事情

0 投票
0 回答
23 浏览

aws-iot - ESP32 arduino x509 格式从 SPIFFS 加载无效

我正在尝试从 SPIFFS 中获取 3 个密钥,这些密钥从字符串存储到文件中(从 API 端点获取时)。

我能够使用 SPIFFS 库读取文件并在串行控制台中打印出这些值。当我检查内容时,它们很好。当我使用secureClient.setCACert()函数中的内容时,它们会“中断”并抛出异常;E][ssl_client.cpp:36] _handle_error(): [start_ssl_client():138]: (-8576) X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected

我的代码如下所示:

mqttClient.begin(...)在线(mqtt 客户端和除netvar 之外的所有变量)有几个在我的脚本中定义但未在此处共享的变量。

有人知道我在这里做错了什么吗?

当我使用以下方法定义证书和私钥时,完全相同的代码可以工作:

我究竟做错了什么?

0 投票
0 回答
10 浏览

esp32 - 在 ESP32 SPIFFS 上允许更长的文件名

我有一个 nodemcu-32s 微控制器,我在其上设置了一个简单的网络服务器,为 spiffs 目录提供服务。该项目使用platformio上传到ESP32。

我正在尝试从我的 esp 提供一个反应应用程序,但是反应应用程序构建目录的一些文件名对于 SPIFFS 来说太长了,它限制为 32 个字符。

所以我想知道,有没有办法增加这个字符限制?这样我的反应应用程序就可以适应它了吗?

0 投票
1 回答
32 浏览

reactjs - 在具有 32 个字符文件名限制的 esp32 上部署反应

我想在 esp32 微控制器上的 Web 服务器上部署一个反应应用程序,以控制同一个微控制器上的 api。

Web 服务器正在工作,可以发送文件和接收请求。唯一真正的问题是 react 应用程序的文件名太长(即 ./build/static/js/988.78dc5abd.chunk.js),而 esp32 上的文件系统仅限于文件名不超过 31 个字符。

我尝试通过编辑 webpack.config.js 来减少文件名,但这似乎不再起作用。我还尝试将它捆绑在一个我也无法弄清楚的文件中。增加文件名限制似乎也是不可能的。

有谁知道我如何在文件系统上部署一个反应应用程序,该文件系统仅限于 32 个字符的文件名?