Збереження налаштувань EEPROM для ESP8266, ESP32
Збереження налаштувань у вигляді структур в пам’яті контроллера.
Це робиться для зручності використання.
Метод збереження трохи відрізняється від AVR, і це потрібно пам’ятати.
Те, що пишуть на форумі, не завжди працює, по цьому тут реально працюючий приклад.
#include <EEPROM.h> // Підключаєем библиотеку EEPROM
struct SettingsStruct { // Створити структуру (все, що хочемо зберігати)
int Count; // Як приклад – лічильник
char DEVICE_NAME[12]; // Як приклад – текст
};
SettingsStruct Settings; // Оприділимо Settings як вказівник структури
void setup(void) {
EEPROM.begin(512); // Початок работи бібліотеки, и вибір кількості пам’яті
delay(500); // Затримка, рекомендовано 500мс
EEPROM.get(20, Settings); // Відкриваємо налаштування
Settings.Count = 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;