Petoi Doc Center
🇨🇳中文版
🇨🇳中文版
  • 欢迎查阅派拓艺文档中心
  • 快速上手指南
  • Petoi 机器人关节序号
  • 蓝牙连接
  • 上传固件
  • 关节校准
  • 红外遥控
    • 遥控器
  • 手机应用
    • 总览
    • 关节校准
    • 控制面板
  • 桌面应用
    • 总览
    • 固件上载
    • 关节校准
    • 技能创作坊
    • 调试器
  • 图形化编程
    • Petoi 编程积木
    • Mind+中的Python代码模式
    • Arduino UNO 编程积木
  • Arduino IDE
    • 为NyBoard上传程序
    • 为BiBoard上传程序
    • 使用Arduino IDE校准舵机
    • 串口监视器
  • API
    • 🖇️串口协议
    • 🐍Python serialMaster使用指南
    • 🐛MicroPython控制器
      • MicroPython上手玩
      • 配置WebREPL
      • 使用ESP-NOW协议
    • 🍓通过树莓派控制机器人
    • 🤖ROS
  • NYBOARD
    • 总述
    • NyBoard V1_0
    • NyBoard V1_1 & NyBoard V1_2
  • BiBoard
    • BiBoard V0 快速上手指南
    • 例程介绍
      • 1. GPIO例程
      • 2. 串口
      • 3. 模拟-数字转换器
      • 4. 数字-模拟转换器
      • 5. EEPROM(电擦除存储器)
      • 6. 陀螺仪IMU(MPU6050)
      • 7. 红外遥控
      • 8. PWM
      • 9. 舵机(施工)
      • 10. 经典蓝牙串口SPP
      • 11. 蓝牙低功耗(BLE)串口透传
      • 12. 文件系统SPIFFS
      • 13. Arduino IDE增加硬件分区配置选项
      • 14. 播放MP3
      • 15. WiFi和OTA的使用
    • BiBoard V1 用户指南
  • 通信模块
    • 通信模块概要说明
    • USB上载模块(CH340C)
    • 双模蓝牙模块
    • WiFi模块(ESP8266)
      • 使用ESP8266 + Python 脚本实现无线群控
  • 扩展模块
    • 扩展模块概要说明
    • MU摄像头模块
    • 超声波传感器
    • 光强传感器
    • 触摸传感器
    • 手势传感器
    • 人体移动探测器
    • 语音指令模块
    • Petoi AI Vision摄像头模块
    • 深度开发应用AI视觉模块
      • 🏋️模型训练
      • ⚖️模型量化
      • 🏌️模型部署
      • COCO数据集DIY训练
    • 机械臂
      • 升级旧款 Bittle/Bittle X
    • Micro:bit 游戏手柄
  • 应用实例
    • 技能创作
    • 姿势模仿教程
    • 可编程木偶角色
  • 历史文档
    • 为NyBoard上传1.0版本程序
  • 技术支持
    • 🛠️配套应用软件
    • 🙋‍♂️常见问题 (FAQ)
    • 烧录Bootloader
  • 资源链接 🕸
    • 🔭Official Site of Petoi
    • 💿GitHub of OpenCat
    • 📀GitHub of OpenCatEsp32
    • 🎪PetoiCamp (Forum)
Powered by GitBook
On this page
  • 1. 为什么要使用文件系统
  • 2. 安装Arduino ESP32文件系统上传器
  • 3. 安装ESP32 文件上传插件
  • 4. 使用文件系统上传器上传文件
  • 5. 文件系统使用例程

Was this helpful?

Export as PDF
  1. BiBoard
  2. 例程介绍

12. 文件系统SPIFFS

ESP32 文件系统SPIFFS配置指南

Previous11. 蓝牙低功耗(BLE)串口透传Next13. Arduino IDE增加硬件分区配置选项

Last updated 2 years ago

Was this helpful?

1. 为什么要使用文件系统

在BiBoard(ESP32)中,除了常规的程序区和引导区,我们在Flash分区中使用了文件系统。

