19K подписчиков

ESP32 SPIFFS (файловая система SPI Flash)

2,2K прочитали

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

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

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

  • Создания файлов конфигураций с настройками;
  • Постоянное сохранение данных;
  • Создавайте файлы для сохранения небольших объемов данных вместо использования карты microSD;
  • Сохраните файлы HTML и CSS для создания веб-сервера;
  • И многое другое.

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

1. Переходим по ссылке и скачиваем файл ESP32FS-1.0.zip

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.

2. Перейдите в каталог Arduino IDE и откройте папку Tools .

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-2

3. Разархивируйте загруженную папку .zip в папку Tools .

4. Перезапустите Arduino IDE. Для проверки установки проверьте наличие пункта меню:

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-3

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

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

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

2) Затем откройте папку с эскизами. Вы можете перейти в Скетч > Показать папку скетча . Должна открыться папка, в которой сохранен ваш эскиз.

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

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

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-4

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

ESP32 SPIFFS (файловая система SPI Flash)

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-5

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

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

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-6

В мониторе порта вы должны будете увидеть:

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-7

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

Управление файлами в файловой системе

Как управлять файлами в файловой системе с помощью кода в среде Arduino IDE? Вы можете записывать файлы, добавлять данные в файлы, читать содержимое файлов, удалять файлы, создавать новые файлы и проверять размер файла. В следующем эскизе показано, как это сделать.

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-8
В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-9

более сложные примеры того, как манипулировать файлами, можно найти в примере кода библиотеки SPIFFS. В нем есть несколько функций, которые вы можете скопировать в свой эскиз для управления файлами. Вы можете ознакомиться с этими функциями по следующей ссылке:

Взглянем на код. Он использует библиотеки SPIFFS и FS:

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-10

Сначала создайте объект File, чтобы управлять файлом. В этом случае он называется myFile , но вы можете называть его как хотите.

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-11

Создайте переменную const char * с путем к вашему файлу:

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-12

В setup () инициализируйте Serial Monitor и SPIFFS:

В этой статье мы будем использовать ESP32 как флешку для хранения файлов.-13

Весь остальной код за комментирован на русском языке и скачать все примеры можно по этой ссылке. Рекомендую также ознакомиться с полным списком статей на моем канале. Всем удачи!