PiSiphon Rain Gauge (Prototype)

Introduction: PiSiphon Rain Gauge (Prototype)

This project is an improvement on the Bell siphon Rain Gauge. It is more accurate and leaking siphons should be something from the past.

Traditionally rainfall is measured with a manual rain gauge.

Automated weather stations (including IoT weather stations) normally use tipping buckets, acoustic disdrometers (Distribution of Drops) or laser disdrometers.

Tipping buckets have moving parts that can be clogged. They are calibrated in labs and may not measure correctly in heavy rain storms. Disdrometers may struggle to pick up small drops or precipitation from snow or mist. Disdrometers also requires complicated electronics and processing algorithms to estimate drop sizes and to distinguish between rain, snow and hail.

I thought a Automatic Siphoning rain gauge may be useful to overcome some of the above issues. The Siphon Cylinder and funnel can easily be printed on a normal FDM 3d Printer (The cheap ones with extruders, like RipRaps and Prusas).

Only natural forces are used to empty (Syphon) the siphon cylinder relatively fast. The Siphon has no moving parts.

This rain gauge consist of a siphoning cylinder, with a few pairs of electronic probes on different levels in the siphon cylinder. The probes is connected to the GPIO pins of a Raspberry PI. As soon as the water reach the level of each probe pair, a high will be triggered on the respective GPIO input pin. To limit electrolysis, the direction of the current flowing through the rain is altered between readings. Each reading is only taking milliseconds and only a few readings is taken in a minute.

The PiSiphon Rain Gauge is a significant improvement on my original Bell Siphon Rain Gauge. I belief it should also be better than my Ultrasonic Rain Gauge, since the speed of sound is to much influenced by temperature and humidity.

Step 1: What You Will Need

1. One raspberry pi (I used a 3B, but any old one should work)

2. 3D Printer-(To print the Siphon Cylinder. I will provide my design. You can also take it to a printing service)

3. Old rain gauge funnel (Or you can print one. I will provide my design.)

4. 10 x Bolts, 3mm x 30 mm (M3 30mm) as probes.

5. 20 x M3 nuts

6. 10 Fork Tipe sheet metal lugs

7. Electrical wires and 10 jumper cables with at least one female end each.

8. Breadboard (optional for testing).

9. Python programming skills (Example code is provided)

10. A large Syringe (60ml).

11. Waterproof casing for the raspberry pi.

12. ABS juice if your printed parts is abs or Silicon sealant.

13. 6 mm Fish Tank Tube (300 mm)

Step 2: Siphon Cylinder and Funnel Assembley

I used a DaVinci AIO printer for all prints.

Material: ABS

Settings: 90% infill, 0.1 mm layer height, thick shells, no supports.

Assembly the Siphon Cylinder and Funnel. Use ABS glue

Assembly the probes (M3 x 30 mm bolts with 2 nuts)

Insert the probes (bolts) into the Siphon Cylinder and seal it with ABS glue or Silicone sealant. The probes should be visible from the top open side of the siphon cylinder to make it possible to clean them if necessary with a tooth brush. This contact points of the probes should be clean all the time. Make sure no ABS glue or Silicone sealant must be on the contacts.

Attach the 10 wires to each probe, using the fork type sheet metal lugs. Connect the other side of the wires to GPIO pins. The Pinout is as follow:

Probe Pairs:
Probe Pair 1 (P1, lowest water level), Pin 26 and 20)

Probe Pair 2 (P2), GPIO Pin 19 and 16

Probe Pair 3 (P3), GPIO Pin 6 and 12

Probe Pair 4 (P4), GPIO Pin 0 and 1

Probe Pair 5 (P5), GPIOPin 11 and 8

Step 3: Test the Siphon and Calibrate It

You need to make sure all wiring is done correctly and that the hardware is working properly.

Run PiSiphon_Test2.py

Resullt 00000 = Water has not reach level of P1 (Probe Pair 1)

Result 00001=Water has reach level P1 (Probe Pair 1)

Result 00011=Water has reach level P2 (Probe Pair 2)

Result 00111=Water has reach level P3 (Probe Pair 3)

Result 01111=Water has reach level P4 (Probe Pair 4)

Result 11111= Water has reach Level P5 (Probe pair 5).

If all water levels is detected, run PiSiphon-Measure.py.

Your Log_File is generated in the same directory as PiSiphon-Measure.py

Install the PiSiphon on a post and level it. If your siphon is under estimating (or over estimating), increase (or decrease) the rs variable in PiSiphon-Measure.py

Step 4: PiSiphon PRO

PiSiphon PRO is comming. It will not use any metal probes in the water and have even a much better resolution (less than 0.1 mm). It will use a capacitive soil moister sensor (liquid e-tape is to expensive in my country). See https://www.instructables.com/id/ESP32-WiFi-SOIL-MOISTURE-SENSOR/ how this sensor performs on an ESP32.

Be the First to Share


    • Battery Powered Contest

      Battery Powered Contest
    • Plywood Challenge

      Plywood Challenge
    • Plastic Contest

      Plastic Contest



    Question 5 months ago on Step 2

    Hi, have you put this design in production yet? I quite like the idea of using this design instead of the tipping bucket design.

    The idea of not having moving parts is ideal.

    Are you from SA? I