Установка загрузчика файловой системы ESP32 в Arduino IDE

ESP32 содержит файловую систему Serial Peripheral Interface Flash File System (SPIFFS). SPIFFS — это легковесная файловая система, созданная для микроконтроллеров с флеш-чипом, подключённым по шине SPI, как флеш-память ESP32. В этой статье мы покажем, как легко загружать файлы в файловую систему ESP32 с помощью плагина для Arduino IDE.

Установка загрузчика файловой системы ESP32 в Arduino IDE

Используете Arduino IDE 2.0? Тогда следуйте этому руководству: Arduino IDE 2: Install ESP32 LittleFS Uploader (Upload Files to the Filesystem)

Примечание

Если у вас плата ESP8266, читайте: Install ESP8266 NodeMCU LittleFS Filesystem Uploader in Arduino IDE.

Если вы используете VS Code с расширением PlatformIO, читайте следующее руководство:

Знакомство с SPIFFS

SPIFFS позволяет работать с флеш-памятью так же, как вы работаете с обычной файловой системой на компьютере, но проще и с большими ограничениями. Вы можете читать, записывать, закрывать и удалять файлы. На момент написания этой статьи SPIFFS не поддерживает директории, поэтому всё сохраняется в плоской структуре.

Использование SPIFFS с платой ESP32 особенно полезно для:

С помощью SPIFFS вы можете написать HTML и CSS в отдельных файлах и сохранить их в файловой системе ESP32. Ознакомьтесь со следующим руководством, чтобы узнать, как создать веб-сервер с файлами, хранящимися в файловой системе ESP32:

Установка загрузчика файловой системы Arduino ESP32

Вы можете создавать, сохранять и записывать файлы в файловую систему ESP32, написав код самостоятельно в Arduino IDE. Это не очень удобно, потому что вам пришлось бы вводить содержимое файлов прямо в скетче Arduino.

К счастью, существует плагин для Arduino IDE, который позволяет загружать файлы напрямую в файловую систему ESP32 из папки на вашем компьютере. Это делает работу с файлами очень простой и удобной. Давайте установим его.

Примечание

На момент написания этой статьи плагин ESP32 Filesystem Uploader не поддерживается в Arduino 2.0.

Сначала убедитесь, что у вас установлено дополнение ESP32 для Arduino IDE. Если нет, следуйте этому руководству:

Инструкции для Windows

Следуйте этим шагам для установки загрузчика файловой системы в Windows:

1) Перейдите на страницу релизов и скачайте файл ESP32FS-1.0.zip.

Скачать ESP32 SPIFFS Filesystem fs для Arduino IDE

2) Найдите расположение вашего Sketchbook. В Arduino IDE перейдите в File > Preferences и проверьте расположение Sketchbook. В моём случае путь следующий: C:\Users\sarin\Documents\Arduino.

Расположение Arduino sketchbook

3) Перейдите в папку sketchbook и создайте папку tools.

Создание папки tools в sketchbook для SPIFFS

4) Распакуйте скачанный файл .zip. Откройте его и скопируйте папку ESP32FS в папку tools, которую вы создали на предыдущем шаге. У вас должна получиться следующая структура папок:

<Sketchbook-location>/tools/ESP32FS/tool/esp32fs.jar
Структура папок плагина файловой системы

5) Наконец, перезапустите Arduino IDE.

Чтобы проверить, что плагин успешно установлен, откройте Arduino IDE. Выберите плату ESP32, перейдите в Tools и проверьте, что у вас есть пункт «ESP32 Sketch Data Upload».

ESP32 Sketch Data Upload в Arduino IDE SPIFFS FS Filesystem

Инструкции для MacOS X

Следуйте этим инструкциям, если вы используете MacOS X.

1) Перейдите на страницу релизов и скачайте файл ESP32FS-1.0.zip.

Скачать ESP32 SPIFFS Filesystem fs для Arduino IDE

2) Распакуйте файлы.

3) Создайте папку tools в /Documents/Arduino/.

4) Скопируйте распакованную папку ESP32FS в директорию tools. У вас должна получиться следующая структура папок:

~Documents/Arduino/tools/ESP32FS/tool/esp32fs.jar
Установка SPIFFS ESP32 Mac OS X структура папок

5) Наконец, перезапустите Arduino IDE.

Чтобы проверить, что плагин успешно установлен, откройте Arduino IDE. Выберите плату ESP32, перейдите в Tools и проверьте, что у вас есть пункт «ESP32 Sketch Data Upload».

ESP32 Data Sketch Upload меню Arduino IDE Mac OS

Загрузка файлов с помощью загрузчика файловой системы

Чтобы загрузить файлы в файловую систему ESP32, следуйте этим инструкциям.

1) Создайте скетч Arduino и сохраните его. Для демонстрации можно сохранить пустой скетч.

2) Затем откройте папку скетча. Вы можете перейти в Sketch > Show Sketch Folder. Откроется папка, где сохранён ваш скетч.

Arduino IDE Show Sketch folder для создания папки data

3) Внутри этой папки создайте новую папку с именем data.

ESP32 Arduino Sketch пример файловой системы SPIFFS

4) В папке data нужно разместить файлы, которые вы хотите сохранить в файловой системе ESP32. В качестве примера создайте файл .txt с текстом под названием test_example.

ESP32 Notepad Test Example файл файловой системы SPIFFS

5) Затем, чтобы загрузить файлы, в Arduino IDE просто перейдите в Tools > ESP32 Sketch Data Upload.

ESP32 Sketch Data Upload в Arduino IDE SPIFFS FS Filesystem

Загрузчик перезапишет всё, что было ранее сохранено в файловой системе.

Примечание

На некоторых платах разработки ESP32 нужно нажать встроенную кнопку BOOT, когда вы увидите сообщение «Connecting ……._____……»

SPIFFS Image подключение к плате ESP32

Файлы были успешно загружены в файловую систему ESP32, когда вы увидите сообщение «SPIFFS Image Uploaded».

SPIFFS Image загружен на плату ESP32

Тестирование загрузчика

Теперь давайте проверим, действительно ли файл был сохранён в файловой системе ESP32. Просто загрузите следующий код на плату ESP32.

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com
*********/

#include "SPIFFS.h"

void setup() {
  Serial.begin(115200);

  if(!SPIFFS.begin(true)){
    Serial.println("An Error has occurred while mounting SPIFFS");
    return;
  }

  File file = SPIFFS.open("/test_example.txt");
  if(!file){
    Serial.println("Failed to open file for reading");
    return;
  }

  Serial.println("File Content:");
  while(file.available()){
    Serial.write(file.read());
  }
  file.close();
}

void loop() {

}

Просмотреть исходный код

После загрузки откройте Serial Monitor на скорости 115200 бод. Нажмите кнопку «ENABLE/RST» на ESP32. В Serial Monitor должно появиться содержимое вашего файла .txt.

ESP32 SPIFFS FS Filesystem пример Arduino IDE Serial Monitor

Вы успешно загрузили файлы в файловую систему ESP32 с помощью плагина.

Заключение

Использование плагина загрузчика файловой системы — один из самых простых способов загрузки файлов в файловую систему ESP32. Ознакомьтесь со следующим проектом, чтобы узнать, как создать веб-сервер с использованием HTML и CSS файлов, хранящихся в файловой системе: ESP32 Web Server using SPIFFS (SPI Flash File System).

Другой способ постоянного сохранения данных — использование библиотеки ESP32 Preferences. Она особенно полезна для сохранения данных в формате ключ:значение во флеш-памяти. Ознакомьтесь со следующим руководством:

Дополнительные ресурсы по ESP32:

Источник: Random Nerd Tutorials — :doc:`Install ESP32 Filesystem Uploader in Arduino IDE <../install-esp32-filesystem-uploader-arduino-ide/index>`