Hallo zusammen,
versuche schon einige Zeit meinen Wasserzähler per Reedkontakt / Hallsensor auszulesen.
Mein Aufbau ist ein ESP32 geflasht mit der Tasmota FW 13.3.0
An GPIO 21 wurde der Counter 1 aktiviert.
Beim ersten Versuch mit einem Reedkontakt wurden trotz 10k Pullup Widerstand am Eingang, und diverseste Debounce/Debouncehigh/low Werte, aberwitzige Zählerstände erfasst.
Diese vom Wasserversorger gelieferter Zähler ist bereits mit einem Magnet ausgestattet. Leider gibt es nur einen Impuls pro 5l, entsprechend lange knn das Siganl anliegen oder genau irgendwo dazwischen liegen.
Mein aktueller Versuch ist ein Hallsensor ohne externen Pullup-Widerstand. Mit diesem habe ich jetzt reellere Werte, dennoch weit von Gut und Böse.
Seit drei Tagen wird gezählt aktuell 128 Impulse sollte eigentlich 640l ergeben (128Imp*5l/Imp).
Tatsächlich sind 1,34m³ durchgelaufen.
Bin irgendwie mit meinem Latein langsam am verzweifeln. Meine Vermutung ist der bescheidene 5l Impuls. Da lässt man ein Glas Wasser runter und der Magnet hängt zwischen hier und irgendwo in der Schaltschwelle. Wie kann ich die Genauigkeit erhöhen?
Mit ner Toleranz von <100l/Monat wäre ich sehr zufrieden.
Vorab schon mal ein Danke
Wasserzähler mit HallsensorReedkontakt auslesen
-
Berker -
14. März 2024 um 10:34 -
Erledigt
-
-
-
Kennst du das Projekt mit der ESP32 Cam ?
GitHub - jomjol/AI-on-the-edge-device: Easy to use device for connecting "old" measuring units (water, power, gas, ...) to the digital worldEasy to use device for connecting "old" measuring units (water, power, gas, ...) to the digital world - jomjol/AI-on-the-edge-devicegithub.com -
Ja. Ich weiß das es das gibt, kenne es nicht wirklich.
Ich für mich leider irrelevant, da das Zählwerk abgedeckt wird. -
leider ist keine verarbeitende Rule dargestellt?
Einem weiteren Entprellen könnte man sich theoretisch so nähern.
Counter2 ist Tageszähler welcher in der 2. Tagesminute auf 0 gesetzt wird, aber auch mit ener weiteren Hysterese belegt.
rule1
ON System#boot do Var1 0 endon
on Time#Minute=2 do counter2 0 endon
on counter#c1>%VAR1% do Backlog VAR1 %value%; counter2+1 endon -
Rules sind auf Grund Skript nicht verfügbar, da der Stromzähler auch noch irgendwann dran soll...
-
und wie sieht der Skript aus - nur so können wir dir evtl. helfen
Anschaltung ist auch relevant - digitaller oder analoger Hall-Ausgang?
-
In der Konsole wurden nur die Befehle
counterdebounce 750
counterdebouncehigh 100
counterdebouncelow 100
Sowie für den Zähler nicht relevante setoption57 eingeschaltet
Der Hallsensor ist ein 5UG 25, ist zumindest das was ich darauf entziffern kann.
Angeschlossen an 3,3V und GND, Signal an GPIO21. -
counterdebounce 750
counterdebouncehigh 100
counterdebouncelow 100für digitalen Hall hätte ich so gedacht - aber bei 128 Impulsen ist die Abweichung nicht sehr groß wenn man 10l/Impus ansetzt. Also stimmt etwas mit der Hysterese-Einstellung nicht ?
counterdebounce 150 veranschlagt
counterdebouncehigh 50
counterdebouncelow 50 -
5l/Impuls gibt der Wasserzähler aus.
über den Hallsensor habe ich auch keinerlei Daten gefunden. -
Tja - wer sich einen Zufallsgenerator schenken lässt ohne ein Datenblatt, muss Lehrgeld und Zeit mitbringen.
Digitale Hall https://amzn.eu/d/6HpQQum für Tasmota sind Montag da !
-
Verständnissfrage.
Ist mit dieser Schaltung der Eingang nicht immer auf High gesetzt?
Wie soll der ESP32 da nen Unterschied erkennen wenn die 3,3V durchgeschalten werden? -
Jo - fragen kann man hier und auch das Internet !
Wichtig ist das Datenblatt vom Hersteller - sicherlich ist auch eine Low-Aktion möglich am ESP.
3,3 V (5V) -Versorgung über 10kOhm sichert "Hoch" und Hall schaltet zu "Tief" durch und zieht ESP-Eingang als Aktion tief.