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.
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.
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.
@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
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.