Forum: Mikrocontroller und Digitale Elektronik Wasserzähler Impulszählung (Batteriebetrieb)


von Christine K. (christine93)


Lesenswert?

Hallo zusammen,

ich würde gerne das kollektive Wissen dieses Forums anzapfen und das 
Ganze bitte ohne dafür nieder gemacht zu werden! Danke schon mal dafür! 
:)

Zu meinem kleinen Projekt:
Meine Großeltern haben in ihrem Schrebergarten einen Wasserzähler, der 
sich allerdings in einem Schacht befindet. An dem Wasserzähler hängt ein 
Impulsgeber-Modul (einfacher Reed-Kontakt), das einen Impuls je Liter 
ausgibt.

Ich möchte den Text nicht zu lange machen, da die meisten wahrscheinlich 
am Sonntag besseres zu tun haben und direkt zu meiner Frage kommen :)

Ich suche einen Baustein, der Impulse zählt und die bereits gezählten 
Impulse auch im Spannungslosen Zustand beibehält (Batteriewechsel).
Die Impulse möchte ich mit einer MCU zur weiteren Verarbeitung erfassen 
können.
Ideal wäre ein 32-Bit Register, in dem Fall nicht für den Wasserzähler 
sondern für andere Projekte die mir grade noch mehr oder weniger 
unausgereift durch den Kopf schwirren.

Ich weiß nicht, ob ein Binary Counter das richtige Bauteil für mein 
Vorhaben wäre. Soweit ich dieses IC richtig verstanden habe, sind da 
FlipFlops drin, die auch ihren Zustand beibehalten können, wenn keine 
Spannung anliegt.
Haben mehrere Binärausgänge an denen ich theoretisch den aktuellen 
Zählerstand erfassen könnte, aber ich bräuchte für 8-Bit auch 8 Eingänge 
am Microcontroller?

Kennt ihr eventuell RTC-Module bei denen ich statt dem Quarz ein 
Impulsgeber anschließen könnte und wo kein Divider dahinter hängt, um 
aus den 32,768 kHz 1 Hz zu machen?

Gruß
Christine

von Stefan F. (Gast)


Lesenswert?

Warum verwendest du nicht einfach den Counter in der 
batterie-betriebenen MCU?

Die AVR Mikrocontroller haben ein EEPROM, dort könntest du Zählerstände 
sogar persistieren.

Was willst du da mit einer RTC?

von Sebastian S. (amateur)


Lesenswert?

Für den ganzen Sermon (Impulse zählen; Impulse/Zählwert speichern; 
irgendwie ausgeben) bietet sich ein einfachst µP (ATTiny??? oder so) an. 
Der kann zählen, speichern (EEPROM), und in verschiedenen Protokollen 
kommunizieren.
Die meisten haben jede Menge Energiesparmodi und fallen in die 
Kategorie: "Kost fast nix".

von Manfred (Gast)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Christine K. schrieb:
> An dem Wasserzähler hängt ein Impulsgeber-Modul (einfacher Reed-Kontakt),
> das einen Impuls je Liter ausgibt.
Wie sieht das Timing dieser Impulse aus (min. "An"- und min. 
"Aus"-Zeit)?
Und wie viele Impulse können da pro Minute kommen?

> Ich suche einen Baustein, der Impulse zählt und die bereits gezählten
> Impulse auch im Spannungslosen Zustand beibehält (Batteriewechsel).
EEPROM im µC bzw. GoldCap am µC würden da helfen.

Manfred schrieb:
> Gute alte Mechanik:
> https://www.pollin.de/p/elektromagnetisches-zaehlwerk-line-seiki-mz-712-830772
Eigentlich eine Nette Idee, aber *Leistungsaufnahme: 1,2 W*
Da müsste man sich also Gedanken um ein Monoflop machen. Nicht dass der 
Wasserzähler mal auf "An" stehen bleibt und die Batterie nach 1 Stunde 
leer ist.

: Bearbeitet durch Moderator
von Christine K. (christine93)


Lesenswert?

Vielen Dank für die Vorschläge!

Das mit ATTiny wäre tatsächlich eine gute Möglichkeit.
Ein EEPROM hat 100.000 Schreibzyklen bis es den Geist aufgibt oder?
Also wenn ich jeden Impuls abspeichere, damit er auch nach 
Spannungsausfall vorhanden ist, dann lebt das EEPROM nicht besonders 
lange.

Der Zähler hat einen maximalen Durchfluss von 5m³/h, wenn sich mein 
Taschenrechner nicht verrechnet hat, dann sollten das max. 83 Imp./min 
sein.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Christine K. schrieb:
> Ein EEPROM hat 100.000 Schreibzyklen bis es den Geist aufgibt oder?

Und viele Speicherzellen. Man muss ja nicht immer wieder die selbe 
überschrieben.

von ... (Gast)


Lesenswert?

Sowas gab es mal als fertiges Zaehlermodul (incl. LCD) vor Jahren
bei Max&Max. Eine 1.5 V Alkalizelle haucht so einem Zaehlerchen
mehrere Jahrzehnte Leben ein.

