Sie sind auf Seite 1von 6

Rain Water Flow Meter Using Arduino Microcontroller.

Rain is liquid water in the form of droplets that have condensed from atmospheric water vapor
and then becomes heavy enough to fall under gravity. Rain is a major component of the water
cycle and is responsible for depositing most of the fresh water on the Earth. It provides suitable
conditions for many types of ecosystems, as well as water for hydroelectric power plants and
crop irrigation.
Majority of the rain water just goes to ground and not being used by people especially for
the urban place, that’s a such a waste because rain water is also a source of water supply. For an
urban place, the roof collected rain water is a sustainable and efficient way to supply water, to
ensure the safety for the users, to track and estimate the supply and the needs, and to monitor the
operation of the components of the system, various measurements must be taken regularly.
A water flow measuring device is an integral part of a safe roof collected water supply.
But, what system must be used to implement the rain water flow meter? An Arduino will help us
to control the flow sensor in determining the flow rate of the rain water, the LED will be an
indicator and a phototransistor will be used in turning on the mechanism.
The objective is to design a device that measures the flow rate of the water in a pipe and
to display/record the water flow rate.
The value of the study is to efficiently use the rain water that commonly ends up to the
ground unused. The flow meter measures the flow (the velocity of fluid). The aim of this project
is mainly to demonstrate the principle of measurement. Therefore, the actual flow, and the
display units are not specified for this project. Nevertheless, the displayed values must reflect
faithfully the fluid velocity signal received from the transducer.
Review of the Related Literature

Liquid Flow Meter

This type of flow sensor is used to
measure liquid flow within a pipe
and is ideally suited for monitoring
water consumption in irrigation
control systems. Each side of the
sensor has a 1/2″ NPS nominal pipe
connections, 0.78″ outer diameter,
1/2″ of thread. The sensor is
connected by way of a 3 pin connector.

Inside the housing, a small pinwheel with an attached magnet is spun by passing water; as the
magnet makes each revolution, a hall effect sensor inside the housing outputs a pulse on the
yellow wire. Each pulse output represents approximately 2.25mL of fluid. The sensor is best
suited to flow rates between 1 and 30 liters per minute – flow rates below one liter per minute
tend not to register accurately.
 Working Voltage: 5 to 18VDC
 Max current draw: 15mA @ 5V
 Working Flow Rate: 1 to 30 Liters/Minute
 Working Temperature range: -25 to 80°C
 Maximum water pressure: 1.75 MPa
 Output duty cycle: 50% +-10%
 Output rise time: 0.04us
 Output fall time: 0.18us
 Durability: minimum 300,000 cycles
 Pulses per Liter: 450
Arduino is an open source computer
hardware and software company,
project, and user community that
designs and manufactures single-board
microcontrollers and microcontroller
kits for building digital devices and
interactive objects that can sense and
control objects in the physical world.
The project's products are distributed
as open-source hardware and software,
which are licensed under the GNU
Lesser General Public License (LGPL)
or the GNU General Public License
(GPL),[1] permitting the manufacture
of Arduino boards and software
distribution by anyone. Arduino
boards are available commercially in
preassembled form, or as do-it-yourself (DIY) kits.
Arduino board designs use a variety of microprocessors and controllers. The boards are equipped
with sets of digital and analog input/output (I/O) pins that may be interfaced to various
expansion boards (shields) and other circuits. The boards feature serial communications
interfaces, including Universal Serial Bus (USB) on some models, which are also used for
loading programs from personal computers. The microcontrollers are typically programmed
using a dialect of features from the programming languages C and C++. In addition to using
traditional compiler toolchains, the Arduino project provides an integrated development
environment (IDE) based on the Processing language project.
A Phototransistor is an electronic
switching and current amplification
component which relies on exposure to light
to operate. When light falls on the junction,
reverse current flows which is proportional
to the luminance. Phototransistors are used
extensively to detect light pulses and convert
them into digital electrical signals. These are
operated by light rather than electric current.
Providing large amount of gain, low cost and
these phototransistors might be used in
numerous applications.
 Low-cost visible and near-IR photo detection.
 Available with gains from 100 to over 1500.
 Moderately fast response times.
 Available in a wide range of packages including epoxy-coated, transfer-molded and surface
mounting technology.
 Electrical characteristics similar to that of signal transistors.

Related Studies


Microfluidic devices have become interesting areas of research for their ability to create high
throughput chemical analysis and other functions. In some microfluidic devices, fluids are
actively moved through the valves to maintain a characteristic flow using a number of different
devices. One such device employs pressure to move the flow media through the microvalves.
The research will be for the development of a pressure controlled microfluidic pump using a
microcontrolled solenoid valve coupled with a pressure sensor. Pressure driven microfluidic
devices are important in some applications. The device can be used in studies such as impedance
spectroscopy to measure the phase and magnitude change in microfluidics where pressure
control is important. Additionally, the creation of a portable device for pressure driven
microfluidic devices will allow for on-site testing of cells and other such organisms or reactions.
This may become important for disease diagnosing, bacterial testing, or other such applications.


In this study, a wireless data acquisition system was developed for wireless water flow
monitoring (WWFM) in a closed channel pipeline system using android Smartphone. ATMEGA
328 single chip microcontroller (Arduino Uno Prototyping Platform) with a Bluetooth module,
Near Field Communication - NFC tag, Smartphone with NFC reader, and G1-½ water flow
sensor are applied in this design. The frequency input to the microcontroller was the pulse train
which transferred from the G1-½ hall-effect water flow sensor. Then, the data from the
microcontroller was transferred to an Android Smartphone using Bluetooth wireless serial
communication. In addition, the NFC-tag is used as water flow sensor identification and location.
Android Application was designed based on App Inventor for Android (AIA) which MIT
platform. As the result, sensor ID based on NFC tag and flow rate of water using Android
application on Smartphone was showed by the system. According to the experimental test, the
flow monitoring ran well and displayed real-time of flow water in the closed channel pipeline
system. The accuracy of wireless water flow measurement is 99.98%



int flowPin = 2; //This is the input pin on the Arduino
double flowRate; //This is the value we intend to calculate.
volatile int count; //This integer needs to be set as volatile to ensure it updates correctly during
the interrupt process.

void setup() {
// put your setup code here, to run once:
pinMode(flowPin, INPUT); //Sets the pin as an input
attachInterrupt(0, Flow, RISING); //Configures interrupt 0 (pin 2 on the Arduino Uno) to run
the function "Flow"
Serial.begin(9600); //Start Serial
void loop() {
// put your main code here, to run repeatedly:
count = 0; // Reset the counter so we start counting from 0 again
interrupts(); //Enables interrupts on the Arduino
delay (1000); //Wait 1 second
noInterrupts(); //Disable the interrupts on the Arduino

//Start the math

flowRate = (count * 2.25); //Take counted pulses in the last second and multiply by
flowRate = flowRate * 60; //Convert seconds to minutes, giving you mL / Minute
flowRate = flowRate / 1000; //Convert mL to Liters, giving you Liters / Minute

Serial.println(flowRate); //Print the variable flowRate to Serial


void Flow()
count++; //Every time this function is called, increment "count" by 1