Hallo, ich versuche gerade meinen Wasserzähler mit einem TCRT5000 Modul von Aliexpress zu detektieren. Leider scheint der TCRT schon die Glasscheibe als Relfexion zu erkennen und schaltet daher sofort durch. Abstand Sensor->Glasscheibe ca. 2mm, bis zum Rädchen in der Wasseruhr noch einmal geschätzte 4mm. Hat jemand so etwas schon einmal gemacht? Gibt es Erfahrungen? Wasserzähler ist ein Sensus620, das Modul ist das hier: https://www.hotmcu.com/ir-reflective-sensor-tcrt5000-p-184.html
Hälst Du das Ding senkrecht auf die Glasscheibe? Versuchs mal gekippt, so daß das von der Scheibe reflektierte Licht nicht wieder in der Reflexlichtschranke landet.
So, ich habe es jetzt hinbekommen, dass die silberne Scheibe detektiert wird. Allerdings werden manchmal ein paar (10) Liter zuviel gezählt. Aber nicht immer. Getriggert wird auf die steigende Flanke. Auswertung erfolgt auf einem Raspi mit:
1 | #!/usr/bin/python
|
2 | import time, sys, os |
3 | import datetime |
4 | import MySQLdb |
5 | import RPi.GPIO as GPIO |
6 | |
7 | |
8 | Counter = 0 |
9 | Sendout = 0 |
10 | timeSend=time.time() |
11 | channel=25 # GPIO Pin |
12 | |
13 | GPIO.setmode(GPIO.BCM) |
14 | |
15 | |
16 | GPIO.setup(channel, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) |
17 | |
18 | def writeDatabase(): |
19 | global Counter |
20 | |
21 | db = MySQLdb.connect("hostname", "xxx", "yyy", "zzz") |
22 | |
23 | stmt="INSERT INTO wasser (Liter) VALUES(" + str(Counter) + ")" |
24 | cur = db.cursor() |
25 | cur.execute(stmt) |
26 | db.commit() |
27 | Counter=0 |
28 | db.close() |
29 | |
30 | return
|
31 | |
32 | def Interrupt(channel): |
33 | global Counter |
34 | |
35 | Counter = Counter + 1 |
36 | #print "Counter " + str(Counter)
|
37 | |
38 | |
39 | |
40 | GPIO.add_event_detect(25, GPIO.RISING, callback = Interrupt, bouncetime = 400) |
41 | |
42 | try: |
43 | while True: |
44 | time.sleep(0.1) |
45 | |
46 | # save every quarterly hour to the database
|
47 | if (time.time()-timeSend)>900: |
48 | writeDatabase() |
49 | timeSend=time.time() |
50 | |
51 | |
52 | except KeyboardInterrupt: |
53 | GPIO.cleanup() |
54 | print "\nBye...\n" |
:
Bearbeitet durch User
und wie hast Du nun den TCRT5000 angebracht ? Zeig doch mal ein Bild bitte...
Hallo, > Pete K. schrieb: > ich versuche gerade meinen Wasserzähler mit einem TCRT5000 Modul von > Aliexpress zu detektieren. > Leider scheint der TCRT schon die Glasscheibe als Relfexion zu erkennen > und schaltet daher sofort durch. > Abstand Sensor->Glasscheibe ca. 2mm, bis zum Rädchen in der Wasseruhr > noch einmal geschätzte 4mm. > Wasserzähler ist ein Sensus620, das Modul ist das hier: > https://www.hotmcu.com/ir-reflective-sensor-tcrt5000-p-184.html Wenn du das Modul statisch, so wie es ist, verwendest, reagiert es auch auf Umgebungslicht und statische Reflexe. Eine Möglichkeit ist es, das Signal zu differenzieren und dann eine definierte Triggerschwelle zu setzen. Das siehst du nur noch die Hell-Dunkel-Änderungen von der drehenden Scheibe. Allerdings kommt es dann auch möglicherweise zu Zählverlusten, falls der Zähler bei sehr geringen Verbräuchen nur schleicht. Die statische Messung kannst du auch machen, dann solltest du den Sender vom Empfänger aber besser entkopplen (mit vorgesetzten Blenden bzw. Röhrchen.), so daß tatsächlich nur der Reflex von der Zählscheibe auf die Empfangsoptik fällt. Der Sendestrahl kann auch so eingegrenzt werden, dass auf dem recht kleinen Zaählrad nur ein kleiner lichtpunkt projiziert wird. Aber auch da kann es zu Fehlzählungen kommen, weil die Schaltung keine Hysterese hat. Diese kannst du aber auch programmtechnisch einführen. Gruß Öletronika
Pete K. schrieb: > Getriggert wird auf die steigende Flanke. Und wie sieht das Signal jetzt aus? Ein Interrupt ist für so ein schnarchlangsames Signal der vollkommen falsche Ansatz. Oder wieviel tausend(!) Impulse erwartest du pro Sekunde(!)?
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Ein Interrupt ist für so ein schnarchlangsames Signal der vollkommen > falsche Ansatz. Oder wieviel tausend(!) Impulse erwartest du pro > Sekunde(!)? Aber das ist so schön einfach mit dem Interrupt ;-) Ok, ich werde es mal mit GPIO Auswertung versuchen. Anbei zwei Bilder vom Aufbau sowie der "Messung" von gestern und heute. Der Deckel ist bis auf ca. 1/2 cm geschlossen.
Kurze Rückmeldung: Mit GPIO-Polling scheint das besser zu funktionieren. Aber ein paar Liter zuviel zählt er manchmal schon noch. Ich werde mal die Klappe noch etwas mehr abdichten (obwohl der Sensor ja einen daylight blocking Filter hat).
Daylight blocking Filter ist gut und schön. Aber technische Lampen werfen Ihre 50 und 100Hz rein.
Hier ist noch eine weitere Möglichkeit mit induktivem Näherungsschalter: http://blog.steveundkristin.de/2015/09/13/fhem-wasserzaehler-auslesen-mit-hilfe-von-mysensors/
Lothar M. schrieb: > Pete K. schrieb: >> Getriggert wird auf die steigende Flanke. > Und wie sieht das Signal jetzt aus? > > Ein Interrupt ist für so ein schnarchlangsames Signal der vollkommen > falsche Ansatz. Oder wieviel tausend(!) Impulse erwartest du pro > Sekunde(!)? Hö, aber wieso soll man jetzt keinen Interrupt nehmen, nur weil das Ereignis nicht so oft passiert? Das leuchtet mir nicht ein. Wenn ich in mein Notebook ein USB-Gerät einstecke, generiert das auch einen Interrupt, und das passiert vielleicht dreimal am Tag ... Es mag aus anderen Gründen (Rauschen) in dem Fall nicht die beste Lösung sein, ok.
:
Bearbeitet durch User
Pete K. schrieb: > Aber das ist so schön einfach mit dem Interrupt ;-) Interrupt ist schon der richtige Weg, aber nicht vom Sensor, sondern vom Timer. Im Timerinterrupt liest du dann den Zustand vom Sensor ab.
Pete K. schrieb: > Getriggert wird auf die steigende Flanke. Zur Filterung könnte man die Zeit zwischen steigender und fallender Flanke messen. Ist diese zu kurz, werden die Pulse als Störung ignoriert. Ist in der Flankendetektion bereits ein Filter integriert? Liesse sich ein Wake Up mit den Flanken auslösen? Während der meisten Zeit fliesst kein Wasser. Ausser der Spülkasten leckt.
moin moin, habe hier ReflexKoppler EE-SPY402 von omron liegen. Da die Dinger sehr empfindlich sind, Sende-Empfänger sind mit Cu-Blech abgeschirmt. Ev. mal in diese Richtung prüfen. Würde mich zum auslesen des Gaszählers interessieren.
Hi, Man kann den Wasserzähler sehr gut mit einem billigen Lasermodul und Fotodiode/transistor auslesen. Der Laserpunkt wird auf das Flügelrad gerichtet. Je nachdem ob das Flügelrad oder der Zwischenraum getroffen wird wird das ganze Zählergehäuse weniger oder mehr ausgeleuchtet. Die Fotodiode muss gar nicht genau ausgerichtet werden. Eine Abdeckung schützt vor Fremdlicht. Ich habe noch ein altes Foto gefunden. Mittlerweile gibt es eine 3d-gedruckte Version der Halterung für Laser und Diode. Foto liefere ich nach. BG, Tom
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.