Algorithmus für eine Regenwippe (Regenmengenzähler)



  • Hi

    ich versuche gerade mit einer ISR (InterruptServiceRoutine) und einer Basisroutine eine 24h Regenmessung hinzubekommen. Also mm Nierderschlag in den letzten 24h.
    Da das ganze auf einem Embedded System läuft geht eine Datenbank nicht. 😞 Bei starkem Regen bekomme ich jede sec einen klick, macht 86400 BYTE's in 24h und die habe ich nicht.

    Ich bekomme nur den klick der Wippe mit und kann eine Zeit (oder auch zwei bis drei Folgezeiten) dazu speichern.

    Da die ISR nicht Aufgerufen wird wenn es nicht regnet gibt es eine Routine die in regelmäßigen Abständen prüft ob seit dem letzten mal 24h vorbei sind. Dann wird die Messung auf null gesetzt. Für den Fall das die Ereignisse innerhalb der letzten 24h sind wird der Wert einfach aufsummiert.
    Ich speichere den Zeitstempel des Startwertes für das Regenereigniss und die zwei letzten Zeitstempel der Ereignisse der Wippe.

    Nun kommt das Ereignis Dauerregen > 24h. Ich hatte hier an eine Wichtung gedacht oder einen Mittelwert aber ich komme da nicht weiter.
    Ich kann zwar die neuen Werte in Abhängigkeit der Zeiträume dazuaddieren aber was mache ich mit der Summe. Ich müsste ja die letzten Ereignisse löschen.
    Jemand eine Idee ?


  • Mod

    Reicht denn nicht eine geringere Auflösung? Also Regen in den letzten 24 Stunden plus/minus Genauigkeitsgrenze? Angenommen, die Genauigkeit wäre 1 Stunde, dann könntest du 24 Zähler anlegen. Wenn eine Stunde beginnt, wird der zugehörige Zähler auf 0 gesetzt.

    Das machst du eben so fein aufgelöst, wie dein vorhandener Speicher es erlaubt, oder wie du es für ausreichend genau hältst.


Anmelden zum Antworten