Сохранение настроек EEPROM для ESP8266, ESP32

Сохранение настроек в виде структуры в память контроллера.
Это делается для удобства использования.

Метод сохранения немного отличается от AVR, и это нужно помнить.
То что пишут на форум, не всегда работает, по этому здесь реальный работающий пример.

Пример кода

#include <EEPROM.h> // Подключаем библиотеку EEPROM

struct SettingsStruct { // Создаем структуру (все, что хотим хранить в памяти)
    int Count; // Для примера, просто посчитаем Count
  char DEVICE_NAME[12]; // Так можно хранить строки
};
SettingsStruct Settings; // Определяем Settings как указатель структуры
void setup(void) {
  EEPROM.begin(512); // Начало работы библиотеки, и выбор количества памяти
  delay(500); // Задержка, рекомендуемая 500мс
  EEPROM.get(20, Settings); // Открываем настройки (запись в структуру Settings)
  Settings.Count++; // Обращение к настройкам, прибавим 1
  EEPROM.put(20, Settings); EEPROM.commit(); // Сохранение настроек
}
… Далее можете выводить Count любым удобным способом
Ключевое здесь:
#include <EEPROM.h> — подключаем библиотеку
struct SettingsStruct {} — создаем структуру
EEPROM.begin(512); — запускаем библиотеку, резервируем байты в памяти, от 4 до 4000
EEPROM.get(20, Settings); — считываем настройки в структуру
EEPROM.put(20, Settings); — считываем структуру в память
EEPROM.commit(); — сохраняем настройки в памяти
Используя данный код, мы можем быстро открывать и сохранять настройки, без лишних библиотек и кода.
А также, удобно работать с параметрами через Settings.setting
К примеру: Settings.name = «Device  name»; Settings.auto = true;
1031