ESP32 содержит файловую систему Serial Peripheral Interface Flash File System (SPIFFS). SPIFFS — это легковесная файловая система, созданная для микроконтроллеров с флеш-чипом, который подключается через шину SPI, например, флеш-память ESP32. В этой статье мы покажем, как легко загружать файлы в файловую систему ESP32 с помощью плагина для Arduino IDE.
Содержание
- Введение в SPIFFS
- Установка загрузчика файловой системы Arduino ESP32
- Инструкции для Windows
- Инструкции для MacOS X
- Загрузка файлов с использованием загрузчика файловой системы
- Тестирование загрузчика
Введение в 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:\Users\sarin\Documents\Arduino
. -
Перейдите в папку папки скетча и создайте папку 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. В качестве примера создайте файл .txt с текстом под названием test_example.
-
Затем, чтобы загрузить файлы, в 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)].