В этой статье мы будем использовать ESP32 как флешку для хранения файлов. В платах Arduino обычно для этих целей цепляют SD картридер - но поскольку флеш памяти у ESP32 много, файлы небольшого объема можно хранить непосредственно в ней.
SPIFFS расшифровывается как Flash File System с последовательным периферийным интерфейсом. SPIFFS - это легкая файловая система, созданная для микроконтроллеров. SPIFFS позволяет получить доступ к флеш-памяти, как если бы вы делали это с обычной файловой системой на вашем компьютере, но проще и с ограничениями. Вы можете читать, писать, закрывать и удалять файлы. В SPIFFS не поддерживает каталоги, поэтому все файлы сохраняются в плоской структуре, поэтому вы не можете создавать папки.
Использование SPIFFS с ESP32 особенно полезно для:
- Создания файлов конфигураций с настройками;
- Постоянное сохранение данных;
- Создавайте файлы для сохранения небольших объемов данных вместо использования карты microSD;
- Сохраните файлы HTML и CSS для создания веб-сервера;
- И многое другое.
Для Arduino IDE, есть плагин который позволяет загружать файлы прямо в файловую систему ESP32 из папки на вашем компьютере, что избавляет от необходимости записывать весь файл из скетча.
1. Переходим по ссылке и скачиваем файл ESP32FS-1.0.zip
2. Перейдите в каталог Arduino IDE и откройте папку Tools .
3. Разархивируйте загруженную папку .zip в папку Tools .
4. Перезапустите Arduino IDE. Для проверки установки проверьте наличие пункта меню:
Загрузка файлов с помощью программы загрузки файловой системы
Чтобы загрузить файлы в файловую систему ESP32, следуйте следующим инструкциям.
1) Создайте эскиз Arduino и сохраните его. В демонстрационных целях вы можете сохранить пустой эскиз.
2) Затем откройте папку с эскизами. Вы можете перейти в Скетч > Показать папку скетча . Должна открыться папка, в которой сохранен ваш эскиз.
3) Внутри этой папки создайте новую папку с именем data .
4) Внутри папки данных вы должны поместить файлы, которые хотите сохранить, в файловую систему ESP32. В качестве примера создайте файл .txt с текстом под названием test_testovich
5) Затем, чтобы загрузить файлы в Arduino IDE, вам просто нужно перейти в Инструменты > ESP32 Sketch Data Upload .
ESP32 SPIFFS (файловая система SPI Flash)
Тестирование загрузчика
Теперь давайте просто проверим, действительно ли файл был сохранен в файловой системе ESP32. Просто загрузите следующий код на свою плату ESP32.
В мониторе порта вы должны будете увидеть:
Вы успешно загрузили файлы в файловую систему ESP32 с помощью плагина.
Управление файлами в файловой системе
Как управлять файлами в файловой системе с помощью кода в среде Arduino IDE? Вы можете записывать файлы, добавлять данные в файлы, читать содержимое файлов, удалять файлы, создавать новые файлы и проверять размер файла. В следующем эскизе показано, как это сделать.
более сложные примеры того, как манипулировать файлами, можно найти в примере кода библиотеки SPIFFS. В нем есть несколько функций, которые вы можете скопировать в свой эскиз для управления файлами. Вы можете ознакомиться с этими функциями по следующей ссылке:
Взглянем на код. Он использует библиотеки SPIFFS и FS:
Сначала создайте объект File, чтобы управлять файлом. В этом случае он называется myFile , но вы можете называть его как хотите.
Создайте переменную const char * с путем к вашему файлу:
В setup () инициализируйте Serial Monitor и SPIFFS:
Весь остальной код за комментирован на русском языке и скачать все примеры можно по этой ссылке. Рекомендую также ознакомиться с полным списком статей на моем канале. Всем удачи!