EEPROM и SPIFFS не работают на ESP-01S
- Войдите на сайт для отправки комментариев
Пнд, 05/04/2021 - 13:02
Всем Привет! Я использую плату 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() {}
Вы используете библиотеку для работой не с EEPROM а с flesh диском,
самому поддерживать там все - тяжело, есть плагин для ардуино который это умеет делать сам, то есть в каталоге проекта делаешь папочку data и этим плагином все файлы из этого каталога загружаешь (при этом он сразу отформатирует области) а потом уже работаешь.
если не забуду вечером скину название и ссылку на плагин
Я как раз с помощью этого плагина пытался загрузить, но возникала ошибка. Я недавно узнал о том, что не на всех чипах flash памяти поддерживается SPIFFS.
поищи esp8266fs-0.5.0.zip, для esp-01s он подходит.
установка простая - просто скопировать то, что внутри архива в папку Arduino\tools\ и все.
ну и еще момент, перед каждым использованием и после каждого использования надо разрывать связь (отсоединять переходник от USB)
Если что, я этот инструмент и использовал. У меня возникает эта ошибка: 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 в инструментах. Возможно, вы знаете как можно исправить эту ошибку
в ESP-01S стоит 1 мегабайт флеша, это не много... тебе еще надо параметром определить сколько памяти ты выделишь под диск, у меня это
то есть из 1 мега я 250 килобайт отдаю под диск.
далее смотришь размер файлов, и не просто размер а сколько они будут занимать на диске !!!
спасибо. действительно в esp01 1M памяти