«Выживает глубокий сон, но не сброшен, PowerCycle или перепрошив».
Не используйте эту библиотеку, если вы просто хотите, чтобы данные в некоторых переменных пережили глубокий сон. Просто отметьте переменные RTC_DATA_ATTR , и все готово. Здесь есть учебник. Эта библиотека для вас только в том случае, если у вас есть существующий код, который использует EEPROM.h , и вы в порядке, когда вы написали что -то, что можно было бы не выжить, не выжить, потери мощности или мигание нового кода.
Вспышка подвержена износу от перезаписываемой. Flash в собственных модулях Espressif гарантированно до 100.000 записей. Но это обычно предполагает, что чип составляет 20 ° C (68 ° F). Внутри модуля он всегда будет горячее, и в сети чипов Flash Flash будет много ужасных историй.
Код ESPSPRIF ESP32 ARDUINO включает в себя реализацию Arduino EEPROM, которая пишет EEPROM, чтобы вспыхивать как Blob в их хранилище ключей NVS. Это эффективно означает, что для каждого изменения даже одного бита в «eEPROM» весь ваш eEPROM переписывается, чтобы вспыхивать, старая копия с отмеченной удаленной, и если страница вспышки заполняется, новая страница отмечена активной и так далее. Это может привести к большему количеству флэш -износа, чем можно было бы ожидать, точные детали здесь.
Если ваше приложение сохраняет батарейную батарею ESP32, но ставит его в глубокий сон, оно использует так мало мощности, что это эффективно, что касается срока службы батареи. Вы можете попробовать его снова после истечения определенного времени, и/или, если GPIO (IE кнопка) становится высоко или низким.
Эта библиотека будет подражать EEPROM в RTC RAM, которая остается питанием во время глубокого сна. Чтобы узнать больше о глубоком сне, проверьте этот простой учебник или документацию Espressif, если вы хотите все детали. Как упомянуто выше, используйте эту библиотеку только в том случае, если ваш существующий код использует EEPROM. Просто иметь некоторые переменные пережить глубокий сон намного проще, проверьте учебник.
Если вы позвоните EEPROM.toNVS() , копия ваших данных EEPROM будет сохранена в ключ «eEprom» во флэш -флэш -памяти, точно так же, как когда вы используете исходный EEPROM.h . Всякий раз, когда ESP32_RTC_EEPROM просыпается с пустой RTC RAM (которая обнаруживается по присутствию волшебного слова), он будет попытаться увидеть, есть ли сохраненная копия правильного размера. Если так, то это загружено. Вы также можете вручную вернуться к последнему сохранению, позвонив EEPROM.fromNVS() .
Функция EEPROM.wasRestored() сообщит вам, было ли содержимое автоматического восстановления из NVS в этом загрузочном цикле.
Добавьте эту библиотеку, используя менеджер библиотеки или клонируя этот репозиторий в папку библиотеки Arduino.
Замените #include <EEPROM.h> в вашем коде #include <ESP32_RTC_EEPROM.h> .
Нет 3, вы закончили.
Эта библиотека всегда будет претендовать на EEPROM_SIZE (установлен в 2048 году, изменение в файле. Вы можете установить более низкий номер при вызове EEPROM.begin() , но это число ограничивает только то, что ваш код может читать/записать (и сколько записывается на NVS Flash каждый раз, когда при резервном копировании), а не фактическая используемая RTC RAM.
Не могу повторить его достаточно часто: только полезно в сочетании с глубоким соном ESP, данные в этом фальшивом eEPROM не переживают, сброс, сброс или перепрошив