===== ESP32 Daten und Einstellungen dauerhaft speichern =====
==== Filesystem Objekt (SPIFFS) ====
==== EEPROM ====
#include
EEPROM.begin(255);
EEPROM.put(0, 4711);
EEPROM.commit();
int echtKölnischWasser = EEPROM.get(0);
==== Erster Start nach dem Kompilieren ====
Manchmal möchte man einen Zähler im EEPROM nur nach einer neuen Kompilierung löschen. Hört sich einfach an, ist es aber nicht. Der Compiler kann automatisch eine variable mit der Zeit und dem Datum des letzten kompilieren belegen. Dies vergleicht man mit den im EEPROM hinterlegten Daten. Unterscheiden sie sich, dann wird der Zähler resettet. Sonst bleibt er wie er ist oder wird erhöht, ganz wie man will.
#include
EEPROM.begin(20);
const char compile_time[] = __TIME__;
char time2[9] = "44:44:44";
for (int i = 0; i < 8; i++) time2[i] = EEPROM.read(i); time2[8] = 0;
int gleich = 1;
for (int i = 0; i<8; i++) {
char c = time2[i];
char d = compile_time[i];
if (c!=d) gleich = 0;
}
if (gleich == 1) {
Serial.print("Zugriffszähler:");
Serial.println((int)EEPROM.read(10)); // mein Zähler steht in Byte 10
} else {
Serial.println("Zugriffszähler wird gelöscht.");
for (int i = 0; i < 8; i++) {
char c = compile_time[i];
EEPROM.write(i, c);
}
EEPROM.put(10, 0); // mein Zähler steht in Byte 10 und wird auf 0 gesetzt
EEPROM.commit();
}
Stand Juni 2022