• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

SPIFFS

Доброго всем дня.
Учусь. На SPIFFS нашёл пример для использования, чтобы хранить в нём данные. По типу ini файла. На данный момент 2 переменных (в примере даже в 2 файла, что меня на данном этапе не смущает).
В примере (отсюда) читается файл и отпраляется в delay на 5 секунд, а пишется по запросу с веб сервера.
Как это сделать правильно?
Пока моя идея такова: при изменении параметра на веб-сервере пишу сразу и в переменную и в файл. Чтение перенёс в setup, чтобы внести данные в переменные при перезагрузке.
Есть лучшее решение?
 
Снова доброго дня. Поскольку я уже спрашивал тут про LittleFS\SPIFFS то и продолжу тут.
Вопрос такой: Как часто можно писать в LittleFS\SPIFFS? И как часто можно читаться с LittleFS\SPIFFS?

Например задача убрать из скетча файл index.html и закинуть его в LittleFS\SPIFFS. Очень логично и красиво.
Я пошёл смотреть примеры того, как это делается, и например нашёл тут, кнопка и обновляемый данные с датчиков.

Всё в общем-то логично. При обращении к серверу (открытии страницы однократно читается html и css.
Датчики обновляются из переменных, тут тоже всё понятно.
Но при взаимодействии с кнопками происходит чтение из LittleFS\SPIFFS.
C++:
server.on("/on", HTTP_GET, [](AsyncWebServerRequest *request){
  digitalWrite(ledPin, LOW);
  request->send(LittleFS, "/index.html", String(),false, processor);
});
server.on("/off", HTTP_GET, [](AsyncWebServerRequest *request){
  digitalWrite(ledPin, HIGH);
  request->send(LittleFS, "/index.html", String(),false, processor);
});
Эт правильно, так и надо? Эт не правильно и надо по-другому? Объясните пожалуйста, или тыкнете где прочитать, потому что сам я не нашёл понятного объяснения.
 

aZholtikov

Active member
Все правильно.
Читать из LittleFS\SPIFFS можно до "посинения". :)
Записывать... Ну судя по различным источникам каждая ячейка Flash позволяет записать 10000 раз. При заливке файлов в FS они будут размещены "рандомно" в "целые" ячейки. Соответственно переписать файлы в FS например с суммарной емкостью в 1кб можно примерно 1000*(выделенный размер под FS (в Мб))*10000 раз.
Итог - "запороть" весь Flash при размещении в нем Web интерфейса вряд ли быстро получится. Быстрее умрет раздел под программу (опять же 10000 прошивок).
 

CodeNameHawk

Moderator
Команда форума
Например задача убрать из скетча файл index.html и закинуть его в LittleFS\SPIFFS. Очень логично и красиво.
А зачем его убирать из скетча? Никакой логики.
Медленнее работает, менять его надо очень редко, так что только лишнее проблемы.
Кидаете его в скетч в виде литерара и радуетесь жизни.
 
А зачем его убирать из скетча? Никакой логики.
Медленнее работает, менять его надо очень редко, так что только лишнее проблемы.
Кидаете его в скетч в виде литерара и радуетесь жизни.
В принципе тоже верно. Да и менять можно сразу с обновлением прошивки, не надо дважды загонять - отдельно прошивку, отдельно фс.
Вот видите как приятно пообщаться с умными людьми. Новые идеи, новое видение.

Я вчера закончил остановил свой первый проехт, который давно тянулся и начинался ещё в ардуино ИДЕ. И уже планирую пересесть на платформио, потому что как в общем-то все всегда говорили - ардуино ИДЕ, это про помигать светодиодом и скопипастить проект из интернета. Попробовав Visual Studio (C# начал осваивать попутно) и Visual Studio Code возвращаться в ардуино не захотелось. Удобно. Например тот же хтмл свернуть #region. И доступен, и место не занимает, и читать код легко.
 
Сверху Снизу