独立分区的文件系统作用如下:

  • 在指定的地址保存数据而不会因为重新更新而删除(如校准数据,步态数据)

  • 不用外置的SD卡,节约了硬件资源

  • ;

  • ;

常见的文件系统有Windows的NTFS,exFAT,Linux的日志文件系统Ext和XFS。但是在嵌入式领域,这些大型的文件系统太过庞大。我们使用了轻量级的SPIFFS(SPI Flash File System SPI闪存文件系统),用于SPI NOR flash设备的嵌入式文件系统,支持磨损均衡、文件系统一致性检查等功能。

因为轻量,SPIFFS最大的特点在于不支持树形目录,即全部文件扁平存储于同一层。ESP32提供的SPIFFS有以下特点:

  • 目前,SPIFFS 尚不支持目录,但可以生成扁平结构。如果 SPIFFS 挂载在 /spiffs 下,在 /spiffs/tmp/myfile.txt 路径下创建一个文件则会在 SPIFFS 中生成一个名为 /tmp/myfile.txt 的文件,而不是在 /spiffs/tmp 下生成名为 myfile.txt 的文件;

  • SPIFFS 并非实时栈,每次写操作耗时不等;

  • 目前,SPIFFS 尚不支持检测或处理已损坏的块。

2. 安装Arduino ESP32文件系统上传器

您可以通过自己的Arduino代码创建/保存以及删除文件,但操作比较繁琐,您需要将数据甚至二进制文件放入Arduino的Sketch并通过运行程序创建文件。

然而有个很好用的工具,可以直接把文件从计算机上传至文件系统,虽然比起“可移动存储”的“拖-放”式拷贝略微麻烦一些,但是无论是MP3音频还是HTML网页文件,都可以很轻松的上传至Flash。下面我们来学习如何使用这个插件。

3. 安装ESP32 文件上传插件

3.1 环境准备

3.2 下载ESP32FS插件

下载ESP32FS插件的压缩包,地址:

转到“Arduino”目录,然后打开“tools”文件夹

C:\Users\{YourUserName}\Documents\Arduino\tools

将下载的.zip文件夹解压缩到 “tools” 文件夹。您应该具有以下类似的文件目录结构:

C:\Users\{YourUserName}\Documents\Arduino\tools\ESP32FS\tool\esp32fs.jar

最后,重新启动Arduino IDE。

要检查插件是否已成功安装,请打开Arduino IDE。选择开发板(ESP32 Dev Module),转到“工具”,然后检查是否具有“ ESP32 Sketch Data Upload ”选项。

4. 使用文件系统上传器上传文件

要将文件上传到ESP32文件系统,请按照以下步骤:

  • 创建一个Arduino项目工程(比如:名称 Test.ino)并保存

  • 打开该工程的目录,可以使用“项目-显示项目文件夹”选项

  • 在该文件夹内,创建一个名为“data”的新文件夹。

  • 在“data” 文件夹中,放入您要保存到SPIFFS文件系统中的文件。例如,创建一个test_example.txt文件,内容如下图所示:

  • 在Arduino IDE中,点击 “工具” - “ESP32 Sketch Data Upload”

当您看到“ SPIFFS Image Uploaded ”提示信息时,文件已成功上传到SPIFFS文件系统中。

5. 文件系统使用例程

文件系统的例程SPIFFS_Test.ino(C:\Users\{YourUserName}\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.*\libraries\SPIFFS\examples\SPIFFS_Test)来源于ESP32官方未做修改,代码实现了“增删改查”的基本操作,并提供了一个SPI flash的IO测试程序。

如果有需要,建议直接使用例程的代码进行操作。

请安装Arduino IDE(版本号:1.8.*),并且具有Arduino IDE的ESP32支持包(参考)。

保存HTML和CSS文件以建立Web服务器
保存图像,音频等文件
下载适用于Arduino IDE的ESP32 SPIFFS文件系统fs
BiBoard V0快速上手指南
https://github.com/me-no-dev/arduino-esp32fs-plugin/releases