Установка загрузчика файловой системы ESP8266 в Arduino IDE

ESP8266 содержит файловую систему Serial Peripheral Interface Flash File System (SPIFFS). SPIFFS – это легковесная файловая система, созданная для микроконтроллеров с флеш-чипом. В этой статье показано, как легко загружать файлы в файловую систему ESP8266 с помощью плагина для Arduino IDE.

Установка загрузчика файловой системы ESP8266 в Arduino IDE

SPIFFS в настоящее время устарел и может быть удален в будущих выпусках ядра ESP8266. Рекомендуется использовать LittleFS вместо него. LittleFS находится в активной разработке, поддерживает каталоги и работает быстрее для большинства операций. Следуйте этому руководству вместо данного: :doc:`Установка загрузчика файловой системы ESP8266 NodeMCU LittleFS в Arduino IDE </esp32/rnt/install-esp8266-nodemcu-littlefs-arduino/index>`.

Примечание: если у вас плата ESP32, прочитайте Установка загрузчика файловой системы ESP32 в Arduino IDE.

Введение в SPIFFS

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

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

  • Создания файлов конфигурации с настройками;

  • Постоянного сохранения данных;

  • Создания файлов для хранения небольших объемов данных вместо использования microSD-карты;

  • Сохранения HTML- и CSS-файлов для создания веб-сервера;

  • Сохранения изображений, фигур и иконок;

  • И многого другого.

В большинстве наших проектов веб-серверов мы записывали HTML-код для веб-сервера как строку (String) непосредственно в скетче Arduino. С SPIFFS вы можете записать HTML и CSS в отдельные файлы и сохранить их в файловой системе ESP8266.

Установка загрузчика файловой системы Arduino ESP8266

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

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

Сначала убедитесь, что у вас установлена последняя версия Arduino IDE, и что у вас есть дополнение ESP8266 для Arduino IDE. Если нет, следуйте следующему руководству для установки дополнения:

Следуйте следующим шагам для установки загрузчика файловой системы:

1) Перейдите на страницу релизов и нажмите на файл ESP8266FS-X.zip для загрузки.

Скачивание ESP8266 SPIFFS файловой системы fs для Arduino IDE

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

Папка Tools Arduino IDE для установки ESP8266 SPIFFS файловой системы fs

3) Распакуйте загруженный файл .zip в папку Tools. У вас должна получиться похожая структура папок:

<home_dir>/Arduino-<version>/tools/ESP8266FS/tool/esp8266fs.jar
Структура папок Tools Arduino IDE для установки ESP8266 SPIFFS файловой системы fs

4) Наконец, перезапустите вашу Arduino IDE.

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

ESP8266 Sketch Data Upload Arduino IDE SPIFFS FS файловая система

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

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

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

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

Arduino IDE Show Sketch folder для создания папки data

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

ESP8266 Arduino Sketch пример файла файловой системы fs SPIFFS

4) Внутри папки *data* – это место, куда вы должны поместить файлы, которые хотите сохранить в файловой системе ESP8266. В качестве примера создайте файл .txt с каким-нибудь текстом под названием test_example.

ESP8266 Notepad тестовый пример файла файловой системы fs SPIFFS

5) В Arduino IDE, в меню Tools, выберите желаемый размер SPIFFS (это будет зависеть от размера ваших файлов)

ESP8266 выбор размера SPIFFS FS файловой системы в меню Tools

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

ESP8266 Sketch Data Upload Arduino IDE SPIFFS FS файловая система

Вы должны получить похожее сообщение в окне отладки. Файлы были успешно загружены в файловую систему ESP8266.

SPIFFS Image подключение к плате ESP8266

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

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

/*********
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com
*********/

#include "FS.h"

void setup() {
  Serial.begin(115200);

  if(!SPIFFS.begin()){
    Serial.println("An Error has occurred while mounting SPIFFS");
    return;
  }

  File file = SPIFFS.open("/test_example.txt", "r");
  if(!file){
    Serial.println("Failed to open file for reading");
    return;
  }

  Serial.println();
  Serial.println("File Content:");
  while(file.available()){
    Serial.write(file.read());
  }
  file.close();
}

void loop() {

}

Просмотреть исходный код

После загрузки откройте Монитор последовательного порта на скорости 115200 бод. Нажмите кнопку «RST» на ESP8266. Содержимое вашего файла .txt должно отобразиться в Мониторе последовательного порта.

ESP8266 SPIFFS FS файловая система пример Arduino IDE Монитор последовательного порта

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

Заключение

Использование плагина загрузчика файловой системы – это один из самых простых способов загрузки файлов в файловую систему ESP8266. Вы можете сохранять HTML- и CSS-файлы для создания веб-сервера, изображения или маленькие иконки, файлы конфигурации и т.д.

У нас есть пример проекта, в котором мы создаем веб-сервер с использованием HTML- и CSS-файлов, сохраненных в файловой системе. Пример предназначен для ESP32, но он должен быть совместим с ESP8266 с небольшими изменениями в коде.

Если вам нравится ESP8266, вам могут понравиться следующие ресурсы: