• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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. И доступен, и место не занимает, и читать код легко.
 
Сверху Снизу