Установка загрузчика файловой системы ESP32 в Arduino IDE
ESP32 содержит файловую систему Serial Peripheral Interface Flash File System (SPIFFS). SPIFFS — это легковесная файловая система, созданная для микроконтроллеров с флеш-чипом, который подключается через шину SPI, например, флеш-память ESP32. В этой статье мы покажем, как легко загружать файлы в файловую систему ESP32 с помощью плагина для Arduino IDE.
Содержание
Введение в SPIFFS
SPIFFS позволяет вам получить доступ к флеш-памяти так, как если бы вы использовали обычную файловую систему на своем компьютере, но проще и с ограничениями. Вы можете читать, записывать, закрывать и удалять файлы. На момент написания этой статьи SPIFFS не поддерживает каталоги, поэтому все сохраняется в плоской структуре.
Использование SPIFFS с платой ESP32 особенно полезно для:
Создания конфигурационных файлов с настройками;
Постоянного хранения данных;
Создания файлов для сохранения небольших объемов данных вместо использования карты microSD;
Сохранения файлов HTML и CSS для создания веб-сервера;
Сохранения изображений, фигур и иконок;
И многое другое.
С помощью SPIFFS вы можете записывать HTML и CSS в отдельные файлы и сохранять их в файловой системе ESP32. Ознакомьтесь с этим руководством, чтобы узнать, как создать веб-сервер с файлами, хранящимися в файловой системе ESP32: [Веб-сервер ESP32 с использованием SPIFFS (SPI Flash File System)](ссылка на ресурс).
Установка загрузчика файловой системы Arduino ESP32
Вы можете создавать, сохранять и записывать файлы в файловую систему ESP32, написав код самостоятельно в Arduino IDE. Это не очень удобно, так как вам пришлось бы вводить содержимое ваших файлов в скетче Arduino.
К счастью, существует плагин для Arduino IDE, который позволяет загружать файлы напрямую в файловую систему ESP32 из папки на вашем компьютере. Это делает работу с файлами очень простой и удобной. Давайте установим его.
Примечание: на момент написания этой статьи плагин ESP32 Filesystem Uploader не поддерживается в Arduino 2.0.
Убедитесь, что у вас установлен аддон ESP32 для Arduino IDE.
Инструкции для Windows
Следуйте следующим шагам для установки загрузчика файловой системы, если вы используете Windows:
Перейдите на страницу выпусков и скачайте файл
ESP32FS-1.0.zip
.

Найдите местоположение вашей Sketchbook. В Arduino IDE перейдите в Файл> Настройки проверьте местоположение вашей Sketchbook. В моем случае это путь: C:UserssarinDocumentsArduino.

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

Если вы не можете найти папку в этом месте, попробуйте проверить по следующему пути: C:Program Files (x86)Arduino.
Таким образом, вы укажете возможное альтернативное местоположение папки скетча для пользователей, которые не смогли найти ее в стандартном месте.
Разархивируйте скачанную папку .zip. Откройте её и скопируйте папку ESP32FS в папку tools, которую вы создали на предыдущем шаге. У вас должна быть похожая структура папок:
<Расположение папки скетча>/tools/ESP32FS/tool/esp32fs.jar

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

Инструкции для macOS
Следуйте следующим инструкциям, если вы используете MacOS X.
Перейдите на страницу выпусков и скачайте файл
ESP32FS-1.0.zip
.

Разархивируйте файлы.
Создайте папку под названием tools в /Documents/Arduino/.
Скопируйте распакованную папку ESP32FS в директорию tools. У вас должна быть похожая структура папок:
~Documents/Arduino/tools/ESP32FS/tool/esp32fs.jar

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

Загрузка файлов с использованием загрузчика файловой системы
Чтобы загрузить файлы в файловую систему ESP32, следуйте следующим инструкциям.
Создайте скетч Arduino и сохраните его. Для демонстрации вы можете сохранить пустой скетч.
Затем откройте папку скетча. Перейдите в Скетч> Показать папку скетча. Откроется папка, где сохранен ваш скетч.

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

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

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

Загрузчик перезапишет всё, что уже было сохранено в файловой системе.
Примечание: на некоторых платах ESP32 вам нужно нажать кнопку BOOT на плате, когда вы видите сообщение «Connecting …….____……».

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

Тестирование загрузчика
Теперь давайте проверим, действительно ли файл был сохранен в файловой системе ESP32. Просто загрузите следующий код на вашу плату ESP32.
#include <SPIFFS.h>
void setup() {
Serial.begin(115200);
if(!SPIFFS.begin(true)){
Serial.println("Произошла ошибка при монтировании SPIFFS");
return;
}
File file = SPIFFS.open("/test_example.txt");
if(!file){
Serial.println("Не удалось открыть файл для чтения");
return;
}
Serial.println("Содержимое файла:");
while(file.available()){
Serial.write(file.read());
}
file.close();
}
void loop() {
}
После загрузки откройте Серийный монитор на скорости 115200. Нажмите кнопку «ENABLE/RST» на плате ESP32. Он должен вывести содержимое вашего файла .txt в Серийный монитор.

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