В этом уроке вы узнаете, как загружать файлы в файловую систему ESP32 (LittleFS) с помощью плагина для Arduino IDE (версии 1.8.X). LittleFS — это легковесная файловая система, созданная для микроконтроллеров, которая позволяет вам получить доступ к флеш-памяти так же, как в стандартной файловой системе на вашем компьютере, но с упрощениями и ограничениями. Плагин, который мы установим, позволяет использовать три разные файловые системы: LittleFS, SPIFFS или FatFS.
Загрузка файлов в LittleFS ESP32 с использованием Arduino IDE
Содержание
- Введение в LittleFS
- Установка загрузчика файловой системы ESP32 в Arduino IDE
- Загрузка файлов в LittleFS ESP32 с использованием загрузчика файловой системы
- Тестирование загрузчика файловой системы ESP32
Введение в LittleFS
LittleFS — это легковесная файловая система, созданная для микроконтроллеров, которая позволяет вам получить доступ к флеш-памяти так же, как в стандартной файловой системе на вашем компьютере, но с упрощениями и ограничениями. Вы можете читать, записывать, закрывать и удалять файлы. Использование файловой системы с платами ESP32 особенно полезно для:
- Создания конфигурационных файлов с настройками;
- Постоянного сохранения данных;
- Создания файлов для сохранения небольших объемов данных вместо использования карты microSD;
- Сохранения файлов HTML, CSS и JavaScript для создания веб-сервера;
- Сохранения изображений, фигур и иконок;
- И многого другого.
Установка загрузчика файловой системы ESP32 в Arduino IDE
В настоящее время существует плагин для Arduino IDE (версии 1.8.X), который позволяет упаковывать и загружать файлы в образ файловой системы SPIFFS, LittleFS или FatFS в файловую систему ESP32.
Примечание: в большинстве наших проектов мы используем SPIFFS для файловой системы ESP32. Эта система по-прежнему совместима с ESP32, и вы можете использовать SPIFFS без каких-либо проблем. Однако в настоящее время многие библиотеки переходят на LittleFS.
Плагин, который мы установим, совместим как с SPIFFS, так и с LittleFS. Это преимущество перед более старым плагином, и вы можете продолжать использовать SPIFFS.
Есть несколько преимуществ использования LittleFS по сравнению с SPIFFS:
- LittleFS оптимизирован для низкого использования ресурсов и использует алгоритм выравнивания износа, который равномерно распределяет записи по всей флеш-памяти, продлевая ее срок службы.
- LittleFS обеспечивает более быструю монтировку и доступ к файлам благодаря использованию структуры индексирования каталогов.
- LittleFS минимизирует риск повреждения данных при отключении питания или сбоях системы.
- LittleFS находится в активной разработке.
Инструкции для Windows
Следуйте следующим шагам для установки загрузчика файловой системы, если вы используете Windows:
-
Перейдите на страницу выпусков и скачайте последний файл esp32fs.zip.
-
Распакуйте загруженный файл. У вас должна появиться папка под названием esp32fs с файлом esp32fs.jar внутри.
-
Найдите местоположение вашей Sketchbook. В Arduino IDE перейдите в Файл > Настройки и проверьте местоположение вашей Sketchbook. В моем случае это путь: C:\Users\username\Documents\Arduino.
-
Перейдите в папку Sketchbook и создайте папку tools, если она еще не существует (убедитесь, что приложение Arduino IDE закрыто).
-
Внутри папки tools создайте другую папку под названием ESP32FS, если она еще не создана.
-
Внутри папки ESP32FS создайте папку под названием tool.
-
Скопируйте файл esp32fs.jar в папку tool (если у вас уже есть файл esp32fs.jar от предыдущего плагина, удалите его и замените на новый). Структура каталогов будет выглядеть так:<home_dir>/Arduino/tools/ESP32FS/tool/esp32fs.jar
-
Теперь вы можете открыть Arduino IDE.
Чтобы проверить, был ли плагин успешно установлен, откройте Arduino IDE и выберите свою плату ESP32. В меню Инструменты проверьте, есть ли опция "ESP32 Sketch Data Upload". Нажмите на эту опцию. Появится окно, в котором вам нужно будет выбрать файловую систему, которую вы хотите использовать.
Как видите, у вас есть возможность выбрать LittleFS, SPIFFS или FatFS, и вы также можете при необходимости стереть флеш-память.
Поздравляем! Вы успешно установили плагин загрузчика файловой системы для ESP32 в Arduino IDE.
Инструкции для Mac OS X
Следуйте следующим инструкциям, если вы используете MacOS X.
-
Перейдите на страницу выпусков и скачайте последний файл esp32fs.zip.
-
Распакуйте файлы. У вас должна появиться папка под названием esp32fs с файлом esp32fs.jar внутри.
-
Создайте папку под названием tools в /Documents/Arduino/, если она еще не создана.
-
Внутри папки tools создайте другую папку под названием ESP32FS.
-
Внутри папки ESP32FS создайте папку под названием tool. Структура каталогов будет выглядеть так: <home_dir>/Arduino/tools/ESP32FS/tool/
-
Скопируйте распакованный файл esp32fs.jar в папку tool (если у вас уже есть файл esp32fs.jar от предыдущего плагина, удалите его и замените на новый). У вас должна получиться аналогичная структура папок.
-
Теперь вы можете открыть Arduino IDE.
Чтобы проверить, был ли плагин успешно установлен, откройте Arduino IDE и выберите свою плату ESP32. В меню Инструменты проверьте, есть ли опция "ESP32 Sketch Data Upload".
Нажмите на эту опцию. Появится окно, в котором вам нужно будет выбрать файловую систему, которую вы хотите использовать.
Как видите, у вас есть возможность выбрать LittleFS, SPIFFS или FatFS, и вы также можете при необходимости стереть флеш-память.
Поздравляем! Вы успешно установили плагин загрузчика файловой системы для ESP32 в Arduino IDE.
Загрузка файлов в LittleFS ESP32 с использованием загрузчика файловой системы
Чтобы загрузить файлы в файловую систему LittleFS ESP32, следуйте следующим инструкциям.
-
Создайте скетч Arduino и сохраните его. Для демонстрации вы можете сохранить пустой скетч.
-
Затем откройте папку скетча. Перейдите в Скетч > Показать папку скетча. Откроется папка, где сохранен ваш скетч.
-
Внутри этой папки создайте новую папку под названием data.
-
Внутри папки data должны находиться файлы, которые вы хотите сохранить в файловой системе ESP32. В качестве примера создайте файл .txt с текстом под названием test_example.
-
Затем, чтобы загрузить файлы, в Arduino IDE просто перейдите в Инструменты > ESP32 Sketch Data Upload.
-
Выберите опцию LittleFS и нажмите ОК.
Убедитесь, что Серийный монитор закрыт перед загрузкой файлов, иначе вы получите ошибку, связанную с серийной связью, и файлы не будут загружены.
Загрузчик перезапишет всё, что уже было сохранено в файловой системе.
Примечание: на некоторых платах ESP32 вам нужно нажать кнопку BOOT на плате примерно на две секунды, чтобы загрузить файлы.
Файлы были успешно загружены в файловую систему ESP32, когда вы видите сообщение "LittleFS Image Uploaded".
Тестирование загрузчика файловой системы ESP32
Теперь давайте проверим, был ли файл действительно сохранен в файловой системе ESP32. Просто загрузите следующий код на вашу плату ESP32.
#include "LittleFS.h"
void setup() {
Serial.begin(115200);
if (!LittleFS.begin()) {
Serial.println("Произошла ошибка при монтировании LittleFS");
return;
}
File file = LittleFS.open("/test_example.txt", "r");
if (!file) {
Serial.println("Не удалось открыть файл для чтения");
return;
}
Serial.println("Содержимое файла:");
while (file.available()) {
Serial.write(file.read());
}
file.close();
}
void loop() {
}
После загрузки этого кода на вашу плату ESP32, откройте Серийный монитор в Arduino IDE на скорости 115200 бод. Затем нажмите кнопку «ENABLE/RST» на вашей плате ESP32. В Серийном мониторе должно отобразиться содержимое файла test_example.txt
, который вы ранее загрузили в файловую систему LittleFS.
Заключение
В этом уроке вы установили плагин для Arduino IDE, который позволяет загружать файлы в файловую систему ESP32. Этот плагин поддерживает три разные файловые системы: SPIFFS, LittleFS и FatFS.
Несмотря на то, что многие библиотеки и проекты переходят на использование LittleFS, SPIFFS по-прежнему используется, и ваши предыдущие проекты, использующие SPIFFS, должны продолжать работать.
Поскольку новый плагин поддерживает как SPIFFS, так и LittleFS, вам следует рассмотреть возможность его установки вместо плагина для SPIFFS, чтобы получить больше гибкости в выборе файловой системы.