Daten auf SD schreiben und als bulk senden

Hallo Michael,

Diesen Chip haben @weef, @roh und @wtf beim Versuchsaufbau "Autonome Zelle" #1 & #2: Solar-Feinstaub-Wetter-Vergleichsding ebenfalls verwendet.


Für unsere Arbeiten an Zwischenpufferung von Daten und Log-Informationen im RTC slow memory des ESP32 sowie Externer nichtvolatiler Speicher zur Zwischenspeicherung von Daten wäre weiterer Zwischenspeicher auf jeden Fall nett.

Eine MicroPython-Modulsammlung gibt es bei Treiber- und Modulsammlung für MicroPython sowie Support more sensors · Issue #64 · hiveeyes/terkin-datalogger · GitHub. Nach einem ensprechenden Treiber habe ich bisher zwar nicht geschaut, wenn wir an der Stelle Lücken haben, schaue ich aber gern, was ich tun kann.

Viele Grüße,
Andreas.

… das aber nun nachgeholt. Es scheint was da zu sein, auf dem wir bestimmt aufbauen könnten.

1 Like

@MKO, Du hast recht. Auf dem RPI musste ich 5 V nehmen und die Pullup auslöten, da die GPIO nur 3.3V vertragen.
Also lieber DS3231.

DS3231 oder DS3231M. Genauer als zwei oder drei Minuten off pro Jahr (!) klappt nur mit einem GPS(GNSS) - also alternativlos.

Je nach Typ kosten die Originale von Maxim zwischen 5 und 10 €, es ist klar, daß es sich bei den blauen Platinen für 2 € Gesamtpreis um Bauteile zweifelhafter Herkunft handelt. Selbst diese sind aber immer noch wesentlich genauer als DS1307, DS1337, PCF8563…

Zum EEPROM auf den Billigplatinen: das ist oft ein 24C32, und anders, als der DS3231 (welcher 400 kHz kann), machen diese EEPROMs oft nur 100 kHz am I²C - nicht schlimm, aber muß man wissen. Der EEPROM ist natürlich nicht nötig für die Funktion des 3231 und komplett von diesem getrennt, sie hängen lediglich am gleichen I²C-Bus.

2 Likes

Stimmt, würde jetzt auch nicht mehr die Version mit EEprom nehmen hab sie mir mal genauer angeschaut diese platinen müsste man vor Betrieb auch noch umbauen. die LED müsste raus und oft sind nur normale CR2032 nicht wieder aufladbare LIR2032 Knopfzellen drin um den Preis zu senken.
Der Ladewiederstand anscheinend trotzdem drin. Da hat mal wieder einer sehr schlau Kopiert.
Auch hat ein EEprom nur 100.000 Schreibzyklen wenn wir dort alle 30 sec Daten für gebündeltes Senden zwischenspeichern wollen sollten die nicht lange durchhalten.
dann doch lieber ein seperates FRAM mit I²C .
jedes Byte kann da 10.000.000.000.000.000.000.000 mal gelesen/geschrieben werden.

Eine RTC mit im Chip integriertem 8kb FRam gibt es auch, der DS32B35 , wofür ich aber leider kein Breakout finden konnte.

1 Like

ich habe den DS3231 von Reichelt in meinen Beständen gefrunden:


Den könnte ich testen

Super, genau den hab ich mir bei Eckstein auch gerade bestellt. :grinning:
@poesel ist da auch schon dran Treiberunterstützung für die DS3231 RTC

Ich hatte mir am Wochenende schon den DS1307 Chip bestellt, damit der schnell da ist und ich testen kann. Habe aber eigentlich keine Vorliebe. Dann bestelle ich mir auch noch den DS3231.

1 Like

@MKO Ich habe jetzt alle deine Pull-Requests bearbeitet. Ich hatte allerdings echt Schwierigkeiten die Buttons zu nutzen, wenn Sleep implementiert ist. Vielleicht fällt uns da noch was gutes ein. Ein Hack wäre z.B. nach einem Restart nicht in den Sleep zu gehen, dann können die entsprechenden Knöpfe gedrückt werden, aber ganz schön ist das auch nicht.
Ich habe deswegen vorerst zwei Branches daraus gemacht: kamerun und kamerun-sleep

Das sollte jetzt laufen:

  • WLan aktivieren und verbinden wenn der Senden Button gedrückt wurde.
  • Zeit synchronisieren beim Holen der Daten (Die Zeit wird auch als initial-time in der config gespeichert)
  • Kennzeichnen der schon gesendeten Daten/ löschen von gesendeten Daten (Aktuell werden sie einfach gelöscht.)

Das noch nicht, vielleicht schaffe ich gleich noch was:

  • Rückmeldungen über RGB LED an den Benutzer über RGB
    -sollte im unbeaufsichtigten Betrieb nur nur kurzzeitig leicht/schwach Blinken z.B nur beim schreiben auf SD um ordnungsgemäßen Betrieb zu signalisieren.
    -Rückmelden ob Daten erfolgreich Gesendet wurden Langes helles Blinken.
    -Uhrzeit syncronisiert? oder vor Jahr 2000? Binken betrieb z.B rot und Grün
  • Fehler abfangen beim Schreiben auf SD
  • wahrscheinlich am besten externes RTC-Modul implementieren

Aus dem deep sleep kann man per Interrupt aufwecken, ich denke dann sollte das auch im light sleep gehen.

Wie gesagt mindestens eine Messe-Pause Zeit gedrückt halten, dann klappt es bei mir immer.
Bin da aber dran. Wie schon beschrieben gibt es eine Möglichkeit ihn vor dem Schlafen zu legen einen einen aufwach Interrupt auf die gipos zu legen.
Wenn ich drüber nachdenke hilft es Evtl einfach nur das Ereignis zu ändern. Jetzt ist glaube ich
IRQ_RISING aktiviert Pin.IRQ_HIGH_LEVEL wäre dazu evtl. die alternative.

ansonnsten ist es echt mies dokumentiert.

In den meißten Foren wird für deep sleep ein Resetbutton Hack bevorzugt und angepriesen.
Thema Light sleep wird zu unrecht kaum behandelt. Gerade bei kurzen bis mittleren Messzeiten ist light sleep klar im Vorteil.
Wenn ich jetzt richtig gerechnet habe macht deep sleep wegen der Bootphasen bei BOB erst ab ca. 3 Min Messintervall überhaupt sinn.

3 posts were merged into an existing topic: Treiberunterstützung für die DS3231 RTC