ESP8266 deep-sleep + EEPROM

OP #4698680
Hallo,

ich möchte mit dem ESP8266 Daten im EEPROM ablegen. Dies soll er später 
alle 30 minuten machen weshalb ich einen deep-sleep um Energie zu sparen 
mit ein gebaut habe.
Das Problem ist allerdings, das der ESP nachdem er aufwacht ist immer 
einen neustart macht und somit im EEPROM alle Adressen wieder auf 255 
zurücksetzt. Im Anhang seht ihr mein Beispiel Code.

Würde mich über jede Hilfe freuen.
LG Alex
1
#include <EEPROM.h>
2

3
void setup()
4
{
5
  Serial.begin(9600); 
6
  EEPROM.begin(512);
7
  
8
  delay(3000);
9
  Serial.println("1 -> " + String(EEPROM.read(1)));    // Ausgabe --> Adresse 1 wird gelesen.
10
  delay(3000);
11
  EEPROM.write(1,10);                                 // Schreibe in Adresse 1 eine 10. 
12
  delay(1000);
13
  Serial.println("1 -> " + String(EEPROM.read(1)));    // Ausgabe --> Adresse 1 wird gelesen.
14

15
  ESP.deepSleep(3 * 1000000);                         // ESP schläft 3 sekunden lang und startet dann automatisch wieder neu.
16
}
17

18
void loop(){ }
Gast #4698709
Da fehlt ein EEPROM.commit(); sonst speichert der nichts. Bzw. landet 
das nicht eh im Flash? Also Schreibvorgänge beachten, evtl. Wear 
Leveling einbauen.
Außerdem wäre das alles in der loop besser aufgehoben.
#4698762
Hallo,

ja, es landet durch EEPROM.commit(); in Flash, der ESP hat keinen 
EEPROM.
Mit EEPROM.begin() wird der Bereich im Ram reserviert und der 
Flashbereich in den Ram kopiert. Dort wird dann gearbeitet und mit 
EEPROM.commit() wird der Rambereich dann wieder in den Flash kopiert.

Gruß aus Berlin
Michael

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.