ESP32C3关于arduino开发,LittleFS等文件系统不可不知的新变化。

本文讲述了在ESP32-C3上开发时,ArduinoIDE不支持直接上传文件到ESP32-C3的数据文件夹。作者介绍了通过WindowsIIS服务器和HTTPClient库实现的临时解决方案,允许在开发和部署阶段方便地传输文件。
摘要由CSDN通过智能技术生成

之前大家用arduino1.x版本开发ESP32或者ESP8266,上传文件都非常简单下载一个插件,在ino文件旁边创建一个data文件夹把各种文件一股脑丢进去,传完程序之后点一下上传文件就到文件系统里面了。在这里插入图片描述
包括之前画板我都一直以为ESP32-C3也支持这个工具。就算arduino2.0没有这个插件也没关系大不了开两个IDE开发。
今天踩了坑才知道我想太多了,无论那个版本的arduino都不支持ESP32-C3上传文件系统的data。

然后通过以下方案解决研发调试阶段的文件上传,完成部署之后甚至比之前更方便了。

电脑固定IP
在这里插入图片描述

通过windows的iis开启服务器功能。
控制面板 搜索 服务 打开程序和功能查看已安装的更新

在这里插入图片描述
启用或关闭windows功能
在这里插入图片描述
把iis服务都开了,FTP也可以不开。
在这里插入图片描述
点击开始 然后搜索iis
在这里插入图片描述
文件书最下面点浏览就可以调到根目录了
在这里插入图片描述
这就是根目录
在这里插入图片描述

打开ip默认是这个主页,这不重要我们可以打开我们的文件就可以了。
在这里插入图片描述

#include <WiFi.h>
#include <HTTPClient.h>
#include "FS.h"
#include "LittleFS.h"
// 替换为你的 WiFi 网络名称和密码
const char* ssid = "123";
const char* password = "12345678";

void setup() {
  Serial.begin(115200);
  // delay(2000);  // 延迟,以便于观察启动日志
  // 连接 WiFi
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("连接WiFi.......");
  }

  // 初始化 LittleFS
  while (!LittleFS.begin()) {
    Serial.println("LittleFS 打开失败了!!!");
    if (LittleFS.format())
      Serial.println("LittleFS 格式化完成。");
  }
  Serial.println("LittleFS 文件系统正常。");

  Serial.println("wifi链路连接成功");
  String urlList[] = {
    "http://192.168.0.250/file1.txt",
    "http://192.168.0.250/主页.html",
    // 更多 URL ...
  };
  if (!LittleFS.exists("/完成下载.txt")) {
    // 遍历 URL 列表
    bool errFlag = 0;
    for (const auto& url : urlList) {
      errFlag;
      // 从 URL 中提取域名和文件名
      int domainEndIndex = url.indexOf('/', 7);  // HTTP 协议后的第一个斜杠是域名结束的位置
      String domain = url.substring(0, domainEndIndex);
      String filename = url.substring(domainEndIndex + 1);

      // 创建 HTTP 客户端并开始下载文件
      HTTPClient http;
      http.begin(url);

      int httpCode = http.GET();
      if (httpCode > 0) {
        // 文件内容保存在 HTTP 服务器响应体中
        String payload = http.getString();

        // 打开文件准备写入
        File file = LittleFS.open("/" + filename, "w");
        if (!file) {
          Serial.println("打开文件失败");
          http.end();
          errFlag = 1;
          continue;
        }

        // 将内容写入文件
        file.print(payload);
        file.close();

        Serial.println("文件下载完成: " + filename);
      } else {
        Serial.println("HTTP 获取失败: " + String(httpCode));
        errFlag = 1;
      }

      http.end();  // 关闭 HTTP 连接
    }
    if (1 == errFlag)
      Serial.println("获取过程中有问题不生成:完成任务。下次开机继续下载。");
    else {
      Serial.println("获取过程木有问题,生成:完成下载。下次开机不用下载。");
      File file = LittleFS.open("/完成下载.txt", "w");
      file.close();
    }
  } else
    Serial.println("之前已经完成下载,本次开机无须进入下载过程。");
  pinMode(12, OUTPUT);
}

void loop() {
  digitalWrite(12, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(100);              // wait for a second
  digitalWrite(12, LOW);   // turn the LED off by making the voltage LOW
  delay(100);              // wait for a second
}

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ESP32-C3是一款由Espressif Systems开发的低功耗Wi-Fi和蓝牙SoC。它是ESP32系列的最成员,针对低功耗应用进行了优化。对于使用Arduino开发框架的应用来说,ESP32-C3也提供了相应的支持。 要在ESP32-C3上使用Arduino开发,你需要先安装ESP32-C3开发环境。以下是基本的步骤: 1. 下载并安装Arduino IDE。可以从Arduino官方网站上下载适用于你的操作系统的IDE版本。 2. 打开Arduino IDE,在"文件"菜单中选择"首选项"。在打开的对话框中,找到"附加开发板管理器URL"一栏,点击右侧的图标。 3. 在弹出的对话框中,输入以下网址:https://github.com/espressif/arduino-esp32c3/releases/download/1.0.6/package_esp32c3_index.json 然后点击"确定"。 4. 返回到首选项对话框,确保"附加开发板管理器URL"一栏中的网址已经添加,并点击"确定"。 5. 在Arduino IDE的工具菜单中,选择"开发板",然后选择"开发板管理器"。在打开的对话框中,搜索"esp32c3"。 6. 找到"esp32c3 by Espressif Systems"并点击"安装"。 7. 安装完成后,回到工具菜单中,选择"开发板",然后选择"ESP32-C3 Dev Module"作为你的开发板。 现在你已经完成了ESP32-C3开发环境设置。你可以使用Arduino IDE编写和上传代码到ESP32-C3上,实现各种应用,例如控制IO口、连接Wi-Fi、蓝牙通信等。你可以参考ESP32-C3的官方文档和Arduino的官方文档来了解更多关于使用ESP32-C3进行Arduino开发的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值