Voor degene die hier iets mee kunnen: Ik lees de watermeter uit met een TCRT5000. Niet het printje dat je kantenklaar kan kopen maar het discrete component met een aantal weerstanden en 1 extra transistor.
Mijn watermeter heeft een 1/3e spiegeltje op de 0.1 liter uitlezing
Zou je dus optisch moeten kunnen uitlezen dacht ik zo.
Data sheet erbij gehaald. De TCRT5000 heeft een CTR van ca 10%. dwz een verandering van stroom door de LED wordt maar voor 10% gekoppeld naar de photo-transistor. Bij een LED stroom van ca 2mA is de uitgangsstroom ca 140uA (lees ik uit de grafiek vd datasheet).
3V3/140uA = (ca) 22k Ohm
Dus volgende schakeling gemaakt: (Let op het symbool vd TCRT5000 kon ik niet vinden in mijn software dus ik heb een standaard gepakt met 6 pootjes. Het zijn er dus maar 4)
Tevens een 'bracket' gemaakt van hout, ja dat ziet er profi uit
Met de scope gemeten wat daar uitkomt en dat zag er veelbelovend uit. Dus met een ESP8266 ingekoppeld op de Analoge input (A0). Plaatjes van de output daarvan: (2e is ingezoomd van 1e):
Ik zal hier geen code invoegen, als daar behoefte aan is hoor ik het van de tweakers.
Aangezien ik dezelfde ESP ook wil gebruiken voor het monitoren van andere sensoren in het huis kan ik de A0 input niet 'pollen'. Regelmatig maakt de ESP contact met een smart plug en dat kan zomaar seconden duren. Kortom het moet onder interrupt. Na wat rekenwerk kwam ik op ca elke 400msec een interrupt om te bepalen of de rotor draait. Uitgegaan van max 15l/min ofwel 0.25/sec. De rotor draait dus max 1 rondje per 4 secs, ik wil 10 samples/rondje = 400msec.
Geimplementeerd en het werkt.
Echter zo geef ik de ESP wel heel veel werk en in verreweg de meeste gevallen komt de interrupt werkloos terug met: 'nee niks te doen' . Nu is een ESP geduldig maar ik had er toch geen lekker gevoel bij. Liever heb ik een schakeling die een digitale puls geeft per liter. In dat geval zou ik dus slechts per 4 seconden 1 interrupt krijgen en die is dan ook altijd geldig.
Op de bekende Elektronica winkeltjes op het net kun je een TCRT5000 printje kopen met een comparator aan boord. Deze geeft zowel het analoge signaal als een digitale puls af. Een en ander in te regelen met een potmeter. Na wat zoeken kwam ik op het schema. Ik had gehoopt dat er enige vorm van hysteresis in het digitale signaal zou zitten maar helaas. Land je dus ooit op het randje vh spiegeltje, precies op het omslagpunt dan krijg je jitter en dus foute informatie.
Ik moest er even over nadenken of dit met slechts enkele componenten te realiseren is en kwam op de volgende uitbreiding:
Slechts 3 componenten extra dus! Voor de NPN kun je vrijwel elk type gebruiken. Ik had nog wat SMD liggen, een BC848 dacht ik. Door de transistor output krijg je goede digitale pulsen en door de hysteresis met R2 en R3 worden deze nog wat steiler. Door op het omslagpunt wat extra of juist iets minder stroom door de LED te sturen krijg je hysteresis in het signaal. Sta je op het randje vh spiegeltje dan slaat de uitgang dus door naar een kant en blijft daar omdat ie iets wordt meegekoppeld.
In de interrupt routine -die heel kort is- sla ik alleen een counter op (increment) en ik registreer het tijdstip waarop dat gebeurt zodat ik de waterflow ook kan meten (liter/min). Een en ander uitgeprobeerd en vervolgens onder de douche gaan staan....
De rode lijn geeft aan hoelang er tussen twee interrupts zit (ofwel hoelang het duurt voor de rotor om 1 omwenteling te maken). De gele lijn is dan het aantal liter/min,
Blijkbaar is mijn verbruik ca 6 liter/min. Het duurt dan dus 10 sec voor 1 rondje vd rotor.
Heb je nu geen spiegeltje kijk dan nog s goed naar de analoge output. Zoals je ziet in het 'donkere' gedeelte (spanning hoog) zie je in het midden dat ie toch even wat uitslaat. dat is het rode wijzertje dat je ziet. Om dit betrouwbaarder te krijgen zal je wat moeten experimenteren met de LED stroom. Meer stroom = meer licht.
Wellicht heeft iemand hier wat aan.