当前位置:   article > 正文

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

arudino esp32 littlefs

之前大家用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
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/351582
推荐阅读
相关标签
  

闽ICP备14008679号