Nicht-flüchtiger Speicher gesucht

Hallöchen,
ich bin auf der Suche nach einem nicht-flüchtigen Speicher.

Mein Ziel ist es, etwa 15 Messungen pro Minute (inklusive Zeitstempel) aufzunehmen und zu speichern. Die Messwerte sollen etwa eine Woche erhalten bleiben, bevor sie überschrieben werden können. Vor der jeweiligen Überschreibung wird damit ein bisschen Statistik betrieben, also beispielsweise Mittelwertbildung bestimmter Werte über eine Woche, welche dann dann als "Zusammenfassung" erneut abgespeichert wird. Das Ganze im Idealfall über mehrere Jahre.

Ich arbeite mit einem ESP32, der hat ja bereits einen integrierten Flash. Bei der Anzahl der aufkommenden Messungen, befürchte ich allerdings, dass er nicht lange hält. Gleiches gilt für den EEPROM. Über die benötigte Größe des Speichers kann ich noch keine ganz genaue Aussage treffen, da ich noch nicht alle Sensoren hier habe und auch deren Rückgabewerte nicht alle kenne.

Und zum Schluss: Halbwegs günstig sollte er auch sein, da ich vor habe, das Projekt mehrfach nachzubauen und an verschiedenen Orten gleichzeitig Messen und Aufzeichnen möchte.

Ich dachte vielleicht an so etwas:

Der Preis ist natürlich saftig, gibts sicherlich auch billiger. Nur der IC kostet bei digikey 1,75€. Das entspricht dann schon eher meinen Preisvorstellungen..

Hat vielleicht noch jemand eine Idee oder Alternativen?

Viele Grüße

Externe EEPROMs sind billiger und sollten für Deine Anforderungen auch reichen.

seackone:
Die Messwerte sollen etwa eine Woche erhalten bleiben, bevor sie überschrieben werden können.

Bedeutet, dass eine Zelle nur 1x pro Woche neu geschrieben wird. Da hält ein ganz gewöhnliches I2C EEPROM ewig ( 1000000 Scxhreibzyklen ). Problem ist da eher die Größe des EEPROM. 15 Messungen / Minute und das 1 Woche lang sind 151200 Messungen. Und das mal den Bytes/Messung.
Alternative wäre eine SD-Karte.

Hallo
schaue dir auch am Besten ein Tutorrial für die Anwendung einer SD-Karte an.

Oh das ging schnell. Okay, externe EEPROMs ist ein gutes Stichwort, da schaue ich mal nach!

@MicroBahner:
Also eigentlich möchte ich bereits jede Messung in den Speicher schieben, da mir diese für den Fall eines kurzzeitigen Stromausfalls unbedingt erhalten bleiben sollen. Ich habe also etwas mehr als 10.000 Schreibzyklen pro Woche. Die von mir erwähnte "Statistik" erfolgt dann immer am Ende einer Woche und enthält Werte, die dann auch in den Flash des ESP geschrieben werden kann. Mit etwa 10.000 Schreibzyklen pro Woche wäre der EEPROM nach weniger als 2 Jahren am Ende. Im Idealfall sollte der aber schon etwas länger halten. Wie du bereits erwähnt hast, stellt die Größe ebenfalls ein Problem dar.

Hmm.. So betrachtet, wird das mit der Aufzeichnung über eine Woche wohl nicht klappen. Die SD Karte war eigentlich sogar meine erste Überlegung aber ähnlich wie beim integrierten Flash (4MB, der sollte eigentlich reichen) habe ich angenommen, dass hier die Anzahl der Schreibzyklen noch geringer ausfällt?

Du machst eine Gedankenfehler: Die Zahl der Schreibzyklen gilt nicht für den ganzen Baustein, sondern für jede einzelne Zelle. Bei einem I2C EEPROM kannst Du also jede einzelne Zelle 1000000 mal beschreiben, unabhängi von den anderen Zellen. Wenn Du als eine Messung einträgst ist das für die jeweilige Zelle ein Schreibzyklus. Und da der Wert für eine Woche da drin stehen bleiben soll, bleibt das für die Zelle auch ein Schreibzyklus.
Edit: Da intern immer nur eine Bank von Zellen geschrieben werden kann, ist das etwas ungünstiger wenn viel Einzebytes geschrieben werden müssen. Da bei dir aber immer größere Byte-Blöcke geschrieben werden, dürfte das nicht ins Gewicht fallen.

Bei SD-Karten macht der Controller auch noch 'wear leveling'. D.h. selbst wenn Du da immer auf die gleiche Stelle schreibst, verteilt der Controller das intern auf verschiedene Zellen, um die Abnutzung der Speicherzellen gleichmäßig über den gesamten Baustein zu veteilen.

seackone:
Ich habe also etwas mehr als 10.000 Schreibzyklen pro Woche.

Machst Du da nicht einen Rechenfehler? Bei 15 Messungen / Minute komme ich auf gut 150000 Schreibvorgänge / Woche. Da die sich aber immer auf unterschiedliche Speicherstellen beziehen ( Du willst ja innerhalb der woche nichts überschreiben ) macht das nichts aus. Bis auf die Tatsache, dass Du sehr viel Speicherplatz brauchst.

Und zum Schluss: Halbwegs günstig sollte er auch sein, da ich vor habe, das Projekt mehrfach nachzubauen und an verschiedenen Orten gleichzeitig Messen und Aufzeichnen möchte.

Hat vielleicht noch jemand eine Idee oder Alternativen?

also ich halte ja wenig vom dezentralen Speichern und periodischen manuellem Abholen. Du hast einen ESP - Warum schickst du dir die Daten nicht an einen Zentralen Server? Zumindest dort wo du WIFI hättest.

Dort wo Kein Wifi vorhanden, würde ich über den Einsatz von LoRaWan / TheThingsNetwork oder ähnlichem Nachdenken. Hauptsache die Daten kommen verlässlich auf einen Server.

Ich hab jetzt nicht alles gelesen, aber habt ihr an FRAM gedacht?

themanfrommoon:
Ich hab jetzt nicht alles gelesen, aber habt ihr an FRAM gedacht?

Ja, der TO selbst im Eingangspost.

themanfrommoon:
Ich hab jetzt nicht alles gelesen, aber habt ihr an FRAM gedacht?

Dürfte bei dem notwendigen Speicherbedarf eine ziemlich teure Angelegenheit werden :wink:

Okay, was genau willst du denn messen? Gibts da WLAN?
Ich habe mir einen Volkszähler aufgebaut und logge damit rund 70 Kanäle seit mehreren Jahren, inkl. Webfrontend, eigenes Display, Android App, usw.

Vielen Dank für eure Antworten, es ist schön zu sehen wie das Forum lebt und kreative Köpfe zusammenfinden!

@noiasca
Dort wo die ESPs angebracht werden, wird keine Netzwerkverbindung in Form von Wlan bestehen. Überwiegend ist davon auszugehen, dass nichtmal eine stabile Mobilfunkverbindung vorhanden ist. Im übrigen auch kein Strom, der Betrieb läuft mit Akku und Solar, der ESP wacht jede Minute aus dem deep sleep auf.. Selbst der physische Zugriff zu den Geräten wird nach der Montage sehr eingeschränkt, weshalb ein ständiges Wechseln der SD Karte am Gerät selber vermutlich keine so optimale Option wäre.

Im Moment basiert das Abholen der Daten auf ein Sender (ESP) und Empfänger Prinzip, bei dem der Empfänger leichter zugänglich ist.. Die Verbindung zwischen beiden wird via Wlan aufgebaut, mit Bluetooth hatten wir leider in der Vergangenheit aufgrund der Entfernung zwischen Sender und Empfänger Probleme. Aufgrund der Menge von Messdaten muss der aktuelle Speicher allerdings relativ häufig ausgelesen werden, eine entsprechend regelmäßige Wlan Verbindung ist nötig, was mit einem steigenden Stromverbrauch am Sender einhergeht. Gerade in den Wintermonaten, wo der Akku vom Sender kaum über Solar geladen wird, ist das natürlich nicht so toll. Daher kam die Idee: man könnte den Speicher am ESP ja einfach erhöhen, die Wlan-Verbindung muss weniger oft aufgebaut werden, der Akku hält länger..

WAS willst du denn Messen?
Schon über LORA nachgedacht?

@themanfrommoon
Leider kann ich nicht ganz so genau darüber sprechen, was ich messen möchte. Es handelt sich um ein Forschungsprojekt.. Die Messungen laufen wie gesagt auch schon seit gut einem Jahr. Jetzt bin ich gerade dabei eine Revision meiner Schaltung vorzunehmen, um kleine Fehler auszumerzen und dem Ganzen ein "upgrade" zu verpassen.

