EEPROM и SPIFFS не работают на ESP-01S

Мир Ардуинщиков
Offline
Зарегистрирован: 18.05.2020

Всем Привет! Я использую плату ESP-01S на основе ESP8266. Пробовал записывать данные в EEPROM с помощью скетча из примеров к этой плате, при повторном включении данные не сохраняются, при использовании EEPROM.commit() возвращает false. Попытался загрузить файл в ESP-01S через инструмент загрузки для ESP8266, появлялась ошибка. Позже оказалось, что SPIFFS даже не монтируется. Плату проверил, работает исправно. Могу приложить скетч для работы с SPIFFS:

#include <FS.h>
String my_settings;
 
void setup() {
  Serial.begin(115200); // настраиваем скорость работы COM порта
  delay(5000);
  if (!SPIFFS.begin()){ // если не удалось монтировать SPIFFS память
    Serial.println("Ошибка при монтировании SPIFFS :(");
  } else {
    Serial.println("Монтирование SPIFFS прошло успешно!");  
  }

  File settings = SPIFFS.open("/Settings.txt", "w"); // открываем файл с настройками для чтения
  if (!settings) { // если не удалось открыть файл с настройками
    Serial.println("Не удалось открыть файл с настройками для чтения :(");
    return; // выходим из функции
  } else {
    Serial.println("Файл с настройками успешно открыт для чтения!");
  }

  while (settings.available()) { // прочитываем данные из файла с настройками
    my_settings = settings.readString(); // записываем данные из файла с настройками
    Serial.println("Содержимое файла: " + String(my_settings));
  }
  settings.close(); // закрываем файл с настройками
}
 
void loop() {}

 

vde69
Offline
Зарегистрирован: 10.01.2016

Вы используете библиотеку для работой не с EEPROM а с flesh диском,

самому поддерживать там все - тяжело, есть плагин для ардуино который это умеет делать сам, то есть в каталоге проекта делаешь папочку data и этим плагином все файлы из этого каталога загружаешь (при этом он сразу отформатирует области) а потом уже работаешь.

если не забуду вечером скину название и ссылку на плагин

 

Мир Ардуинщиков
Offline
Зарегистрирован: 18.05.2020

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

vde69
Offline
Зарегистрирован: 10.01.2016

поищи esp8266fs-0.5.0.zip, для esp-01s он подходит.

установка простая - просто скопировать то, что внутри архива в папку Arduino\tools\ и все.

ну и еще момент, перед каждым использованием и после каждого использования надо разрывать связь (отсоединять переходник от USB)

Мир Ардуинщиков
Offline
Зарегистрирован: 18.05.2020

Если что, я этот инструмент и использовал. У меня возникает эта ошибка: esptool.FatalError: File C:\Users\240C9~1\AppData\Local\Temp\arduino_build_478043/SmartSocket.spiffs.bin (length 1024000) at offset 3145728 will not fit in 1048576 bytes of flash. Use --flash-size argument, or change flashing address. Насколько я понял, эта ошибка связана с тем, что указанный размер SPIFFS памяти не помещается в реальный. Я уже пытался изменять размер flash в инструментах. Возможно, вы знаете как можно исправить эту ошибку

vde69
Offline
Зарегистрирован: 10.01.2016

в ESP-01S стоит 1 мегабайт флеша, это не много... тебе еще надо параметром определить сколько памяти ты выделишь под диск, у меня это 

custom_eesz=generic_1M256

то есть из 1 мега я 250 килобайт отдаю под диск.

далее смотришь размер файлов, и не просто размер а сколько они будут занимать на диске !!! 

olegue
Offline
Зарегистрирован: 23.09.2020

спасибо. действительно в esp01 1M памяти