Vielleicht gibt es bei R&S entsprechende Module auch heute noch.

Die Ansteuerung "LCD on Glass" ist etwas trickreicht und nichts
was "einfache" Controller so out of the Box koennen.

von STK500-Besitzer (Gast)


Lesenswert?

Christine K. schrieb:
> Kennt ihr eventuell RTC-Module bei denen ich statt dem Quarz ein
> Impulsgeber anschließen könnte und wo kein Divider dahinter hängt, um
> aus den 32,768 kHz 1 Hz zu machen?

Nee, aber RTC haben i.d.R. Batterie gepuffertes User-RAM.
Man könnte also mit einem kleinen µC die Impulse messen und dann im 
User-RAM speichern.

Was soll denn überhaupt mit den Daten passieren?

von ... (Gast)


Lesenswert?

P.S.:
Eventuell liesse sich auch ein einfacher Schrittzaehler modifizieren.

von Stefan F. (Gast)


Lesenswert?

Die STM32L0 Serie hat eine RTC, Batteriegepuffertes RAM, EEPROM und 
teilweise sogar USB. Damit wäre man dann für alle Varianten offen.

Ich würde es der Einfachheit halber aber mit einem AVR machen.

von Peter D. (peda)


Lesenswert?

Christine K. schrieb:
> Ein EEPROM hat 100.000 Schreibzyklen bis es den Geist aufgibt oder?

Je Bit.
Z.B. bei einem ATtiny85 kannst Du 4000 Bits einzeln auf 0 setzen, ehe Du 
wieder löschen mußt. Die restlichen 12 Bytes kannst Du dann als Zähler * 
4000 nehmen.
Damit hast Du 400.000.000 Schreibzyklen und kannst 9 Jahre 
ununterbrochen das Wasser fließen lassen.
Man kann aber auch eine Unterspannungserkennung aufbauen und nur bei 
Absinken der Spannung speichern.

von Wolle G. (wolleg)


Lesenswert?

Christine K. schrieb:
> Ich suche einen Baustein, der Impulse zählt und die bereits gezählten
> Impulse auch im Spannungslosen Zustand beibehält (Batteriewechsel).

Man könnte evtl. auch über Dioden während des Wechsels der Batterie eine 
"Hilfsbatterie" kurzzeitig anschließen.
Oder man verzichtet auf Elektronik und einen µC und notiert sich den 
alten Zählerstand vor Batteriewechsel auf einem kleinen Zettel.
Dann fehlt aber der Spaß an der Bastelei!
Wie so häufig hier im Forum: Was soll es mal werden?

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Christine K. schrieb:
> Die Impulse möchte ich mit einer MCU zur weiteren Verarbeitung erfassen
> können.

Was hindert den MC daran, das Zählen einfach selber zu machen. 
Schnarchlahme 1,38Hz in knallharter Echtzeit zu zählen, sollte jeder MC 
leicht schaffen.

von c-hater (Gast)


Lesenswert?

Peter D. schrieb:
> Christine K. schrieb:
>> Ein EEPROM hat 100.000 Schreibzyklen bis es den Geist aufgibt oder?
>
> Je Bit.
> Z.B. bei einem ATtiny85 kannst Du 4000 Bits einzeln auf 0 setzen, ehe Du
> wieder löschen mußt. Die restlichen 12 Bytes kannst Du dann als Zähler *
> 4000 nehmen.
> Damit hast Du 400.000.000 Schreibzyklen und kannst 9 Jahre
> ununterbrochen das Wasser fließen lassen.

So isses. Mal abgesehen davon funktioniert derselbe Trick auch beim 
Flash. Der hat zwar nur ein Zehntel der garantierten Zyklen, dafür ist 
er aber auch 16 mal größer als der EEPROM. Als Pi mal Daumen Kapazität 
für weitere 9 Jahre (wenn man den für den Code benötigten Platz 
abzieht).

> Man kann aber auch eine Unterspannungserkennung aufbauen und nur bei
> Absinken der Spannung speichern.

Würde ich generell für die sinnvollste Lösung halten. Zumal man die 
Schreiberei in den NV-Bereichen ja sowieso absichern muss.

von Willy L. (sabberlotte)


Lesenswert?

Christine K. schrieb:
> Die Impulse möchte ich mit einer MCU zur weiteren Verarbeitung erfassen
> können.

Das Problem bei diesen Zählern mit EINEM Sensor ist, das sie u.U. 
kurzzeitig rückwärts drehen können und damit prellen.
Ich habe dann zwei Sensoren (wie Dreh-Encoder) verbaut.
Seit dem ist Ruhe (µC identisch mit mechanischen Zählwerk).

LG

von Uli S. (uli12us)


Lesenswert?


von Sebastian S. (amateur)


Lesenswert?

Wird die Spannung überwacht, so kann man sich vieles ersparen.
Speichern im EEPROM nur wenn der Strom ausfällt, natürlich mit einem 
ausreichenden Pufferkondensator für den µP. Oder schreiben nur wenn 10, 
100 oder 1000 Impulse eingetroffen sind. Man kann auch ein zeitliches 
Raster vorgeben, also alle 1/2 Stunde. Dann "hält" das EEPROM ewig und 
drei Tage. Auch eine Mischung von Anzahl und Zeit ist möglich. Natürlich 
hängt vieles von der gewünschten Genauigkeit ab. Also darf kein Impuls 
verschütt gehen oder kommt es auf ein Dutzend nicht an. Verluste gibt es 
ja nur rund um einen Stromausfall.
Also viele der Winzlinge (8-Füßer z.B.) haben mehrere A/D-Wandler, mit 
denen man die Spannung überwachen kann. Darüber hinaus sind auch noch 
genügend Anschlüsse für die Impulsüberwachung und eine eventuelle 
Kommunikation vorhanden.
Auch kann man über bestimmte >>Fuses<< die Ein- bzw. Abschaltbedingungen 
des µP relativ genau beeinflussen.
Allerdings haben die Teile keine hellseherischen Fähigkeiten. Ist die 
Batterie leer, so läuft nichts mit Zählen. Deshalb musst Du Dich schon 
irgendwie ums "Futter" kümmern.
Hier aber lautet die größte Gefahr: Aus den Augen, aus dem Sinn.

von Christopher J. (christopher_j23)


Lesenswert?

Sebastian S. schrieb:
> Man kann auch ein zeitliches Raster vorgeben, also alle 1/2 Stunde. Dann
> "hält" das EEPROM ewig und drei Tage.

Wenn man dann noch für eine neue Speicherung als Bedingung macht, dass 
nur neu geschrieben wird, wenn sich der Wert auch tatsächlich geändert 
hat, dann hält es noch länger als ewig und drei Tage, es sei denn man 
hat eine Bewässerungsanlage die 20 mal am Tag gießt oder das Problem, 
das irgendwo Wasser verloren geht ;)

von Lutz (Gast)


Lesenswert?

Und wer ganz faul ist und nicht viel über die Software nachdenken will, 
nimmt einfach einen FRAM für 1,50 €...

von Lotta (Gast)


Lesenswert?

Vielleicht kann frau auch nen Fahradcomputer
dazu mißbrauchen.
Dessen Batterie hält 2 Jahre.
Ich würde das Ganze sowiso nicht im Schacht installieren
sondern den Kontakt mit ner Doppelleitung ins Haus
/ in die Laube führen.
Da ist es auch nicht so feucht. Ich liebe ja Tiere,
aber Nacktschnecken im Schacht sind brrr... :-O

mfg

von Christine K. (christine93)


Angehängte Dateien:

Lesenswert?

Sorry für die späte Rückmeldung, aber hab mal über eure Vorschläge 
gegrübelt.
Also ich möchte auch nicht unbedingt den einfachsten Weg nehmen, eher 
den effizientesten. Wenn ich dabei noch was lerne, umso besser :)

Die Frage was mit den Impulsen geschehen soll ist jetzt häufiger 
aufgetaucht.
Also ich würde dem Microcontroller den initialen Zählerstand und die 
Impulswertigkeit vorgeben, so dass Zählerstand + Anzahl Impulse = 
aktueller Zählerstand ergeben. Mit einer proprietären Funktechnik 
(eventuell wird es wieder LoRaWAN werden), soll aus dem Schacht 
herausgefunkt werden.
Auf der anderen Seite würde ich dann, da ich da auch Steckdosen habe, 
vermutlich ein schlichtes Display mit dem aktuellen Zählerstand 
aufbauen.

Den Microcontroller den ich aktuell verwende verbraucht ca. 4 uA im 
sleep-Modus, was ideal für eine Batterieanwendung ist und ich möchte ihn 
nicht bei jedem Impuls per Interrupt aus dem sleep-Modus holen, weil 
dann wiederum der Verbrauch auf einige mA hochschnellt. Idealerweise 
wacht er nur auf, um kurz seine Daten zu versenden und geht dann bis zum 
nächsten Versand wieder schlafen.

Der FRAM sieht sehr interessant aus um die Impulse abzuspeichern und 
hat, wenn Wikipedia nicht lügt, 10^10 - 10^15 Schreibzyklen.

Ich überlege auch grade einen STM32L073V8 Microcontroller zu nehmen, da 
dieser einen LPTIMER hat, der von extern getriggert werden kann. Also 
ein RTC ohne Divider dahinter.
Mit einem SuperCap überlebt der Microcontroller auch locker einen 
Batteriewechsel. Würde das funktionieren? Kennt sich damit jemand aus?

LG
Christine

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Christine K. schrieb:
> Mit einem SuperCap überlebt der Microcontroller auch locker einen
> Batteriewechsel. Würde das funktionieren?

Sicher irgendwie, die gibt es ja quasi beliebig groß.

Du könntest aber auch genau so das RAM von der RTC eines STM32 verwenden 
und nur dieses mit einer Knopfzelle oder Kondensator puffern. Dafür 
haben die Chips sogar einen separaten Anschluss.

Dieses Board kostet nur 5 Euro: 
http://stefanfrings.de/stm32/stm32f3.html#stm32f3mini

Es gibt auch programmierbare Funkmodule, z.B. auf Basis des ESP8266 mit 
WLAN: http://stefanfrings.de/esp8266/index.html. Bei dem könntest du die 
Daten (bei Stromausfall) im üppig großen Flash Speicher sichern.

von Christopher J. (christopher_j23)


Lesenswert?

Christine K. schrieb:
> Ich überlege auch grade einen STM32L073V8 Microcontroller zu nehmen, da
> dieser einen LPTIMER hat, der von extern getriggert werden kann.

Kannst du schon machen, wobei auch die kleineren aus der L0-Serie einen 
low-power Timer haben, dafür muss es nicht unbedingt ein Package mit 
100-Pins sein. Ok, es muss halt noch der Lora-Stack reinpassen aber 
dafür braucht es ganz sicher keine 192kB Flash.

> Mit einem SuperCap überlebt der Microcontroller auch locker einen
> Batteriewechsel. Würde das funktionieren?

Kann man alles machen aber warum speicherst du nicht deine Werte in 
regelmäßigen Abständen in irgendeinen nichtflüchtigen Speicher (EEPROM 
haben die STM32L0 mit an board)? Dazu noch einen Button, der bei 
Betätigung sofort die Werte ins EEPROM wegschreibt, falls man mal die 
Batterie wechseln will. Wenn du es besonders pfiffig machen willst, dann 
mach halt einen Mikroschalter der betätigt wird, wenn das Batteriefach 
geöffnet wird.

Das einzige, was diese Lösung gegenüber einer Goldcap nicht kann, ist 
während des Batteriewechsels noch Pulse zählen.

von Hermann Kokoschka (Gast)


Lesenswert?

Gegenüber dem ganzen Klimbim
ist das mechanische Zählwerk für 0,95Euro (oben genannt)
DIE WEITAUS sinnvollere Lösung.

Das benötigt lediglich kurz Strom wenn es schaltet,
vergisst nichts,
und die einzige erforderliche Elektronik ist ev. ein
Transistor um den Sensorimpuls zu verstärken.

von Bernhard S. (bernhard)


Lesenswert?

Wo soll sich das Display befinden, außerhalb oder im Schacht?

Im Schacht: ATmega8 im Sleep-Modus und 7-Segment LEDs, welche alle paar 
Sekunden für wenige ms aufleuchten, Batterie hält ca. 1 Jahr.

Extern mit Drahtverbindung: siehe "Im Schacht"


Extern mit Funk: 433MHz TX-RX-Modul, hier wirds anspruchsvoller, da ein 
Datenprotokoll erstellt und ausgewertet werden muss.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Hermann Kokoschka schrieb:
> Gegenüber dem ganzen Klimbim ist das mechanische
> Zählwerk für 0,95Euro (oben genannt) DIE WEITAUS sinnvollere Lösung.

Das mechanische Zählwerk kann den Zählerstand nicht per Funk senden. Das 
war dem TO aber wichtig.

Was soll man mit einem mechanischen Zählwerk anfangen, dass an und 
parallel zur Wasseruhr mit zählt? Dann hat man zwei Anzeigen tief unten 
in dem Erdloch. Super.

von Lotta (Gast)


Lesenswert?

Der Schacht ist meist unter der Erde, hat Bewehrung
und nen Metalldeckel!

Wie weit will sie da mit Funk rauskommen?
Nen Fahrradcomputer als Zähler benutzen,
und über ne doppelleitung anbinden!
Einfacher gehts nicht!

mfg

von Sebastian S. (amateur)


Lesenswert?

Irgendwie klappt’s bei mir die Zehennägel hoch, wenn ich höre: 
Batteriebetrieb plus Display plus Funk. Fehlt nur noch eine helle LED um 
den Batteriezustand anzuzeigen.

Übrigens mir ist kein µP bekannt, der im "Schlaf" zählen kann. 
Aufwecken, zählen und weiter pennen, kenn ich. Aber vielleicht gibt es 
da tatsächlich was.

Über das Senden aus dem Schacht, kann hier sowieso nur spekuliert 
werden.

von c-hater (Gast)


Lesenswert?

Sebastian S. schrieb:

> Irgendwie klappt’s bei mir die Zehennägel hoch, wenn ich höre:
> Batteriebetrieb plus Display plus Funk.

Naja, das muss sich nicht notwendigerweise widersprechen. Wenn "Display" 
ein naked LCD ist und "Funk" ein einfaches Funkmodul statt WLAN oder 
sowas, dann kann das beides auch mit Batteriebetrieb durchaus kompatibel 
sein. Siehe z.B. die Außensensoren von Wetterstationen. Funk haben die 
nahezu alle und manche haben sogar ein kleines LCD.

> Übrigens mir ist kein µP bekannt, der im "Schlaf" zählen kann.

Das sagt nur viel über dich. Natürlich gibt es µC mit CTs, bei denen man 
nahezu den gesamten µC pennen schicken kann, (mindestens) ein CT aber 
durchaus in der Lage ist, in dieser Zeit Impulse zu zählen. Man muss da 
nichtmal nach irgendwas Exotischem Ausschau halten, jeder ATmega kann 
das, nämlich mit Timer2 (bzw. TCDn bei den neueren Teilen).

von Wolle G. (wolleg)


Lesenswert?

Christine K. schrieb:
> Meine Großeltern haben in ihrem Schrebergarten einen Wasserzähler, der
> sich allerdings in einem Schacht befindet. An dem Wasserzähler hängt ein
> Impulsgeber-Modul (einfacher Reed-Kontakt), das einen Impuls je Liter
> ausgibt.
Hermann Kokoschka schrieb:
> ist das mechanische Zählwerk für 0,95Euro (oben genannt)
> DIE WEITAUS sinnvollere Lösung.
> Das benötigt lediglich kurz Strom wenn es schaltet,
> vergisst nichts,
> und die einzige erforderliche Elektronik ist ev. ein
> Transistor um den Sensorimpuls zu verstärken.
Sehe ich auch so.
Mir fällt einfach nichts ein, was man in einem Schrebergarten mit dem 
Zählerstand  noch so machen könnte, als den Wasserverbrauch zu messen 
und evtl. zu protokollieren.
Vielleicht könnte man doch mal den "tieferen Sinn" der Messung und der 
Speicherung hier erläutern.

von Christine K. (christine93)


Lesenswert?

Vielen Dank für die Lösungsvorschläge und das ihr euch die Zeit nehmt 
auf meine Fragestellung einzugehen!

Ich merke langsam, dass sich immer mehr die Leute zu Wort melden, die 
alles und jeden in Frage stellen. Vielleicht habe ich mich auch an einer 
Stelle einfach nur unglücklich oder nicht genau genug ausgedrückt. :)

Sebastian S. schrieb:
> Irgendwie klappt’s bei mir die Zehennägel hoch, wenn ich höre:
> Batteriebetrieb plus Display plus Funk. Fehlt nur noch eine helle LED um
> den Batteriezustand anzuzeigen.
Deine Zehennägel können ruhig an Ort und Stelle bleiben, ich kratze hier 
nicht mit meinen Fingernägeln an einer Kreidetafel. Im Schacht ein 
Display aufzubauen will ich nicht machen, hab ich auch nicht 
geschrieben. Das Display möchte ich auf der Datensenke-Seite aufbauen, 
weil, wie ich bereits geschrieben habe, ich dort mehrere Steckdosen habe 
und somit auch keine Batterie benötige.

Wolle G. schrieb:
> Mir fällt einfach nichts ein, was man in einem Schrebergarten mit dem
> Zählerstand  noch so machen könnte, als den Wasserverbrauch zu messen
> und evtl. zu protokollieren.
> Vielleicht könnte man doch mal den "tieferen Sinn" der Messung und der
> Speicherung hier erläutern.
Es gibt keinen tieferen Sinn, ein "einfaches" Projekt sollte es werden. 
Zum Neues lernen, wieder Technik in der Hand haben und in der aktuellen 
Lage die Zeit sinnvoll "totschlagen".

Lotta schrieb:
> Wie weit will sie da mit Funk rauskommen?
> Nen Fahrradcomputer als Zähler benutzen,
> und über ne doppelleitung anbinden!
> Einfacher gehts nicht!
Ich habe mittlerweile Erfahrungen mit LoRaWAN und bin mir sicher, dass 
diese Funktechnik mit dem kleinsten Spreizfaktor (SF7) locker aus dem 
Schacht rauskommt.
Mein Problem ist nicht der Funk sondern das energieeffiziente Zählen von 
Impulsen.

https://www.nikolaus-lueneburg.de/2019/05/i2c-impuls-counter-modul/?unapproved=1647&moderation-hash=b5c570387dd80e76a6bb681d93281358#comment-1647
Ich glaube, dass das hier ein Ansatz ist, den ich testen werde.
Wenn ich die I2C Leitungen an eine Steuerbare Spannung hänge, sollte der 
Stromverbrauch gering genug bleiben.

: Bearbeitet durch User
von STK500-Besitzer (Gast)


Lesenswert?

Christine K. schrieb:
> Mein Problem ist nicht der Funk sondern das energieeffiziente Zählen von
> Impulsen.

Dazu hatte der c-hater ja schon was geschrieben:

c-hater schrieb:
> Natürlich gibt es µC mit CTs, bei denen man
> nahezu den gesamten µC pennen schicken kann, (mindestens) ein CT aber
> durchaus in der Lage ist, in dieser Zeit Impulse zu zählen. Man muss da
> nichtmal nach irgendwas Exotischem Ausschau halten, jeder ATmega kann
> das, nämlich mit Timer2 (bzw. TCDn bei den neueren Teilen).

Der µC muss dann nur hin- und wieder "aufstehen" und versuchen die Daten 
los zu werden.
Bei einem Puls pro Liter könnte ein 16Bit-Zähler über 65m³ Wasser 
"messen".
Verbraucht man im Schrebergarten so viel?

