Moin, Ich möchte eine alte Espressomaschine etwas digitalisieren und einen PID Regler einbauen und die Analogen Schalter durch Taster ersetzten um einige Parameter während des Bezugs einfach immer gleich zu haben. Dafür gibt es auch schon ein fertiges Projekt, allerdings bin ich damit nicht zu 100 % zufrieden und möchte das auch einfach selber machen um das ganze besser zu verstehen. Das Programm läuft auch schon genau so wie ich es mir vorgestellt habe. Allerdings möchte ich die Parameter gerne über Blynk auf die Maschine übertragen, wo die Probleme beginnen. Das Problem ist, dass die Werte, die ich der Maschine über Blynk mitgeteilt habe nach einem Neustart der Maschine immer wieder auf 0 gesetzt werden, und ich dann erst in der APP alle INPUTS einmal anklicken muss, damit die Maschine die Werte wieder hat die ich zuvor eingestellt habe. Da die Maschine auch ohne W-Lan laufen soll, habe ich versucht das Problem zu lösen, indem ich die Werte im EEPROM des ESP8266 speicher. Das klappt aber nicht. Sobald ich die Maschine ausschalte und wieder anschalte sind die vorherigen Werte nicht mehr eingestellt, sondern irgendwelche anderen, aber immer die gleichen. Außerdem verliert die Maschine während Bezug-Funktion sowie der Rückspülfunktion die Verbindung zu Blynk, was ich allerdings erstmal verkraften kann. Vielleicht hat einer von euch auch sonstige Anmerkungen oder Vorschläge wie ich meinen Code verbessern kann. Vielen Dank im Voraus dass ihr versucht zu helfen.
Seit wann schreibt man Code in txt-Dateien? Rknios S. schrieb: > versucht das Problem zu lösen, indem ich die Werte im EEPROM des ESP8266 > speicher. Das klappt aber nicht. Sobald ich die Maschine ausschalte und > wieder anschalte sind die vorherigen Werte nicht mehr eingestellt, > sondern irgendwelche anderen, aber immer die gleichen. Kein Wunder, der ESP8266 hat nämlich kein EEPROM.
Dr. Z. schrieb: > Kein Wunder, der ESP8266 hat nämlich kein EEPROM. Freilich, der ESP8266 hat ein 512 Byte EEPROM.
Dachte den hier als TXT Datei hochzuladen wäre gut. Welches Format ist denn üblich?
Thomas R. schrieb: > Freilich, der ESP8266 hat ein 512 Byte EEPROM. kennst du dich mit dem ESP8266 aus und weißt, wo mein Fehler ist?
Natürlich hat der ESP kein EEPROM. Es wird simuliert und liegt so im Flashbereich. Ich sehe kein EEPROM.commit() oder EEPROM.end() im Code. Also werden die Daten auch niemals gespeichert. Lesetipp: https://arduino-esp8266.readthedocs.io/en/latest/libraries.html#eeprom Rknios S. schrieb: > Dachte den hier als TXT Datei hochzuladen wäre gut. Welches Format ist > denn üblich? Als *.ino Datei, dann tuts auch der Syntaxerheller ordentlich.
Beitrag #6454355 wurde von einem Moderator gelöscht.
Arduino Fanboy D. schrieb: > Natürlich hat der ESP kein EEPROM. > Es wird simuliert und liegt so im Flashbereich. > > Ich sehe kein EEPROM.commit() oder EEPROM.end() im Code. > Also werden die Daten auch niemals gespeichert. > > Lesetipp: > https://arduino-esp8266.readthedocs.io/en/latest/libraries.html#eeprom > > Rknios S. schrieb: >> Dachte den hier als TXT Datei hochzuladen wäre gut. Welches Format ist >> denn üblich? > Als *.ino Datei, dann tuts auch der Syntaxerheller ordentlich. Alles klar, vielen Dank! ich werde mir das mal durchlesen und hoffe, dass meine Fragen danach geklärt sind. Nächstes mal wird eine .ino datei hochgeladen.
Arduino Fanboy D. schrieb: > Natürlich hat der ESP kein EEPROM. > Es wird simuliert und liegt so im Flashbereich. > > Ich sehe kein EEPROM.commit() oder EEPROM.end() im Code. > Also werden die Daten auch niemals gespeichert. > > Lesetipp: > https://arduino-esp8266.readthedocs.io/en/latest/libraries.html#eeprom > > Rknios S. schrieb: >> Dachte den hier als TXT Datei hochzuladen wäre gut. Welches Format ist >> denn üblich? > Als *.ino Datei, dann tuts auch der Syntaxerheller ordentlich. Vielen Dank für deine Antwort! Heißt das, dass der simulierte EEPROM deutlich öfter Beschrieben werden kann, da es ja eigentlich ein Flashspeicher ist?
Rknios S. schrieb: > Heißt das, dass der simulierte EEPROM deutlich öfter Beschrieben werden > kann, da es ja eigentlich ein Flashspeicher ist? Das Gegenteil ist der Fall. (Warum verlinke ich dir überhaupt den Text?)
ok, sorry mein Englisch ist nicht so mega dufte, habe es jetzt aber verstanden. Dann ist der ESP8266 wohl eher nicht für mein vorhaben geeigent. Kennst du dich mit Blynk zufällig auch aus und kennst eine möglichkeit wie man das anders lösen kann? Oder gibt es einen Microcontroller der ähnliche eigenschaften wie der ESP8266 hat nur mit einem echtem EEPROM?
für solche Werte gibts serielle EEPROM die brauchen nicht viel Platz und wenig I/O...
Rknios S. schrieb: > Da die Maschine auch ohne W-Lan laufen soll, habe ich > versucht das Problem zu lösen, indem ich die Werte im EEPROM des ESP8266 > speicher. Genau genommen hat der Chip gar kein EEPROM. Du kannst Daten im Flash Speicher ablegen, aber der verschleißt im Vergleich zu EEPROM sehr schnell. Wenn du da öfter als 100x drauf zugreifen willst, dann mache dir Gedanken um einen Wear-Levelling Algorithmus. Bei sehr viel mehr Zugriffen ist das ohnehin auch bei einem EEPROM nötig. Die EEPROM Klasse von deinem ESP9266 Core simuliert EEPROM mit RAM. Wie Arduino Fanboy D. anmerkte, wird das RAM erst beim Aufruf von EEPROM.commit() ins den Flash Speicher übertragen. > Oder gibt es einen Microcontroller der ähnliche eigenschaften wie der > ESP8266 hat nur mit einem echtem EEPROM? Ich glaube: nein Was den Verbindungsverlust angeht: Vermutlich fehlt in irgendeiner Schleife ein yield(). Generell wäre es besser, das Programm mit einem Zustandsautomaten neu zu strukturieren, so dass gar keine blockierenden Schleifen nötig sind. Siehe dazu http://stefanfrings.de/multithreading_arduino/index.html
Alles Klar, vielen Dank. ich denke ich werde dann mit einem externen EEPROM Arbeiten und mich nochmal mit den zustandsautomaten Beschäftigen.
Rknios S. schrieb: > ich denke ich werde dann mit einem externen EEPROM Arbeiten Guck dir auch mal FRAM an, das hält länger und benötigt keinen Wear Levelling Algorithmus. Z.B. FM24C04
Stefan ⛄ F. schrieb: > Guck dir auch mal FRAM an, das hält länger und benötigt keinen Wear > Levelling Algorithmus. Z.B. FM24C0 Habe ich mir gerade mal angeschaut. Dann muss ich mir ja absolut keine Sorgen zu machen, gerade für Andere Projekte sehr interessant. Leider findet man recht wenig über das FRAM und den ESP :/. Habe mir mal eins bestellt und werde es Probieren.
Rknios S. schrieb: > Leider > findet man recht wenig über das FRAM und den ESP :/. Was erwartest du? Es gibt die Wire Doku und das Datenblatt zum Fram. Auch finden sich die I2C Spezifikationen, wenn man nur will. Da steht alles drin, was es zu wissen gilt! Zudem ist es eine feine Gelegenheit dein English zu üben. Auch könnte ich dir eine I2C EEPROM Lib zukommen lassen, welche auch für viele der üblichen FRAM funktioniert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.