Schaltvorgänge elektronisch zwischenspeichern, Regensensor

Hallo Leute,
ich möchte folgendes Modul in meine Wetterstation einbeziehen:
https://www.amazon.de/gp/product/B00QDMBXUA?pf_rd_p=671e72bc-8864-4ab6-8ef7-60da5d6ead8c&pf_rd_r=EP0EDSTNNPW7368EDB9N]
Diesen misst einfach mit einem Reedkontakt die Umschläge der Kippe.
Mein Problem ist nun, das meiner Wetterstation draußen aus Energiegründen im DeepSleep modus ist und nicht dauernd auf einen "Umschlag der Wippe" warten soll. Alle anderen Sensoren werden alle 10 min abgefragt. Es regnet ja aber leider nunmal konstant durch...

Meine Frage ist nun, kann ich die Umschläge bzw. Kontaktschlüsse ohne Micrcontroller irgentwie "elektronisch" zwischenspeichern (ich bin elektrotechnisch ein Neuling :)) und dann alle 10 Min auslesen.
Hat jemand dazu eine möglich Schaltung ? Irgenwas mit Schieberegistern vieleicht?
Vielen Dank.
LG

Mein Problem ist nun, das meiner Wetterstation draußen aus Energiegründen im DeepSleep modus ist und nicht dauernd auf einen "Umschlag der Wippe" warten soll.

Ich sehe den Widerspruch nicht, unter dem du leidest.

Mit einer Hardwareentprellung und Interrupts sollte das doch beherrschbar sein

Hm ja stimmt die hardware interrupts gibt es ja auch noch...
Ich frage mich dann nur wenn dann wirklich alle paar Sekunden die Wippe klappt, ob dann nicht auch ordentlich Energie verbraucht wird... naja müsste ich testen.

Zur Hardwareentprellung, wie würdest du das im Idealfall machen?
Ich wäre jetzt spontan nur auf einen Widerstand und kleinen Kondensator gekommen.

Ich wäre jetzt spontan nur auf einen Widerstand und kleinen Kondensator gekommen.

Ja...
So, oder so ähnlich.

Alternativ
Kann man auch (teilweise) in Software nachbilden.

Vogeldodel:
Hm ja stimmt die hardware interrupts gibt es ja auch noch...
Ich frage mich dann nur wenn dann wirklich alle paar Sekunden die Wippe klappt, ob dann nicht auch ordentlich Energie verbraucht wird... naja müsste ich testen.
.....

Da wirst du wohl nicht drum herum kommen. Du musst ja die Informationen zeitnah auswerten.
Du kannst die ausgewertete Information ja zwischenspeichern und erst später senden, das spart auch Energie.

Ja Zeitnah muss es sein. Ich dachte nur an einen mit einer kleinen schaltung realisierten oder als bauteil Zähler der nur alle 10 min vom esp32 ausgelesen werden kann....

Vogeldodel:
Ja Zeitnah muss es sein. Ich dachte nur an einen mit einer kleinen schaltung realisierten oder als bauteil Zähler der nur alle 10 min vom esp32 ausgelesen werden kann....

Ein ESP32 .....
Ja dann... warum nicht sofort diese Information?

evtl einen tiny85 als Zähler und I2C Slave.

Merke:
Wenn hier im Arduino Forum gefragt wird, ohne Angabe des µC, dann wird IMMER davon ausgegangen, dass du einen UNO, oder einen der anderen mit ATMega328P, verwendest.

Ich merke schon, wir müssen alle unsere Glaskugel erneut hervorholen.
Ohne die gehts nimmer.

HotSystems:
Ich merke schon, wir müssen alle unsere Glaskugel erneut hervorholen.
Ohne die gehts nimmer.

Ich befürchte, dass das Problem woanders liegt....
Da kannste polieren, soviel du willst.

@TO: Wenn Du abschätzen kannst, wieviele Impulse maximal in den 10 Minuten zu erwarten sind, dann könntest Du auch einen CMOS-Zähler (z.B. 4040) zählen lassen und diesen dann nach 10 Minuten auslesen und zurücksetzen.
Bei 2 hoch 12 wären das 4095 Impulse in 10 Minuten. Das sollte ausreichen.

Gruß Tommy

Ui super für die vielen Ideen,
ja stimmt den 2. Kern kann ich auch nehmen, da w-lan und bt sowieso aus sind.

Sorry ich dachte die Details wären nicht so wichtig:
Die Wetterstation umfasst ein BME 280 (Druck, Feuchte, Lufttemp) einen DS18b20 (Bodentemp), einen Lichtsensor 1750 (Lichtstromdichte) und einen kapazitiven Feuchtigkeitssensor (Erdfeuchte) gekoppelt mit einem ESP32 dessen Daten per LoRa (RFM95W) dann zu einem 2. SP32 in der Wohnung gesendet werden. Mit Abschalten aller Sensoren komme ich auf einen DeepSleep Strom von 80 µA. Alle 10 min misst und snedet er dann für ca. 3s einen mit Durchschnitts Strom von 100 mA. Mit meinem 6000 mA LiFePo4 Akku komme ich dann rechnerisch ohne Witterungseinflüsse auf ca 1 Jahr.
Diese Zeit wollte ich mir durch den Regensensor nicht besonders stark verkürzen, daher mein beharren auf eine energiesparende Lösung.

Hm ja das Video hab ich mir schon angeschaut, bekomme aber irgentiwe die ULP library nicht zum Laufen obwohl ich alles so mache wie die readme sagt.
Es kommt dann immer:

exec python executable file not found in $path

wenn ich die Dateien wieder raus lösche geht wieder alles...

Hänge besser noch einen DS18b20 für die Lufttemperatur dran. Die Temperatur des BME 280 ist die Chip Temperatur und liegt etwas höher als die eigentliche Außentemperatur und wird zur Berechnung der Feuchtigkeit gebraucht. Bei mir sind es zwischen 2 und 3 Grad bei beiden Chips. Es gibt auch ein paar Diskussionen im Netz darüber.

Hi

Beim DS18B20 habe ich hier die Beobachtung, daß der Sensor im TO92 wärmer anzeigt, als die 'waterproof'-Versionen - allerdings sitzt die TO92-Variante auch direkt am Arduino (Shield).
Selbst, wenn ich die Hülsen-Versione auf das TO92 Gehäuse auflege, habe ich dort eine Differenz.

Nicht, daß die 16.tel Grad nachher zwar viele Nachkommastellen tanzen lassen, aber 2K von der Raumtemperatur entfernt sind.

MfG

Ich hab das Library Problem mit dem ULP gelöst:
Ich musste nur Python (wichtig Verion 2.7) im PATH unter Systemteurerung ergänzen wie hier erklärt wurde:
(Add Python to the PATH Environmental Variable | Python Central)

Zu den Temp Sensoren: Stimmt der BME 280 liegt immer ca 1 °C über dem Ds18b20. Wer ist da nun richtig? Da er jedoch mit dem Wetterdienst in meiner Nähe ziemlich gut übereinstimmt, hatte ich das Problem aus den Augen verloren.
Könnte man dann nicht auch einfach immer 1°C abziehen? Wie müsste ich denn dann die Feuchtigkeit korrigieren?

Der BME liegt drüber, das kannst du ja einfach subtrahieren. Das ändert an deiner Feuchtigkeit nichts, die wird ja intern im Chip berechnet.

Hi

Der Chip benutzt ja die eigenen Messwerte, um daraus die relative Feuchtigkeit zu berechnen.
Denke, man kann davon ausgehen, daß Das, was hinten raus kommt, halbwegs der Realität entspricht - das Gelump wird ja nicht nur bei Arduino-Bastlern verwendet, sondern findet auch industriell Anwendung.
Und Die hätten Sich bestimmt schon nach 'was Brauchbarem' umgeschaut, wenn der BME280 Kern-Schrott wäre.

MfG

Ja klar der misst sogar sehr genau, nur der Temperaturfühler sitzt halt innen und bekommt die Eigenwärme ab was auch zur Berechnung wichtig ist. Ist nur schade dass darauf nirgendwo hingewiesen wird.. Die interne Temperatur vom ATmega328 benutzt ja auch niemand zur Raumtemperaturmessung....

Hi

Scherheinz:
...
Die interne Temperatur vom ATmega328 benutzt ja auch niemand zur Raumtemperaturmessung....

Also für den ATtiny45/85 fand ich dazu Mal ein Beispiel in Assembler ... ging glaube auf die verschiedenen Laufzeitveränderungen der Timer zurück - der WDT und die 'normalen' Timer verändern Sich, wenn Das 'Das' war, gegensinnig.
Somit konnte aus der Laufzeit, bis der Wachhund wieder zugebissen hatte (der kann auch nur einen Interrupt auslösen, muß also nicht zwingend ein Reset sein), also dem Zählerwert eines der Timer, auf die Temperatur geschlossen werden.

Ok, nicht wirklich einfacher, als einen DS18B20 oder DHT22 auszulesen, aber immerhin :slight_smile:

Man kann auch Aufgrund der Laufzeit eines HC-SR04 (bei bekannter Strecke) auf die Temperatur schließen - Das war aber glaube schon ein Arduino-Projekt.

Es geht also doch schon recht viel, wenn man denn nur will und ein paar Hintergrund-Informationen zusammen hat - und man eher den Weg, als das Ziel, vor Augen hat.
Programmieren kann ja auch durchaus kurzweilig sein (... sonst würden wir Das wohl auch nicht machen - zumindest nicht als Hobby)

MfG

Also für den ATtiny45/85 fand ich dazu Mal ein Beispiel in Assembler ... ging glaube auf die verschiedenen Laufzeitveränderungen der Timer zurück - der WDT und die 'normalen' Timer verändern Sich, wenn Das 'Das' war, gegensinnig.
Somit konnte aus der Laufzeit, bis der Wachhund wieder zugebissen hatte (der kann auch nur einen Interrupt auslösen, muß also nicht zwingend ein Reset sein), also dem Zählerwert eines der Timer, auf die Temperatur geschlossen werden.

Das Verfahren ist recht brauchbar, um den interne Oszillator zu kalibrieren, wenn man keinen internen Temperatursensor hat.

Aber der Tiny85 hat einen.
(siehe Anhang)

CombieAdc.zip (11.7 KB)