Wasserzähler mit Arduino auslesen

Guten Tag, ich bin neu hier und möchte mich kurz vorstellen.
Ich bin 65 Jahre alt und möchte auch noch jung bleiben. Daher möchte ich mit dem Arduino beschäftigen.
Ich habe einen Wasserzähler mit impulsausgang. Das sind zwei Drähte, weis und braun.
Kann ich mit dem Arduino den Zähler auslesen. Wie muss das Programm aussehen und wie ist die Belegung der Kabel.
Ich habe den Arduino UNO uns das Internet Shield für Arduino.
Ich bedanke mich schon im voraus für eure Hilfe.

LG Manni

Hi

Nunja ... zwei Drähte und Impuls-Ausgang - könnte schon Mehr sein.
Hast Du Mal nach Deinem Wasserzähler gegoogelt?
Im Datenblatt müsste drin stehen, ob Du einen potentialfreien Kontakt hast, oder ob Da Spannung raus kommt.
Bei zwei Drähten tendiere ich auf Reed-Kontakt pot.frei, drei Drähte könnte was Aktives dahinter hängen (aka Hall-Sensor).

Wie Dem auch sei - wenn Du dieses Signal auf maximal 0V...5V an den Arduino bekommst, musst Du 'nur noch' zählen.
Bei einem Reed-Kontakt musst Du noch entprellen (mechanische Taster Prellen, Mal nach googeln), bei einem elektronischem Impuls-Ausgang kann man sich Das sparen.

Vll. steht in der Nähe der zwei Kabel auch was an der Uhr dran?
Was wie '15V 30mA max' ??

MfG

Noch einmal...

Beispielsweise 1 an GND und 2 an einen Arduino-Eingang, der mittels INPUT_PULLUP auf 5V gezogen wird. Dann kannst Du mittels digitalRead den Eingang einlesen.

PS: Beitrag #2 kannst Du löschen.

Wenn ich das richtig verstanden habe, kommt das Kabel 1 an GND und das Kabel 2 an einem digitalen eingangs Pin.Dann den Eingang mit digitalRead auslesen.

Richtig.

Fortgeschrittene nehmen Pin 2 des Arduinos und nutzen bei Bedarf den Interrupt. Zur Datenanalyse genügt aber digitalRead. Zunächst benötigst Du eine Abschätzung der maximalen Frequenz und der minimalen High- oder Lowzeit, wenn das Signal nicht symmetrisch sein sollte. Mit einem Oszi ginge es natürlich auch :wink:

Wie kann ich die Ausgabe weiterleiten. Internet mit Arduino oder FHEM..

Das habe ich bisher geschaft. Bin halt ein Anfänger.:

//Wasserzähler auslesen
const int pulsePin = 8;     //  pulse pin
boolean pulseState, oldpulseState;
unsigned long anzeigeMillis, aktMillis;
const int anzeigeZeit = 10000;

void setup() {
 pinMode(pulsePin, INPUT_PULLUP);
 Serial.begin(9600);
 pulseState = digitalRead(pulsePin);
 oldpulseState = pulseState;
}

void loop() {
 static int Litter;
 aktMillis = millis();
 pulseState = digitalRead(pulsePin);

 if ( pulseState && !oldpulseState ) {   // positive Flanke erkannt
   Litter++;
 }
 oldpulseState = pulseState;
 if (aktMillis - anzeigeMillis >= anzeigeZeit) {
   anzeigeMillis = aktMillis;
   Serial.print("Wasserverbrauch in Litter: ");
   Serial.println(Litter);
 }

Mkass:
Das habe ich bisher geschaft. Bin halt ein Anfänger.:

So ganz wohl nicht, Du bist weiter als die meisten, die hier fragen.

LC-Display für die lokale Anzeige wäre noch eine Möglichkeit.

Mkass:
Internet mit Arduino oder FHEM..

Damit kennen sich andere aus :slight_smile:

Mkass:
Wie kann ich die Ausgabe weiterleiten. Internet mit Arduino oder FHEM..

Da kommt es ganz darauf an, was du damit machen möchtest und wo du die Daten sehen möchtest.

Ich verwende z.B. gerne eine "einfache Funkverbindung auf 433 MHz" um derartige Daten weiter zu leiten.

Und setze deinen Sketch bitte in Code-Tags, Schaltfläche </> oben links im Forumeditor verwenden.

Mit einem Ethernet Shield könntest du die Daten driekt in FHEM schreiben und anzeigen lassen.

Gruß

Hallo Scherheinz, könntes du mir dabei helfen. Bis zum Auslesen bin ich ja schon. Aber wie geht es dann weiter.
Wie muss dann mein Sketch aussehen. Was muss ich in Fhem angeben.

L.G. Manni

Hi

Was hast Du denn bis jetzt hin bekommen?
Hast Du Mal die Kabel an Deiner Wasseruhr 'ausgepiepst'? (DMM auf Widerstand messen, ggf. Schall-Symbol)
Wenn Dir das DMM dann sagt, daß bei jeder Umdrehung der Wasseruhr 1x Durchgang ist - können wir Das an den Arduino klöppeln, zehn Zeilen Code hinterher werfen und Du hast zumindest schon Mal einen Zähler zu Deiner Wasseruhr.

Wie Du Das dann in Deine Haus-Automation bekommst - kA - aber soweit sind wir noch nicht!

MfG

Edit
Sind wir wohl
Nun braucht's Jemanden mit FHEM-Erfahrung

Mein kleines Programm steht ja oben. Ich habe den Arduino an den Wasserzähler angeschossen und mit dem Seriellen Display laufen lassen. Das Programm zählt sauber mit, wenn ich Wasser laufen lasse. Ein Impuls 1 Li.
Ich möchte die Ausgabe aber in einen Webserver haben.
L.G.
Manni

Guten Tag

Wenn ich dich jetzt richtig verstanden habe möchtest du mit Hilfe eines Ethernet-Shield die Daten wohin schicken.

Jetzt stellen sich für mich zwei fragen :
Wohin möchtest du es genau schicken
Was hast du für ein Shield

mfg Vany

Danke für deine Nachfrage.

Was hab ich:

  1. Arduino Uno Rev.3 Mikrocontroller Board

  2. Ethernet Shield W5100 mit MicroSD-Karten Slot für Arduino

  3. ein kleines Programm, mit den ich den Wasserzähler auslesen kann. Die Ausgabe ist nur über den Serielen
    Monitor möglich.

  4. Ein wasserzähler mit Impulsausgang. Das kleine Programm läuft und gibt die richtigen Daten aus.

Was möchte ich.

Die Ausgabe soll in Fehm angezeigt werde. Mir fehlt somit den Code für die übergabe an Fehm. Und was muss ich
in Fehm alles machen, daymit die Daten angezeigt werden.

Mein kleines Programm:

//Wasserzähler auslesen
const int pulsePin = 8; // pulse pin
boolean pulseState, oldpulseState;
unsigned long anzeigeMillis, aktMillis;
const int anzeigeZeit = 10000;

void setup() {
pinMode(pulsePin, INPUT_PULLUP);
Serial.begin(9600);
pulseState = digitalRead(pulsePin);
oldpulseState = pulseState;
}

void loop() {
static int Litter;
aktMillis = millis();
pulseState = digitalRead(pulsePin);

if ( pulseState && !oldpulseState ) { // positive Flanke erkannt
Litter++;
}
oldpulseState = pulseState;
if (aktMillis - anzeigeMillis >= anzeigeZeit) {
anzeigeMillis = aktMillis;
Serial.print("Wasserverbrauch in Litter: ");
Serial.println(Litter);
}
}

LG Manni

Gut mit FEHM kenne ich mich nun leider nicht aus aber wenn ich das richtig verstanden habe,was auf einer Webite darüber steht, gibt es verschiedene Möglichlichkeiten etwas zu verschicken.
Link:
https://fhem.de

The program runs as a server, you can control it via web or smartphone frontends, telnet or TCP/IP directly.

was hast du dir denn vorgestellt?

Danke für eure Hilfe. Ich komm so nicht weiter. Bitte schließen sie den Topic.

LG Manni

Mkass:
Danke für eure Hilfe. Ich komm so nicht weiter. Bitte schließen sie den Topic.

LG Manni

Wieso dass denn.
Lies dir doch mal die Beschreibungen in FHEM durch.
Da gibt es reichlich Informationen.

Das ist nunmal ein "Spezialgebiet", was nicht jeder kennt.

Hi

Geschlossen wird hier wohl eher weniger.
Du hast Deine Werte - der nächste Schritt wäre, in einem FHEM-Forum nachzuhören, wie man diesen Wert dort rein bekommt.
Zur Not wird Das wohl auch mit einem Arduino gehen (also eine PHP aufrufen oder so Kram), der Weg ist hier die nächste Etappe - wenn Du Werte z.B. via PC/Browser übermitteln kannst, wird Das wohl auch mit einem Arduino machbar sein.

DAS können wir Dir aber nicht abnehmen - außerdem bis Du Der, Der bei Änderungen/Anpassungen gerufen wird :wink:
(ggf. von Dir selber, aber da weißt Du wenigstens, von Wem's kommt * gg *)

MfG