[Offtopic]
Ich möchte auch nicht im gesetzten Alter in einen Schacht klettern, um 
den Wasserverbrauch abzulesen.
[/Offtopic]

von Bernhard S. (bernhard)


Lesenswert?

>LoRaWAN und bin mir sicher ...locker aus dem Schacht rauskommt.

Ich mir nicht, bei 868MHz könnte es mit den Ausbreitungsbedingungen 
Probleme geben. 433MHz sind ggf. Übertragungsfreundlicher.

Bitte einfach mal Empfangsversuche durchführen und uns umfassend davon 
berichten.

433MHz empfange ich noch im Keller(3 Etagen unter mir), 868MHz Probleme 
schon im Nachbarraum.

Was ich nicht ganz vestanden habe,
nach welchem Prizip soll dieses Projekt funktionieren?

A: Wasserzähler-->Zähler--> Funk(TX)    Funk(RX)--> Anzeige

B: Wasserzähler--> Funk(TX)             Funk(RX)-->Zähler--> Anzeige

von c-hater (Gast)


Lesenswert?

STK500-Besitzer schrieb:

> Der µC muss dann nur hin- und wieder "aufstehen" und versuchen die Daten
> los zu werden.

Genau. Das kann man einerseits mittels des Zählers selber machen (ist 
sowieso sinnvoll, zumindest um die Zwischenstände im NV-RAM abzulegen), 
andererseits aber auch mittels zusätzlicher Verwendung des 
Watchdog-Timers für regelmäßige Funk-Meldungen.

Das ist aber nur nötig, wenn es keinen dauerhaft erreichbaren Empfänger 
gibt. ansonsten reicht der Zähler als Weckmechanismus auch für den 
Funkverkehr. Weil: Wenn nix verbraucht wurde seit der letzten Meldung, 
gibt's auch nix Neues zu melden. Capisce?

von Sebastian S. (amateur)


Lesenswert?

Sollen die Daten per Funkenschlag (egal welche Sorte) übermittelt werden 
würde ich aus energetischen Erwägungen heraus, einmal pro Minute den 
Empfänger anwerfen.
Dein Abholer muss dann, im schlimmsten Falle eine Minute lang, den 
Abholcode übertragen. Ist ja nicht so schlimm, da für ihn das Futter aus 
der Steckdose kommt.
Empfängt der "Zähler" den Abholcode, so sendet er was zu übertragen ist. 
Anschließend geht’s wieder in die Heia.
Auf diese Weise muss der Sender (Zähler) nicht "dauernd" arbeiten. Die 
Batterie wird es Dir danken.
Hast Du es eiliger oder ist die Batterie größer, so kannst Du auch ein 
kürzeres Raster wählen.
Man  sollte aber im Auge behalten, dass auch der Empfang richtig viel 
Strom kostet,

: Bearbeitet durch User
von J. V. (janvi)


Lesenswert?

Man kann so was natürlich in allen Varianten selbst entwickeln. Aber bei 
Stückzahl 1 für Omas Gartenhaus ist das so ein Problem mit dem Aufwand. 
Es gibt verschiedenste M-Bus Gateways die auch S0 Impuls können zu 
kaufen. Wenn es einfach sein soll (und nicht für Abrechnungszwecke 
zertifiziert sein muss) würde ich ein paar CMOS Zähler 4029 in Reihe 
schalten. Die gibts zu 20 Cent, sie laufen schon bei 3 Volt und der 
Stromverbrauch ist unschlagbar. Ablesen auf LED bei Bedarf mit 
Knopfdruck.

von Wolle G. (wolleg)


Lesenswert?

J. V. schrieb:
> Aber bei Stückzahl 1 für Omas Gartenhaus ist das so ein Problem mit dem Aufwand.
Zielstellung für das Projekt ist:
Christine K. schrieb:
> Es gibt keinen tieferen Sinn, ein "einfaches" Projekt sollte es werden.
> Zum Neues lernen, wieder Technik in der Hand haben und in der aktuellen
> Lage die Zeit sinnvoll "totschlagen".

von Stefan F. (Gast)


Lesenswert?

J. V. schrieb:
> Ablesen auf LED bei Bedarf mit Knopfdruck.

Man könnte auch einen optischen Sensor mit der Taschenlampe anleuchten, 
um die Anzeige für ein paar Sekunden einzuschalten.

von Christopher J. (christopher_j23)


Lesenswert?

Christine K. schrieb:
> Ich glaube, dass das hier ein Ansatz ist, den ich testen werde.
> Wenn ich die I2C Leitungen an eine Steuerbare Spannung hänge, sollte der
> Stromverbrauch gering genug bleiben.

Ich glaube du machst hier einen Denkfehler. Beim I2C hängst du ja den 
Bus über einen Pullup an deine Versorgungsspannung und so lange die 
jeweiligen Teilnehmer nichts senden (d.h. den Bus "runterziehen") fließt 
da auch kein nennenswerter Strom, weil die Eingänge hochohmig sind.

