ESP32 /ESP8266在VS Code and PlatformIO上传文件系统 (SPIFFS)

本文指导如何在VSCode和PlatformIO环境中,轻松将文件上传到ESP32的SPIFFS文件系统,以实现Web服务器配置和数据持久化。步骤包括创建文件夹、编译 BIN 文件并进行上传测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESP32 /ESP8266在VS Code and PlatformIO上传文件系统 (SPIFFS)


学习如何上传文件到ESP32板文件系统(SPIFFS)使用VS Code与PlatformIO IDE扩展(快速和简单)。使用ESP32的文件系统可以保存HTML、CSS和JavaScript文件来构建web服务器,而不必在代码中编写所有内容。

引入SPIFFS

  • ESP32包含spiff (Serial Peripheral Interface Flash File System)文件系统。SPIFFS是一种轻量级的文件系统,为微控制器创建了一个flash芯片,通过SPI总线连接,如ESP32闪存。

  • SPIFFS允许您像在计算机的普通文件系统中那样访问闪存,但更简单和更有限。您可以读取、写入、关闭和删除文件。SPIFFS不支持目录,所以所有内容都保存在扁平结构上。

在ESP32板上使用SPIFFS特别有用:

1.创建配置文件与设置;
2. 永久保存数据;
3. 创建文件来保存少量数据,而不是使用microSD卡;
4. 保存HTML, CSS和JavaScript文件,构建一个web服务器;
5. 保存图像,数字和图标;

上传文件到ESP32 /esp8266 SPIFFS

  1. 在项目的根目录下创建data文件名的文件夹
    在这里插入图片描述

  2. 项目文件夹架构
    在这里插入图片描述

  • 分支展开图
    在这里插入图片描述

编译和上传文件系统

  • 🌿打开工程菜单目录
    在这里插入图片描述

  • 🌿编译文件系统文件为.BIN文件,为上传做准备工作。
    在这里插入图片描述

  • 🌿上传文件系统
    在这里插入图片描述

  • 🌿串口打印文件内容:
    在这里插入图片描述

  • 📚测试工程:

链接:https://pan.baidu.com/s/1jHWQ_FY1aTMiQRHHNFbmrQ 
提取码:pmvn

上传文件系统时,一定要关闭串口调试窗口,否则会上传失败!

在这里插入图片描述

### 使用 ESP32 连接 Wi-Fi 并下载文件 为了实现 ESP32 连接到 Wi-Fi 网络并从中下载文件,可以按照如下方法操作: #### 准备工作 确保已安装必要的开发工具链以及库支持。对于基于 Arduino IDEPlatformIO 开发环境而言,需确认 `WiFi` 和 `HTTPClient` 库已被正确加载。 #### 配置 Wi-Fi 参数 定义 SSID 及密码以便后续连接至指定热点: ```cpp const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; ``` #### 初始化 Wi-Fi 连接过程 利用内置函数完成 Wi-Fi 设置初始化,并等待直到成功建立连接为止: ```cpp void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to the WiFi network"); } ``` #### 实现 HTTP 文件获取逻辑 创建专门用于处理 GET 请求的方法来访问远程服务器上的资源路径;这里假设目标是一个公开可读取的小型文本文件或其他二进制数据流。 ```cpp #include <HTTPClient.h> void downloadFile(const String& url, const String& localPath){ if(WiFi.status()==WL_CONNECTED){ // Check WiFi connection status HTTPClient http; http.begin(url); int httpResponseCode = http.GET(); if(httpResponseCode>0){ File file = SPIFFS.open(localPath,"w"); // Open a new file on device storage if(file){ String payload=http.getString(); file.print(payload); file.close(); Serial.printf("Downloaded and saved %s\n",localPath.c_str()); }else{ Serial.println("Failed to create file."); } http.end(); }else{ Serial.printf("Error code: %d\n",httpResponseCode); } }else{ Serial.println("Not connected to WiFi."); } } void loop(){ static unsigned long lastTime=millis()-60000; // One minute interval if(millis()-lastTime>=60000){ lastTime+=60000; downloadFile("http://example.com/file.txt","/spiffs/downloaded_file.txt"); } } ``` 此段代码展示了如何配置 ESP32 设备以连接特定的 Wi-Fi 接入点,并通过发送 HTTP 请求的方式从互联网上抓取所需资料保存到本地闪存系统中[^1]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值