Hallo ich bin neu hier in diesem Forum.
Und habe ein kleines Project am laufen und komme nicht weiter auch nach langer vielleicht auch falscher Recherche, deshalb suche ich jetzt hier Hilfe.
Ich habe vor eine art "Geldsystem" zu machen.
Ich habe mir vorgestellt das ein ESP32 eine Webseite zur Verfügung stellt
auf der man dann Dinge "kaufen" kann. Sobald mann dann "bezahlt" hat wird das bezahlte dem Guthaben abgezogen. Das Guthaben sollte auch irgendwo angezeigt werden.
Soweit das was ich vorhabe.
Mein Problem besteht darin Daten in eine Datei in das SPIFFS zu schreiben diese dann wieder auszulesen und auf einer html-seite dann wiederzugeben und die daten von der html-seite aus wieder zu verändern und im SPIFFS speichern.
Für das SPIFFS habe ich mich entschieden da dort die Daten dauerhaft gespeichert werden.
Hat jemand vielleicht Anregungen nach was ich suchen soll oder gute Beispiele?
wie viele Daten willst speichern?
Wäre für "wenige" Variablen nicht die EEPROM-Emulation einfacher?
EEPROM.put schreiben und EEPROM.commit speichern
EEPROM.get lesen
beschränke dich auf 4,294,967,295 weil uint32_t leichter handzuhaben sind.
Und ja, 5 derartiger 4 Byte Variablen gehen locker rein.
Wenn du dann etwas Übung hast, kannst noch immer auf 64bit Variablen umsteigen...
4 000 000 000 zahlen sind auch gut wenn es dann einfacher zu schreiben geht.
Ich hätte jetzt doch noch zwei Fragen, du hast ja oben 3 befehle geschrieben kann ich die jetzt einfach so
statt Geldint.setGeld
in mein oben geposteten Sketch einbauen oder gehört warscheinlich da noch mehr dazu?
Und zweitens hat der Esp32 überhaupt ein EEPROM?
Oh stimmt habe ich versehentlich überlesen
Wie kann ich uint32_t geld =EEPROM.get; festlegen?
Gibt es da eine allumfassende Seite die das ganze erklärt?
Gibt es da eine allumfassende Seite die das ganze erklärt?
nein keine saubere die ich empfehlen kann.
Aber das Prinzip ist einfach, beim begin() die gewünschte Grüße mitgeben,
gespeichert wird mit commit().
Rest mit put und get ist wie beim UNO.
Adressverwaltung mit struct und offsetOf wie du es auch beim UNO machen würdest damit es einfach bleibt.
Note
An EEPROM write takes 3.3 ms to complete. The EEPROM memory has a specified life of 100,000 write/erase cycles, so you may need to be careful about how often you write to it.
Ok ich glaube ich nehme jetzt doch FRAM das ist denke ich besser.
Wird der Sketch zu schreiben dadurch noch schwieriger?
Und könnt ihr mir ein FRAM empfehlen ich hätte jetzt den FM24C16B von Amazon bestellt ich habe aber keine gescheite Dokumentation für so einen gefunden :o
Der ist für Dich schlecht geeignet, da es ein Tyo mit mindestens 4,5V ist.
Du brauchst FRAM für 3,3V.
Dann solltest Du Dir erst mal Gedanken machen, wie groß der sein muss und on Du I2C oder SPI nehmen willst.
Das Datenblatt findet die Suchmaschine Deiner Wahl.
Ich hätte da noch ein FRAM von Adafruit im Angebot der klinkt für mich als unerfahrener Neuling in diesem Gebiet ziemlich gut ;D (besser als der den ich zuerst reingestellt habe
lukcraft:
Den gibt es auch noch größer statt 8KByte 32KByte welcher würde da infrage kommen für 5 x 2,000,000,000 Zahlen?
Mit 32 Bit kannst Du eine ganze Zahl bis 4.294.967.295 speichern. Du benötigst daher 5 x 32 Bit = 160 Bit = 20 Byte.
Oder habe ich da was mißverstanden?
Generell betrachtet scheint mir die Überlegung, ob man die aufzuhebenen Daten nun im FRAM, EEPROM oder SIFFS ablegt, vom Grundproblem abzulenken. Denn das Speichern von Daten ist relativ einfach. So habe ich OnBoardLed so verändert, um eine Datei zu schreiben:
Die zahlen sollten alle nicht über 2 Milliarden gehen nicht mehr aber weniger.
Das kann man sich so vorstellen es wird der Geldstand von z.B. Monopoly für jeden spieler gespeichert. Jeder Spieler bekommt ein Account/Website über den er z.B. ein Haus kaufen kann oder sonstiges.
Und eben dieser Geldstand/Daten/Zahlen sollen irgendwo gepeichert abgerufen und verändert werden (kurzgesagt eine Website erstellen mit der man die Daten/Zahlen die gespeichert sind beliebig verändern kann kann)
Bezüglich der Speicherung habe ich mich jetzt für den FRAM (8 KByte) entschieden der in den nächsten Tagen kommen sollte.
Hier https://github.com/adafruit/Adafruit_FRAM_SPI
ist ein möglicher Treiber für diesen FRAM.
Die Diskussion über das Speichermedium gehört also nicht zum Hauptthema. Ich weis nicht wie das in diesem Forum gehandhabt wird von mir aus kann man die Narichten löschen der übersichts Willen (außer wenn für andere die Infos auch nützlich sein könnten wie sie für mich waren) Ich kann ja wenn das Projekt abgeschlossen ist nochmal eine Zusammenfassung schreiben warum ich was gemacht habe.
Jetzt geht es
nur noch darum Wie man Daten/Zahlen im FRAM liest/schreibt.
Und vorallen Wie die Daten/Zahlen auf einer Website ausgegeben und verändert werden können.