Wo ich mir eher Gedanken drum machen würde wäre die Wahl des 
Spannungswandlers und insbesondere dessen Ruhestrom (wenn er denn 
dauerhaft läuft).
Ich würde entweder einen mit extrem geringen Ruhestrom nehmen oder (das 
wäre meine bevorzugte Variante) einen Mikrocontroller nehmen, der über 
den gesamten Spannungsbereich der Batterie (angenommen LiIon oder 3AA in 
Serie) funktioniert. Da bieten sich etwa AVR an und wenn es etwas 
moderner sein soll, etwa einige NRF, z.B. NRF52832, es gibt aber 
natürlich noch deutlich mehr. Dann braucht man den Spannungswandler nur 
noch für Lora und kann den (Enable-Pin vorausgesetzt) einfach abschalten 
wenn man nicht gerade funkt.

von Christine K. (christine93)


Lesenswert?

Christopher J. schrieb:
> Ich glaube du machst hier einen Denkfehler. Beim I2C hängst du ja den
> Bus über einen Pullup an deine Versorgungsspannung und so lange die
> jeweiligen Teilnehmer nichts senden (d.h. den Bus "runterziehen") fließt
> da auch kein nennenswerter Strom, weil die Eingänge hochohmig sind.
Genau, SDA & SCL werden jeweils mit einem PU (10K) hochgezogen.
Das sind 0,66 mA bei 3,3 V, was unter gewohnten Bedingungen nicht viel 
ist, aber für eine 2200 mAh Batterie auf Dauer schon belastend sein 
kann.

Christopher J. schrieb:
> Wo ich mir eher Gedanken drum machen würde wäre die Wahl des
> Spannungswandlers und insbesondere dessen Ruhestrom (wenn er denn
> dauerhaft läuft).
XC6206P332MR von Torex. Den hab ich in meinen früheren Projekten 
verwendet, der war bisher immer ideal für meine Projekte.

STK500-Besitzer schrieb:
> [Offtopic]
> Ich möchte auch nicht im gesetzten Alter in einen Schacht klettern, um
> den Wasserverbrauch abzulesen.
> [/Offtopic]
!!! Das haben die bisher zwar nie selbst gemacht, aber das kommt 
natürlich auch auf die pro-Liste :)

So wie ich das bisher lese, bieten sich mir 2 Möglichkeiten.
1.
Ich verwende einen ATMega, der im power-save Modus ist und Impulse 
zählt. Das Problem hier, ich hab diese Controller noch nie außerhalb der 
Arduino Umgebung programmiert, was für mein Vorhaben aber wahrscheinlich 
notwendig sein wird. Könnte hier aber auf die STM32L umschwenken, die 
ich schon mit der STM-Hauseigenen IDE programmiert habe.

2.
Das ist der Easy-Mode. Ich verwende einen Binary-Counter (z.B. 12Bit 
"SN74HC4040DR"), damit kriege ich 4096 Zustände hin ohne den Controller 
zu wecken. Müsste hier aber alle 12-Ausgänge des Binary-Counter an 
jeweils einen GPIO hängen. Wenn der max. Wert erreicht ist, speichere 
ich den Wert im EEPROM ab und resette den Binary-Counter.
Der Ablauf wäre hier:
MCU wakeup -> GPIO's abfragen -> Zählerstand berechnen & senden -> 
schlafen gehen

: Bearbeitet durch User
von Name: (Gast)


Lesenswert?

Christine K. schrieb:
> Das mit ATTiny wäre tatsächlich eine gute Möglichkeit.
> Ein EEPROM hat 100.000 Schreibzyklen bis es den Geist aufgibt oder?
> Also wenn ich jeden Impuls abspeichere, damit er auch nach
> Spannungsausfall vorhanden ist, dann lebt das EEPROM nicht besonders
> lange.

Man kann einfach die Schreibvorgänge auf mehr Speicherzellen verteilen.

Man nehme 1024 Speicherzellen, und initialisiere sie mit 0xFFFF vor.
Dann schreibt man mit jedem Impuls in eine neue Speicherstelle. Ist man 
bei 0 angelangt, löscht man alle und fängt von vorn an.
Die Höchstwertige Speicherzelle, die nicht 0xFFFF enthält, enthält den 
aktuellsten Zählerstand.
Gibt beliebig viele andere Varianten, wie man den Gedanken umsetzen 
kann.

Jedenfallls hat man die Anzahl der Schreibzyken mit diesem (oder einem 
ähnlichen Konzept) um den Faktor 1024 erhöht.

Nachdem heutige EEPROMs in µCs oft 100000 Löschzyklen haben, kann man so 
mindestens 100k*1024 mal Impulse zählen.

Alternativen:
Man nimmt ein FRAM.
Oder ein MRAM.
Oder ein Batteriegepuffertes SRAM.
Oder einen MSP430 mit FRAM.
Oder dise SRAM-EEPROM-Kombo von Microchip (Name ist mir entfallen).
....