Ich kann nur sagen, dass der ESP keinen Zugriff auf Wlan und nur eingeschränkten (möglichen) Zugriff auf Mobilfunk hätte. Der ganze Aufbau muss möglichst leicht (Gewicht) sein, ich kann da keinen schweren Akku unterbringen. Der ESP muss autark arbeiten, ich kann keine Kabel verlegen. Aufgrund aller Voraussetzung, muss die Leistungsaufnahme des ESP so gering wie möglich sein.

Demzufolge war ein möglicher Gedanke zur Erhöhung der Batterielaufzeit, den Speicher am ESP zu erhöhen, auch wenn der Akkuverbrauch dadurch nur maginal sinkt. Aber jeder kleine Prozentpunkt ist eine Bereicherung.

seackone:
weshalb ein ständiges Wechseln der SD Karte am Gerät selber vermutlich keine so optimale Option wäre.

Warum muss Du die ständig wechseln? Die kannst Du genauso auslesen, wie jeden anderen Speicher auch.

LORA hat eine Reichweite von mehreren hundert Kilometern

@themanfrommoon
LORA sagt mir jetzt erstmal noch nicht so viel. Habs eben flüchtig gegoogelt. Mein erster Eindruck ist, dass dadurch höhere Distanzen zwischen Sender und Empfänger ermöglicht werden können. Heist im Umkehrschluss: Wenn Sender und Empfänger aber gar nicht so weit voneinander entfernt sind, kann die Sendeleistung reduziert werden wodurch die gesamte Leistungsaufnahme sinkt?

Ich bin ein wenig auf das angewiesen, was der ESP ermöglichen kann. Im Wesentlichen möchte ich gar nicht so sehr viel an der bestehenden Hard -und Software ändern, da ja alles bereits so funktioniert wie es ist. Beim ESP bin ich beispielsweise im Zuge meiner Revision auf den S2 umgestiegen, da die Leistungsaufnahme geringer ist als beim Vorgängermodell. An der bestehenden Software musste ich nichts ändern, das Platinenlayout natürlich schon.

Beim ESP32-S2 steht auch etwas von Wifi LR im Datenblatt. Sollte das irgendwelche Vorteile (im Sinne von Strom sparen) gegenüber dem "normalen" Wifi bringen, sehe ich mir das ganz genau an. Müsste ja auch so etwas sein wie das von dir erwähnte LORA.

Aber erstmal gehts ja noch um den Speicher :slight_smile:

@MicroBahner
Das Projekt läuft noch über 2 Jahre, bei dem ich keinen physischen Zugang zum ESP habe. Mit einer Messung pro Minute sind das 10080 Schreibzyklen pro Woche und knapp 1.130.000 Zyklen innerhalb der besagten 2 Jahre. Als ich damals recherchiert habe, lag die Zahl der Schreibzyklen von SD Karten bei 100.000 oder so. Vielleicht irre ich mich oder hat sich inzwischen etwas geändert?

Ich logge 70 x 60 x 24 = 100.800 Messwerte pro Tag über mehrere Jahre mit meinem Volkszähler.
Der ESP32 kann ja auch Bluetooth und ich meine spätestens die neuere Version kann auch Low Power Bluetooth.
Vielleicht wäre das was.
Es gibt auch fertige ESP32 Boards mit LORA drauf.
Aber da das ganze Projekt ja so geheim ist kann man dir ja leider keinen richtigen Rat geben, weil keiner weiss um was es sich handelt und man das so nicht richtig einschätzen kann.
Erfahrungsgemäß ist es am Ende so, das es viel einfacher und besser geht wenn man alles wüsste. Tja, selber Schuld

Andreas Spiess spricht auch über WIFI LR und vergleicht mit LoraWan

beides ansehen - genau zu hören.
Helfen kann man dir ja nicht weil es geheim ist.

seackone:
Als ich damals recherchiert habe, lag die Zahl der Schreibzyklen von SD Karten bei 100.000 oder so.

Das ist bei aktuellen Karten eher weniger. Es bezieht sich aber nicht darauf, wie oft Du einen Schreibzugriff machen kannst, sondern darauf, wie oft Du die gesamte Karte beschreiben und wieder löschen kannst. Selbstbei rel. kleinen SD Karten dürftest Du da ziemlich weit kommen. Wenn z.B. eine 4GB Karte 3000 Schreibzyklen erlaubt, bedeutet das, dass Du insgesamt ca. 12TB da drauf schreiben kannst, bevor sie den Geist aufgibt. Wobei es besser ist, in größeren Blöcken zu schreiben, als lauter einzelen Bytes :wink: