Forum: Mikrocontroller und Digitale Elektronik Wetterstation mit Kippwaage und Akkubetrieb


von Paul (deadeyeflint)


Lesenswert?

Guten Abend liebes Forum,

folgende Problematik:
Im Garten hängt ein ESP8266 mit SHT30 Temperatur und Feuchtesensor. Der 
Unterbau besteht aus Homeassistant und ESPhome.
Versorgt wird die Wetterstation über ein Solarpanel (5V 4W), das ein 
TP4056-Modul mit 3,7V 18650-Akku mit 2500mAh speist. Der Lastabgang, 
nach Nachrüstung der "Load-Sharing"-Schaltung, geht auf einen HT7830 LDO 
- Linearregler und dieser final auf den 3,3V Pin des ESP, als auch zur 
Versorgung der Sensoren.

Das funktioniert auch alles ganz hervorragend - eine Minute messen und 
dann geht der ESP für 15min in den deep-sleep.

Nun ist aber vor einigen Tagen meine Kippwaage mit Reed-Kontakt vom Ali 
angekommen und damit begannen die "Probleme". Auslesen und 
Implementierung in den Code waren kein Problem.

Jetzt kommt der Haken: um die Kippwaage auslesen zu können, müsste der 
ESP dauerhaft an bleiben und ich müsste auf den deep-sleep verzichten, 
was sich wiederum negativ auf die Akkulaufzeit auswirkt. Bei bedecktem 
Wetter, übersteht der ESP zwar zwei Nächte, aber leider keine Dritte, da 
der Akku nicht wieder vollständig geladen wird.

Die Frage ist nun was hier die sinnvollste Möglichkeit wäre, außerhalb 
des ESP die Impulse der Kippwaage zu messen, speichern und auf den ESP 
zu übertragen?
Binärzähler ala CD4040, oder RTC mit Binärzähler wie den pcf8583 oder 
sogar noch einen zweiten uC wie den Attiny85?
Vielleicht hat ja auch jemand von Euch noch eine ganz andere Idee, die 
wesentlich einfacher ist und ich wieder gerade nicht sehe.

Ich bedanke mich schonmal für die Mühen!

: Bearbeitet durch User
von Hans (ths23)


Lesenswert?

Paul schrieb:
> Guten Abend liebes Forum,
>
> folgende Problematik:
> Im Garten hängt ein ESP8266 mit SHT30 Temperatur und Feuchtesensor. Der
> Unterbau besteht aus Homeassistant und ESPhome.
> Versorgt wird die Wetterstation über ein Solarpanel (5V 4W), das ein
> TP4056-Modul mit 3,7V 18650-Akku mit 2500mAh speist. Der Lastabgang,
> nach Nachrüstung der "Load-Sharing"-Schaltung, geht auf einen HT7830 LDO
> - Linearregler und dieser final auf den 3,3V Pin des ESP, als auch zur
> Versorgung der Sensoren.
>
> Das funktioniert auch alles ganz hervorragend - eine Minute messen und
> dann geht der ESP für 15min in den deep-sleep.
>
> Nun ist aber vor einigen Tagen meine Kippwaage mit Reed-Kontakt vom Ali
> angekommen und damit begannen die "Probleme". Auslesen und
> Implementierung in den Code waren kein Problem.

Den ESP per Interrupt aufwecken sobald ein Impuls kommt wäre keine 
Lösung?
Ansonsten bleibt nur ein externer Zähler an der Kippwage selbst der vom 
ESP zyklisch ausgelesen wird, so wie es die meisten handelsüblichen 
Regenmesser machen.

von Paul (deadeyeflint)


Lesenswert?

> Den ESP per Interrupt aufwecken sobald ein Impuls kommt wäre keine
> Lösung?
> Ansonsten bleibt nur ein externer Zähler an der Kippwage selbst der vom
> ESP zyklisch ausgelesen wird, so wie es die meisten handelsüblichen
> Regenmesser machen.

Daran hatte ich tatsächlich auch schon gedacht, jedoch wird dann der 
Interrupt nicht auf die Regenmenge addiert. Habe dazu leider schon 
mehrere Beiträge in englischen Foren gefunden, die hierfür auch keine 
Lösung hatten, selbst mit ESP32.
Danke für den Input!

von Monk (roehrmond)


Lesenswert?

Hans schrieb:
> Den ESP per Interrupt aufwecken sobald ein Impuls kommt wäre keine
> Lösung?

Der ESP8266 kann nur per Reset aufwachen und das nicht von einem 
Timer-Reset unterscheiden.

Ich würde einen zusätzlichen ATtiny verwenden. Eventuell würde der sogar 
alle Aufgaben außer die Funkübertragung bekommen. Dann braucht man keine 
sepaeate Firmware für die ESP Module. Die vorinstallierte AT Firmware 
würde reichen.

von Rainer W. (rawi)


Lesenswert?

Paul schrieb:
> Die Frage ist nun was hier die sinnvollste Möglichkeit wäre, außerhalb
> des ESP die Impulse der Kippwaage zu messen, speichern und auf den ESP
> zu übertragen?

Wozu überhaupt der ESP?
Für stromsparenden Betrieb ist der nicht so wirklich prädestiniert. 
Deinem Unterbau fehlt ein Gateway zu stromsparenden Sensoren, die ihre 
Daten z.B. per LoRa liefern.

von Paul (deadeyeflint)


Lesenswert?

Monk schrieb:
>
> Ich würde einen zusätzlichen ATtiny verwenden. Eventuell würde der sogar
> alle Aufgaben außer die Funkübertragung bekommen. Dann braucht man keine
> sepaeate Firmware für die ESP Module. Die vorinstallierte AT Firmware
> würde reichen.

Dann bleibt wohl nur der Umweg über den ATtiny oder einen Binärzähler.

Besten Dank!

von Paul (deadeyeflint)


Lesenswert?

Rainer W. schrieb:
> Wozu überhaupt der ESP?
> Für stromsparenden Betrieb ist der nicht so wirklich prädestiniert.
> Deinem Unterbau fehlt ein Gateway zu stromsparenden Sensoren, die ihre
> Daten z.B. per LoRa liefern.


Kurzum: er lag rum, und da die WLAN-Abdeckung im Garten ausreichend ist, 
wollte ich nicht unbedingt den Umweg über zusätzliche Hardware wie 
LoraGateways, etc. gehen.
Daran gedacht hatte ich allerdings auch schon, jedoch haben sich Kosten 
und Nutzen bis jetzt nicht aufgewogen.
Bis die Kippwaage da war, lief ja auch die Wetterstation problemlos im 
Akkubetrieb. :D

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Paul schrieb:
> Kurzum: er lag rum, und da die WLAN-Abdeckung im Garten ausreichend ist,
> wollte ich nicht unbedingt den Umweg über zusätzliche Hardware wie
> LoraGateways, etc. gehen.

Ich habe es befürchtet.
Für Erweiterungen, wie z.B. einen Windsensor geht das Theater dann 
wieder los. Wer weiß, ob das WLAN da auch noch so gut hin kommt.

Und wehe, es wird Winter. Dann sieht das mit der PV-Versorgung ganz 
anders aus.

: Bearbeitet durch User
von Carsten-Peter C. (carsten-p)


Lesenswert?

Moin,
ein interessantes Projekt. So etwas wollte ich auch mal bauen. Die Wippe 
ist schon fertig, aber aus Zeitgründen hab ich das erstmal zur Seite 
gelegt. Ein ähnliches Projekt läuft aber seit langem gut. Dabei handelt 
es sich um die Auswertung der Impulse vom Gaszähler, die ich in einem 
ATtiny 84 gezählt und gespeichert habe. Mit dem 2,097152 Mhz Quarz wird 
die interne Uhr getaktet. Gespeichert werden die Impulse der letzten 60 
Minuten, die letzten 24 Stundenwerte, die 31 letzten Tageswerte und die 
12 letzten Monatswerte im SRAM des ATtiny‘s. Jederzeit lassen sich diese 
Werte über I2C abfragen. Für die Anzeige nutze ich einen Net-IO von 
Pollin, der mir eine Webseite erzeugt. Die Auswertung der Regenwippe 
wollte ich mit der gleichen SW bauen. Vielleicht ist sowas was für Dein 
Projekt.
Gruß
 Carsten

von Falk B. (falk)


Lesenswert?

Carsten-Peter C. schrieb:

> es sich um die Auswertung der Impulse vom Gaszähler, die ich in einem
> ATtiny 84 gezählt und gespeichert habe. Mit dem 2,097152 Mhz Quarz wird
> die interne Uhr getaktet.

Falsch. So eine Messung sollte stromsparend sein, also nimmt man einen 
32,768 kHz Uhrenquarz. Für so langsame Messungen wie einen Gaszähler, 
der weniger als 1 Puls/s macht, reicht das locker.

AVR - Die genaue Sekunde / RTC

Dazu noch den Sleep Mode und der Controller läuft mit einer 
Knopfzelle jahrelang.

> Gespeichert werden die Impulse der letzten 60
> Minuten, die letzten 24 Stundenwerte, die 31 letzten Tageswerte und die
> 12 letzten Monatswerte im SRAM des ATtiny‘s.

Dafür gibt es denn internen EEPROM, der übersteht auch einen 
Versorgungsausfall.

von Carsten-Peter C. (carsten-p)


Lesenswert?

Falk B. schrieb:
> Falsch. So eine Messung sollte stromsparend sein, also nimmt man einen
> 32,768 kHz Uhrenquarz

Moin,
für meinen Zweck sind mir die paar mA egal. Schlafen legen kann man den 
ATtiny auch mit 2Mhz. Eine sekundengenaue Zeit brauche ich auch nicht. 
Wenige Minuten im Monat Abweichung ist mir genau genug. Man kann ja auch 
die Zeit täglich aktualisieren, wenn man möchte. Ich speichere nur die 
Stunden, Tages und Jahreswerte im internen EEPROM und kann diese über 
einen Befehl ins SRAM zurückschreiben. Das Speichern der Minutenwerte 
würde die Lebensdauer des EEPROM deutlich verkürzen. Ein Auslesen des 
SRAM über I2C ist deutlich schneller.
Gruß
 Carsten

von Falk B. (falk)


Lesenswert?

Carsten-Peter C. schrieb:
> Moin,
> für meinen Zweck sind mir die paar mA egal.

Wenn du eine große Batterie oder Netzversorgung hast. Die Überschrift 
des Beitrag lautet aber "Wetterstation mit Kippwaage und Akkubetrieb".

> Schlafen legen kann man den
> ATtiny auch mit 2Mhz.

Ja, der braucht dann aber deutlich mehr Strom, so um die 500uA (Sleep 
Mode Idle) im Vergleich zu einer handvoll oder gar unter 1uA bei Power 
save mode).

> Eine sekundengenaue Zeit brauche ich auch nicht.
> Wenige Minuten im Monat Abweichung ist mir genau genug.

Das schaffen beiden Taktquellen.

von Monk (roehrmond)


Lesenswert?

Carsten-Peter C. schrieb:
> Mit dem 2,097152 Mhz Quarz wird
> die interne Uhr getaktet.

Carsten-Peter C. schrieb:
> für meinen Zweck sind mir die paar mA egal. Schlafen legen kann man den
> ATtiny auch mit 2Mhz. Eine sekundengenaue Zeit brauche ich auch nicht.

Kann es sein, dass du den internen R/C Oszillator meinst, keinen Quarz?

von Carsten-Peter C. (carsten-p)


Lesenswert?

Falk B. schrieb:
> Ja, der braucht dann aber deutlich mehr Strom, so um die 500uA (Sleep
> Mode Idle) im Vergleich zu einer handvoll oder gar unter 1uA bei Power
> save mode).

Moin,
im Power-Down Mode: In this mode, the Oscillator is stopped – dann 
bleibt eben die Uhr solange stehen. Ob in irgendeinem Sleep Mode das I2C 
Signal den ATTiny aufwecken kann, habe ich nicht probiert. Sonst muss 
man etwas mehr Aufwand treiben. Man muss schauen, ob die Stromversorgung 
für den ATTiny und das stromfressende Wlan des ESP8266 reicht.

Monk schrieb:
> Kann es sein, dass du den internen R/C Oszillator meinst, keinen Quarz?

Ein Quarz ist schon richtig. Der interne Oszillator hätte 8MHz oder 
128KHz, was für den Bus zu wenig ist. Der 16 Bit Timer erzeugt einen INT 
bei Überlauf. Die werden gezählt, bis eine Sekunde erreicht ist.
Gruß
 Carsten

von Falk B. (falk)


Lesenswert?

Carsten-Peter C. schrieb:
> Falk B. schrieb:
>> Ja, der braucht dann aber deutlich mehr Strom, so um die 500uA (Sleep
>> Mode Idle) im Vergleich zu einer handvoll oder gar unter 1uA bei Power
>> save mode).
>
> Moin,
> im Power-Down Mode: In this mode, the Oscillator is stopped – dann
> bleibt eben die Uhr solange stehen.

Wer lesen kann ist klar im Vorteil. Ich schrieb Power Save mode.

https://www.mikrocontroller.net/articles/Sleep_Mode#Power_Save_Mode

von Carsten-Peter C. (carsten-p)


Lesenswert?

Falk B. schrieb:
> Wer lesen kann ist klar im Vorteil. Ich schrieb Power Save mode.

Den muss ich wohl im Datenblatt des ATTiny 84 übersehen haben und das 
Aufwecken durch I2C auch.
Gruß
 Carsten

von Falk B. (falk)


Lesenswert?

Carsten-Peter C. schrieb:
>> Wer lesen kann ist klar im Vorteil. Ich schrieb Power Save mode.
>
> Den muss ich wohl im Datenblatt des ATTiny 84 übersehen haben und das
> Aufwecken durch I2C auch.

Du Honk, dann nimmt man entweder einen anderen AVR oder den Stand By 
Mode, den auch der Attiny84 beherrscht!

von Uuu B. (hansdampf2)


Lesenswert?

Paul schrieb:
> meine Kippwaage mit Reed-Kontakt

den Reed-Kontakt würde ich ersetzen durch einen Hall-Sensor, hält 
einfach länger. Außerdem könnte man dann notfalls auch einen Binärzähler 
anschließen, das Prellen ist ja dann weg. Als (Hardware-) Anregung hier 
meine Lösung für Regen-, Windmesser usw. mit ATtiny:
[http://www.haus-computer.de/files/Hauscomputer_Hardware_Bd5.pdf]

von Monk (roehrmond)


Lesenswert?

Uuu B. schrieb:
> den Reed-Kontakt würde ich ersetzen durch
> einen Hall-Sensor, hält einfach länger

Seit wann halten Reed-Kontakte nicht ewig?

von Wolf17 (wolf17)


Lesenswert?

Uuu B. schrieb:
> den Reed-Kontakt würde ich ersetzen durch einen Hall-Sensor, hält
> einfach länger

Ja, heute wird alles auf Verschleiß gebaut.
So ein billiger 75ct Reedkontakt verträgt bei <5V/10mA höchstens 10E9 
Klicks. Der hält höchstens ein paar hundert Jahre  :-)
https://www.reichelt.de/index.html?ACTION=7&LA=3&OPEN=0&INDEX=0&FILENAME=C300%2FKSK-1A66_V03.pdf

Beitrag #7725644 wurde vom Autor gelöscht.
von Paul (deadeyeflint)


Lesenswert?

Uuu B. schrieb:
> Paul schrieb:
>> meine Kippwaage mit Reed-Kontakt
>
> den Reed-Kontakt würde ich ersetzen durch einen Hall-Sensor, hält
> einfach länger. Außerdem könnte man dann notfalls auch einen Binärzähler
> anschließen, das Prellen ist ja dann weg. Als (Hardware-) Anregung hier
> meine Lösung für Regen-, Windmesser usw. mit ATtiny:
> [http://www.haus-computer.de/files/Hauscomputer_Hardware_Bd5.pdf]

Besten Dank. Das werde ich mir heute einmal zu Gemüte führen.

Habe es jetzt übrigens mittels ATtiny85 gelöst. Hat ein paar nerven 
gekostet, mit den Registern des tiny, aber es funktioniert nun final.

von Uuu B. (hansdampf2)


Lesenswert?

Wolf17 schrieb:
> verträgt bei <5V/10mA höchstens 10E9
> Klicks
In der Präsentation steht 1E9! Bei Windsensoren ist das durchaus 
kritisch.
Das wäre bei (angenommener) 1 Umdrehung eines Windsensors je Sekunde 
86400 Klicks je Tag. (1E9/86400)/365=31 Jahre. Wenn das Prellen auch 
mitgezählt wird, verkürzt sich die Zeit entsprechend. Mein (etwas 
älterer) Reed-Kontakt von Conrad hielt nur wenige Monate ... Für einen 
Regensensor könnte es natürlich bis zur Rente reichen.

von Bauform B. (bauformb)


Angehängte Dateien:

Lesenswert?

Monk schrieb:
> Uuu B. schrieb:
>> den Reed-Kontakt würde ich ersetzen durch
>> einen Hall-Sensor, hält einfach länger
>
> Seit wann halten Reed-Kontakte nicht ewig?

Naja, Klimakatastrophe, Starkregen... Mal angenommen, die Kippwaage 
kippt alle 5 Sekunden, dann hält ein Reedkontakt nur 150 Jahre ;)

von Rahul D. (rahul)


Lesenswert?

Bauform B. schrieb:
> Naja, Klimakatastrophe, Starkregen... Mal angenommen, die Kippwaage
> kippt alle 5 Sekunden, dann hält ein Reedkontakt nur 150 Jahre ;)

selbst, wenn er sekündlich kippt, sind es dann doch immer noch 30 Jahre.
Das fällt dann aber auch schon unter "geplante Obsoleszenz" ;)

von Rainer W. (rawi)


Lesenswert?

Bauform B. schrieb:
> Mal angenommen, die Kippwaage kippt alle 5 Sekunden
Wie sollte sie. Bei einem Jahresniederschlag von 800 mm und den 
angegebenen 0.3mm/Puls liegt man unter 3000 Pulsen pro Jahr, d.h. 6000 
Schaltungen p.a.

Wolf17 schrieb:
> So ein billiger 75ct Reedkontakt verträgt bei <5V/10mA höchstens 10E9
> Klicks. Der hält höchstens ein paar hundert Jahre  :-)

Mit Zahlen hast du es nicht so, oder?
Wie kommst du auf 10 Mrd Schaltungen? Im Datenblatt steht etwas von 1E9.

Aber auch das wären bei den durchschnittlich weniger als 3000 zu 
erwartenden Pulsen pro Jahr immer noch mehr als hunderttausend Jahre.

Rahul D. schrieb:
> selbst, wenn er sekündlich kippt, sind es dann doch immer noch 30 Jahre.

Selbst auf irgendeiner Teeplantage am Südhang des Himalaya kannst du an 
deine Zahl der Jahre noch mehr als einen Faktor 400 anbringen.
Wie kommst du auf sekündliches Kippen? Du darfst nicht irgendein 
Starkregenereignis mit dem Mittelwert zur Berechnung der Lebensdauer 
gleichsetzen.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Uuu B. schrieb:
> Als (Hardware-) Anregung hier
> meine Lösung für Regen-, Windmesser usw. mit ATtiny:
> [http://www.haus-computer.de/files/Hauscomputer_Hardware_Bd5.pdf]

Wenn du da Probleme mit dem Prellen des Reed-Kontaktes hattest, lag das 
an deiner fehlenden/untauglichen Entprellung in der Software.

von Uuu B. (hansdampf2)


Lesenswert?

Rainer W. schrieb:
> Wenn du da Probleme mit dem Prellen des Reed-Kontaktes hattest, lag das
> an deiner fehlenden/untauglichen Entprellung in der Software.

Red mir kein Kind in den Bauch! ICH habe kein Problem mit Prellen, weder 
analog noch digital. Das Prellen ist aber bei Kontakten real vorhanden 
und muss angemessen mit Filtern beseitigt werden. Bei einem (in diesem 
Thread nicht betrachteten) Windgeschwindigkeitsmesser ist die 
softwareseitige Entprellung durchaus problematisch, da bei extremen 
Windgeschwindigkeiten die echten Schaltauslösungen möglicherweise 
weggefiltert werden. Da spielen auch Alterungserscheinungen des 
Reedkontaktes lange vor einem Ausfall eine Rolle. Auch aus diesem Grund 
wäre ein Hall-Sensor hier die bessere Wahl. Bei dem Batteriebetrieb 
einer Kippwaage spielt das alles aber überhaupt keine Rolle.

von Rainer W. (rawi)


Lesenswert?

Uuu B. schrieb:
> Red mir kein Kind in den Bauch! ICH habe kein Problem mit Prellen, weder
> analog noch digital. Das Prellen ist aber bei Kontakten real vorhanden
> und muss angemessen mit Filtern beseitigt werden.

Das hatte ich anders verstanden.
Du nennst Prellen und Lebensdauer als Nachteil (S.8).
Lebensdauer hatte ich schon vorgerechnet und Prellunterdrückung ist nun 
mal geschickterweise ein Softwarethema.

"Der Sensor hat aber 3 Nachteile:
...
• Der Reedkontakt prellt und ist nicht für lange Zeiträume ausgelegt 
(mögliches „Kontaktkleben“)."

von Rainer W. (rawi)


Lesenswert?

Uuu B. schrieb:
> Red mir kein Kind in den Bauch! ICH habe kein Problem mit Prellen, weder
> analog noch digital. Das Prellen ist aber bei Kontakten real vorhanden
> und muss angemessen mit Filtern beseitigt werden.

Das hatte ich anders verstanden.
Du nennst Prellen und Lebensdauer als Nachteil (S.8).

"Der Sensor hat aber 3 Nachteile:
...
• Der Reedkontakt prellt und ist nicht für lange Zeiträume ausgelegt 
(mögliches „Kontaktkleben“)."

Lebensdauer hatte ich schon vorgerechnet und Prellunterdrückung ist nun 
mal geschickterweise ein Softwarethema.

von Monk (roehrmond)


Lesenswert?

Rainer W. schrieb:
> mögliches „Kontaktkleben“

Passiert nur, wenn man den Kontakt überlastet

von Rainer W. (rawi)


Lesenswert?

Monk schrieb:
> Rainer W. schrieb:
>> mögliches „Kontaktkleben“
>
> Passiert nur, wenn man den Kontakt überlastet

Von mir stammt das nicht.

Kontaktkleben hat nichts mit Lebensdauer zu tun, sondern mit Auslegung 
der Schaltung.

von Rahul D. (rahul)


Lesenswert?

Rainer W. schrieb:
> Selbst auf irgendeiner Teeplantage am Südhang des Himalaya kannst du an
> deine Zahl der Jahre noch mehr als einen Faktor 400 anbringen.
> Wie kommst du auf sekündliches Kippen? Du darfst nicht irgendein
> Starkregenereignis mit dem Mittelwert zur Berechnung der Lebensdauer
> gleichsetzen.

Das war gar nicht auf eine konkrete Anwendung bezogen, sondern auf deine 
Berechnung. Würde der Reed-Kontakt sekündlich mit der von dir 
veranschlagten Lebensdauer (maximale Auslösung vor Ausfall) betätigt 
werden, wären es immer noch 30 Jahre.

Vielleicht möchte ja jemand in einer Tropfsteinhöhle oder an einem 
Wasserfall die "Regenmenge" messen ;)

von Rainer W. (rawi)


Lesenswert?

Rahul D. schrieb:
> Das war gar nicht auf eine konkrete Anwendung bezogen, sondern auf deine
> Berechnung.

Meiner Berechnung liegen statisch zu erwartende Niederschlagsmengen zu 
Grunde. Da kommt der Sensor nicht in die Verlegenheit, über so einen 
Zeitraum sekündlich zu kippen. Die 30 Jahre sind für den betrachteten 
Niederschlagssensor ein bedeutungsloser, theoretischer Wert.

von Rahul D. (rahul)


Lesenswert?

Rainer W. schrieb:
> Die 30 Jahre sind für den betrachteten
> Niederschlagssensor ein bedeutungsloser, theoretischer Wert.

Was anderes habe ich auch nicht behauptet.
Es ging mir nur um eine Zahl. Ob der Sensor 30 Jahre oder 150 überlebt, 
ist doch völlig unerheblich.

[more Offtopic]
Manche Leute reagieren auf solchen "Blödsinn" von mir einfach nur mit 
einem Grinsen / "Facepalm" - meine Erwartung.
[/more Offtopic]

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
Noch kein Account? Hier anmelden.