von Bernhard S. (bernhard)


Lesenswert?

Christine K. schrieb:
>> Ich glaube du machst hier einen Denkfehler. Beim I2C hängst du ja den
>> Bus über einen Pullup an deine Versorgungsspannung und so lange die
>> jeweiligen Teilnehmer nichts senden (d.h. den Bus "runterziehen") fließt
>> da auch kein nennenswerter Strom, weil die Eingänge hochohmig sind.

> Genau, SDA & SCL werden jeweils mit einem PU (10K) hochgezogen.
> Das sind 0,66 mA bei 3,3 V, was unter gewohnten Bedingungen nicht viel
> ist, aber für eine 2200 mAh Batterie auf Dauer schon belastend sein
> kann.

Es fließt nur ein nennenswerter Strom durch die Bus-Widerstände, wenn 
die SDA oder oder/und SDL gegen GND gezogen wird.

Wurde eine Stopp-Sequenz vom Master gesendet,
dann sind alle Leiungen brav high^^


Nach welchem Prizip soll dieses Projekt funktionieren?

A: Wasserzähler-->Zähler--> Funk(TX)    Funk(RX)--> Anzeige

B: Wasserzähler--> Funk(TX)             Funk(RX)-->Zähler--> Anzeige

: Bearbeitet durch User
von Christine K. (christine93)


Lesenswert?

Bernhard S. schrieb:
> Nach welchem Prizip soll dieses Projekt funktionieren?
>
> A: Wasserzähler-->Zähler--> Funk(TX)    Funk(RX)--> Anzeige
>
> B: Wasserzähler--> Funk(TX)             Funk(RX)-->Zähler--> Anzeige

Nach Prinzip A. Wobei ich mir auf der Anzeige-Seite keine Sorgen um die 
Spannungsversorgung machen muss.

von Christopher J. (christopher_j23)


Lesenswert?

Bernhard S. schrieb:
> Es fließt nur ein nennenswerter Strom durch die Bus-Widerstände, wenn
> die SDA oder oder/und SDL gegen GND gezogen wird.

Ganz genau das meinte ich in meinem vorherigen Beitrag. So lange der 
Controller den I2C-Pin als Eingang konfiguriert hat, dürfte bedingt 
durch den Eingangswiderstand in der Größenordnung von Megaohm, kein 
nennenswerter Strom fließen. Anders sieht es aber etwa bei I2C-Sensoren 
aus, die durch "clock-stretching" die Datenleitung für die Dauer eines 
Messvorgangs runterziehen. Das ist hier zwar nicht der Fall aber trifft 
z.B. auf SHT3x zu. Da macht das clock-stretching schon einen merklichen 
Unterschied.

von Peter D. (peda)


Lesenswert?

Christopher J. schrieb:
> Das ist hier zwar nicht der Fall aber trifft
> z.B. auf SHT3x zu. Da macht das clock-stretching schon einen merklichen
> Unterschied.

Du kannst doch einfach die Wandlungszeit abwarten oder das 
clock-stretching abschalten.
Im Ruhezustand zieht der I2C-Bus jedenfalls keinen Strom.

von Sebastian S. (amateur)


Lesenswert?

@Christine K.
>Das ist der Easy-Mode. Ich verwende einen Binary-Counter (z.B. 12Bit
>"SN74HC4040DR"), damit kriege ich 4096 Zustände hin ohne den Controller
>zu wecken. Müsste hier aber alle 12-Ausgänge des Binary-Counter an
>jeweils einen GPIO hängen. Wenn der max. Wert erreicht ist, speichere
>ich den Wert im EEPROM ab und resette den Binary-Counter.
Alle Ausgänge an einen µC hängen bringt auch nicht viel!
Du müsstest ja zyklisch alle Pins abfragen, ob der Junge die Schnauze 
voll hat. Das geht aber nicht im "Schlaf".
Willst Du ein paar Pins sparen, so spendiere Deinem System einen 
Parallel-Seriell-Wandler, der den aktuellen Zustand übernehmen kann und 
nach dem Schieben kann sich der µP jedes Bit "in Ruhe", von allen 
Seiten" ansehen.
Unterm Strich ist das einzige Problem, wie schnell der Wasserzähler 
tickt.

von Bernhard S. (bernhard)


Lesenswert?

Sebastian S. schrieb:
> Unterm Strich ist das einzige Problem, wie schnell der Wasserzähler
> tickt.

Das sind alles "langsame" Vorgänge, einfach den Ausgang des 
Wasserzählers an einen Eingangspin des µC klemmen, den Pinzustand in 
angemessenen Abständen abfragen, somit umgeht man die Erfassung von 
Störimpulsen und anschließend Pegeländerungen bzw. Flanken zählen.

Den internen Pull-Up Widerstand könnte man nutzen, um den Eingangspin 
auf HIGH zu ziehen, und nach der Pin-Abfrage gleich wieder abschalten, 
spart einige µA, wenn der Read-Kontakt beim Schalten niederohig wird und 
die Batterien halten länger, Greta würde sich freuen^^

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.