Preface
The following description is about a level meter for my storm water cistern,
a standing-cylinder-type storm water cistern with constant surface over
volume. The water surface area is 3 square meters and the height is 2 m resulting in
a capacity of 6000 liters.
In the actual firmware I also implemented different geometries but I
could not test them.
If you experience difficulties here please contact me.
For the component selection, not only perfect fit was the choice but
also what was available in the treasury.
Purpose
The following circuit was developed for level-metering of a storm water cistern. It is composed of two units, an ultrasonic distance meter mounted in the cistern (above the water) and a display connected to the sensor by wire.
Methods
How could we measure the water volume in the cistern?
- By weight: we could mount the whole cistern on a weigh scale. So we could indeed measure its content but because of the insane efforts necessary, this method is rejected.
- Measuring input and outtake. Not a bad idea, also. But there is the disadvantage of a drift if the two sensors are not 100 % accurate. Especially the inlet, consisting not only of water but also of leaves, dove feces etc. is hard to measure exactly, so this method is also rejected.
- Potentiometric measurement: a floater pulls on a rope turning a potentiometer. Could work but the rope and its pulleys would soil and tend to jam what would degrade accuracy.
- Laser, Radar: the measurement is a result of the traveling time of an electromagnetic wave from the sensor to the surface and back. The time would have to be measured in sub nanosecond resolution so this is also not suited for a hobby project.
- Triangulation: a laser beam is sent from the top of the cistern to the opposite bottom corner. A Camera measures the position of the reflected spot. This requires some mathematics that I'm not going to evaluate here. Waves forming under rain conditions create multiple reflections. The camera is subject to spoiling (spider webs, insects and their remains etc.) Mounting this apparatus is pretty difficult so no, this is not what we want to do.
- Ground pressure: we could measure the pressure difference between the bottom and the top of the cistern. This would work well but waterproof pressure sensors are not so easy to get and you'd have to guarantee a permanently waterproof connection. There are also sensors with a hose inside the cable that measure the difference of the water at the cistern ground to the surrounding air.
- Measuring by sound: we measure the traveling time of an ultrasonic impulse from a fixed sensor to the water surface and back. This method is quite cheap but suffers from systematic errors because of the temperature dependency of the speed of sound and an unknown temperature distribution of the air between water and sensor (unlike laser or radar). There are two possibilities: the sensor could aim at the surface from above or from below. From above seems to be the better way for me.
In this project, I decided for ultrasonic sound. It is quite cheap and if we really succeed in measuring the distance to the surface (and not to some step or hose) also quite accurate and can show short term variations with liter precision without the need of a resolution in sub nanosecond range.
All methods that just measure the distance are generally dependent upon the shape of the cistern
Download
On the Download-Page you can find all project files as well as some other things that might interest you (sorry, no ads!).
Some parts in the schematics are SMD types (e.g. BC856), for the prototype I used the through-hole version (BC556) of course which will work just the same.
Before you start having fun with the circuit, please read the safety advice near the end of this page!
To build the software, you'll need the Atmel AVR Studio (preferable version 6.2).
Also have a look at the photos of my very first prototype which may answer some questions
For the very first prototype I used an ATmega162 as the simplest device with two USARTs but the actual version uses an ATmega128 which has much more peripherals allowing more gimmicks at about the same costs. Probably the higher volume production here makes the price.
Sensor
The sensor uses a relatively small controller ATtiny 2313. Therefore
its firmware is kept in assembler code (we don't want to forget that completely,
do we?). All calculations are made in the
display which is programmed in C
. The sensor supply voltage is switched
by the display unit. Energy consumption therefore is of secondary interest
as it is only active when absolutely necessary.
This also means, the sensor cannot permanently store values in RAM. Everything it has to remember has to be stored in its EEPROM. Fortunately until now it doesn't have to remember *anything*.
Display
The display unit is built with an ATmega128 at 3.6864 MHz. I chose it because of its two USARTs, one to communicate with the sensor, the other to the PC or a possible home bus (RS485). As of version 2.0 a Bluetooth module has been added. The baud rate is 9600 baud. This is more than enough to read the water level once per minute and would also be good for further tasks such as reading energy- or flow meters or switching lamps etc. but this is another story...
Boot loader
A boot loader has been implemented to be able to update the sensor firmware.
Power consumption
A note about power consumption:
We use a highly efficient switch mode regulator so the power consumption could be significantly reduced (compared to linear regulators à la 78xx). Reducing the controller supply voltage to 3.3 V could save a little more but the display I used needs 5 V for proper operation. All in all the device would not exceed the magical 2 W-barrier of my Conrad Energy Meter.
Using another cheap energy meter (unfortunately truly reliable meters are not at my disposal), I measured the following values that seem to be plausible:
Standby: Sensor off, no backlight | 1.5 W |
Measurement active, no backlight | 2.0 W |
100% backlight, Sensor off | 2.9 W |
This makes about 13 kWh or €3,30 (at 25 Cent/kWh) per year, permanent backlight roughly doubles this value.
A pushbutton is used to activate the backlight (a long keypress is used to toggle between permanent and acute backlight). Additionally it allows displaying values that are normally hidden.
A slight surprise might be the RS485-interfaces. If both transmitters are activated and drive 5 V into the terminated lines (120 Ω at each end), this makes 83 mA per line or about 0.8 W, nearly the power of the backlight.
If you have only short lines you can omit termination. If in doubt, just try out... Please also see here.
For the efficiency of the switch mode regulator I measured 77% (with external DC supply of 15 V and a load of 500 mA at 5 V). This is not an exceptionally good value but for an aged out regulator without synchronous rectifier it is absolutely acceptable. Presuming 2 Watts of output power you would loose 0.6 W what is possible without additional cooling measures.
Practice
Initial tries in the lab showed that even small and smooth objects (like your arm, curtains or a yard stick) cause reflections that overwhelm objects more far away. The echo of your small finger 40 cm away is as real as the echo of the surface 3 m away and can hardly be distinguished.
So I was really impressed as I could observe the liters (!) go away while I used water from the cistern.
Time will show how objects in the cistern (hoses or climbing steps) will influence the measurements. Initial experiments make me luckily looking forward to...
Meanwhile it showed up that even the nearly empty cistern could be measured correctly.
Problems
Spiders. Spiders can be a problem. After one year of work, the display began showing
random numbers.
Humidity is the next problem. Although the sensor still worked (so no humidity seems to have penetrated the case) it was completely wet (in September) and all iron screws were completely rusty. Rising humidity of the (relatively) warm cistern water is responsible for this. So use nylon or stainless steel for all parts exposed to the cistern atmosphere!
The receiver and transmitter parts didn't look like new but they still worked without problems and do so until now.
Safety
Isolation
The display supply is 230 VAC. Completely disconnect mains voltage before you work on the device. Keep enough clearance in your Layout between primary and secondary circuits (at least 8 mm). If you decide for my PCBs I have already done that for you. For measurements on the circuit do not use mains supply but apply (15..30) VDC directly after the rectifier (via TP2/TP4).
Fusing
The transformer is not short circuit proof. To comply with all regulations, the manufacturer of the transformer confirmed this, it must be fused both on the primary and secondary side. The value of the secondary fuse is printed on the transformer and has to be 250 mA time lag. Its purpose is to protect the transformer against overload conditions. For the primary fuse i chose 100 mA time lag. It protects the circuit against failure inside the transformer. Be sure to use a fuse with extinguishing filler for the primary side (ceramic tubes, filled with sand) since they can break much higher currents. A normal glass type fuse can only break 35 A (higher currents may cause arcing which will not extinguish and thus short the fuse) while the fuse with filler can break 1500 A. You must expect currents of several hundred Amperes in case of a direct short circuit of the mains, even if this seems pretty unlikely.
Varistor
Isn't a varistor for overvoltage protection missing here?
No. Transformers are designed for direct connection to the mains. They can withstand transients as defined in the test standards, both primary to secondary and across the primary winding. Of course, lightning strikes can cause events that exceed this, but the varistor would not be able to withstand this either. The varistor would have to be protected by a thermally coupled thermal fuse as varistors tend to overheat even at nominal voltage when they have already absorbed a few transients.
Copyright
I developed the circuit and the software from scratch and thus own the copyright. I publish the schematics under the FDL and the sources under GPL. (different licenses on request.)
Simplified this means you can use and distribute the schematics and the software at will, for free or for money as long as you keep my copyright notice and make your changes visible in the documentation. You have to offer the schematics and sources as you use them for free.
The pictures of the formulas were created with latex2png
Where to buy
The parts I used are nothing very special and you can get them from various distributors, maybe not all from a single one. Shipping costs and extra charges for small quantities may exceed the value of the parts in some cases. I ordered many of the parts at Reichelt, the rest simply came from our stock.
My former employer Bär Industrie-Elektronik GmbH sadly went into bankruptcy so I cannot supply boards or cases any longer. Most of the people I've been working with for more than 30 years and what have become something like members of my Family are just gone with the wind. A very sad episode of my life...
Please note, this is a hobby project. Warranty only covers the correct operation of the devices, not the usability for a special purpose.
I'm looking forward to feedback, constructive criticism and proposals for improvements. Please accept that I can only give support as long as my spare time allows. I'll do what I can...