mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ESP8266 deep-sleep + EEPROM


Autor: Alexander Black (alexander95)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
#include <EEPROM.h>

void setup()
{
  Serial.begin(9600); 
  EEPROM.begin(512);
  
  delay(3000);
  Serial.println("1 -> " + String(EEPROM.read(1)));    // Ausgabe --> Adresse 1 wird gelesen.
  delay(3000);
  EEPROM.write(1,10);                                 // Schreibe in Adresse 1 eine 10. 
  delay(1000);
  Serial.println("1 -> " + String(EEPROM.read(1)));    // Ausgabe --> Adresse 1 wird gelesen.

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

void loop(){ }

Autor: Tr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dirk K. (dekoepi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tipp: Das RTC Memory wird im DeepSleep erhalten. Dort lassen sich also 
Werte ablegen, die man nach dem Aufwachen braucht. Spart für viele Fälle 
die Abnutzung vom Flash.

Autor: Alexander Black (alexander95)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Leute. Es hat endlich funktioniert.
LG Alex

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.