Pages: [1]   Go Down
Author Topic: Water meter read  (Read 1395 times)
0 Members and 1 Guest are viewing this topic.
Bucharest
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello guys,

I'm new into the Arduino world and this is my first post here so excuse any rookie mistakes.
I'm building a system to monitor the utilities for my house (electric, gas, water).
The gas counter has a magnetic pulse, so it was pretty straight forward with hall effect sensor (just counting the pulses and sending them to the server)
For the electric power, I've based the system on http://openenergymonitor.org/ libraries (just minor tweaks to work with the components I had)
Here is the main dashboard for the system: http://shiftdel.ro/zabbix/screens.php?ddreset=1&sid=e96e7280051a9cd4

The problem that I have is with the water monitoring. I have and old counter that does not have any kind of electronic output, it is all mechanical so hall effect sensors are out of the question and it has no mirror on one of the numbers. Here is a picture of it:

The only way that I could think of is to read the "water leak indicator" (the black 6 tooth cog). To do this I've used a CNY70 (only the detector) and a laser pointer diode to be able to focus the light so the beam of light is not wider than one of the cogs tooth. When the the laser hits the background a little bit more light comes back than when it hits the cog. I only get a variation of ~30 units (from arduino's 1024 analog read) and the signal is not very clean so this makes it error prone and system is very sensitive to external light.

Ok now for the question: Does anyone (especially guys with more experience with optical systems) have an idea on how to improve this?
Please don't recommend to replace/add a counter, this is not an option due to utility company policy and space constraints in the manhole.

Thanks

Misu     
   
Logged

Peoples Republic of Cantabrigia
Offline Offline
God Member
*****
Karma: 6
Posts: 722
Arduino happiness
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

0.1 uF capacitor from analog in to GND to cut down in noise.

Over sampling followed by decimation (ie right shifting the summed results of a couple hundred reads by 7 bits, for example)

Using a comparator to create a cleaner on/off transition
Logged

Bucharest
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

0.1 uF capacitor from analog in to GND to cut down in noise.

Over sampling followed by decimation (ie right shifting the summed results of a couple hundred reads by 7 bits, for example)

Using a comparator to create a cleaner on/off transition

First of all thanks for answering.

I will try to ad a capacitor.

For a cleaner on/off transition I use this:
  if (IRsensorVal < lower){
    prevPulseState = pulseState;
    pulseState = false;
  }
  if (IRsensorVal > upper){
    prevPulseState = pulseState;
    pulseState = true;
  } 

with the lower and upper set to a few units up/down from the maximum reads.

Regarding "Over sampling followed by decimation(ie right shifting the summed results of a couple hundred reads by 7 bits, for example)"
I thought of using an average but never bit-wise operations (right shift). I will give it a try.

   


Logged

Poland
Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have some kinkd of meter like this (much newer, but still it has only rotary star and numbers - no pulses or LED).
Have you figured out any better way?
Could you post photo of system working?

PS: (And also - if you please could share the code for the electricity meter [which counts pulses and send them - i'm planning to use RF24].
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 217
Posts: 13718
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What you could do is use an LDR with a small lens or a light2frequency sensor (TSL235 ?) and detect the variation in light when the red finger (Of the 0.1 meter) passes by.
Also the 6 fingered thingie seems to be 'detectable' when rotating.
Use a small led for lighting...

Might help,
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Bucharest
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have some kinkd of meter like this (much newer, but still it has only rotary star and numbers - no pulses or LED).
Have you figured out any better way?
Could you post photo of system working?

PS: (And also - if you please could share the code for the electricity meter [which counts pulses and send them - i'm planning to use RF24].

I haven't figured out a better way, but I managed to make the thing work with some frequency filtering (a kind of "hight pass filter").
It works but the setup is not very stable, as I said in my first post (sensitive to external light, and mechanical vibrations)
Here is a picture:


For the electricity I'm not counting pulses, I measure the voltage and current and use the openenergymontor libraries to do the power calculations. I send the data through Ethernet to a web server, so I don't think the code would help you (it is a mess any way smiley ).

Misu 


* DSCF0348.JPG (233.95 KB, 1024x768 - viewed 95 times.)
Logged

Pages: [1]   Go Up
Jump to: