SCHOOL OF ENGINEERING AND COMPUTATION
Design and Automate a Water-Tank Level Controller for Laurentian
University’s Fraser Building using Tinker cad.
CPSC_5207EL_01_2025SP Internet of Things
Faculty Advisor:
Dr. Williams Nwadiugwu
Spring, 2025.
Submitted By Group 9
Name Student ID
Haris Najeeb 0463770
Deboprio Mani 0445124
Moumita Nag 0446981
Date Submitted: July 02 2025
Internet of Things Group 9
Chapter 1 – Project Synopsis, and Literature Review.
1.1. Abstract:
In this project, the water pump controller circuit is developed. A water pump controller
is a device that controls the water pump by sensing the tank's water level. Its primary
purpose is to control water flow and enhance performance. This circuit is fully
programmed, and it will function for a very long period once you do its initial setting.
Depending on the water level in the tank, it can automatically turn the water pump set
on and off. This motor driver circuit can be installed at your house or place of study
(University or college). This water level controller circuit's primary benefit is that it
regulates the water pump automatically. This automatic water pump controller will
eliminate the need for any manual switching of water pumps installed for the purpose
of pumping water from a reservoir to an overhead tank. Water Pump controller with
Level Indicator based on Arduino is an amazing and very useful project. The purpose
of this project is to inform the user about the water level in the overhead water tank.
By turning it on when the water level is low and off when it is high, this project can be
improved to further regulate the tank's water level. Thus, the water level indicator helps
in avoiding water waste in the overhead tank.
1.2. Introduction:
The project “Automate a Water-Tank Level Controller for Laurentian University’s
Fraser Building using Tinker cad” is design to monitor the level of liquid in the tank.
When the liquid reaches the lower threshold, the system's automated pumping system
will refill the tank; when the liquid reaches the upper level, the pump will be turned off.
Due of human mistake and inconsistency with manually controlled water pumping
machines, automatic water level controller is created. This is due to the fact that
manually running a water pump takes time, which might result in water spills.
Additionally, the person using the pump may not realize that the water level has
dropped so low until the tank is empty. This was the problem that leads us in to create
the Automatic water tank level controller.
The idea was created to automatically regulate the pump, ensuring a steady supply of
water in the tank. The design's scope was kept brief and straightforward to avoid
adding needless complexity and making it uncomfortable overall. The automatic water
pump controller block diagram is shown below.
Page 2
Internet of Things Group 9
Fig 1: Block Diagram for the automatic water tank controller
1.3. Literature Review:
In order to maintain ideal water levels in a variety of applications, guarantee efficiency,
and avoid overflow or dry running of pumps, automatic water-tank level control
systems are crucial. These systems automate the water management process by
combining sensors, control units, and valves. This Project focuses on limiting the
amount of water supplied to Laurentian University’s Fraser Building. When this system
is installed in Laurentian University’s Fraser Building, it continuously monitors the total
water usage of that building.
The primary goal of this project is to reduce the amount of water and electricity wasted
by constructing an effective automated water tank level control system. Advanced
automation tools, such the Arduino microprocessor, which allows logical control of
electrical circuits, have been developed to set up certain tasks automatically. The
Motor in the water tank will be automatically turned on by the ultrasonic sensors and
turned off when the water tank is completely filled. The water pump will be started
Page 3
Internet of Things Group 9
when the buzzer indicates that the tank is near to empty. It helps avoid dry running of
the motor, which results in time and money wastage.
In this project, we presented a system that uses a sensor to automatically check water
levels. We can detect variations in the tank's water level and prevent overflow by
using a sensor. Ultrasonic sensors use the concept of ECHO. Using the sensor, the
idea of echo is connected to sound waves. The similar idea of measuring the water
level is covered in this project. Depending on the amount in the tank, the motor either
turns on or off. This project uses a pump to cut off the water supply as necessary and
checks the water level. Its primary goals are to reduce time waste and manpower.
Fig 2. Project Block Diagram
1.4. Project Goals/Objectives:
The completion of this project “Design and Automate a Water-Tank Level Controller
for Laurentian University’s Fraser Building using Tinker cad” will result in the
following goals/objectives.
Energy Efficiency: This project will lower energy usage by eliminating dry running
and optimizing pump operation.
Less Manual Effort: By automating the water level management procedure, less
human involvement and surveillance are required.
Cost reductions: This project can result in long-term cost reductions by preserving
energy and water.
Page 4
Internet of Things Group 9
Water Saving: This technology prevents overflows and dry pump operation.
Settings: It has technology that allows it to operate on both low and high sensitivity
settings on the same machine, saving money by eliminating the need to purchase
and operate two separate units.
Chapter 2 – System Model.
System model defines a function of a system or its component and the behavior
between inputs and outputs is a specification of a function.
2.1. System Hardware Requirements:
Determining and evaluating each aspect of functional, operational, performance,
interface, quality parameters, design, criticality, and test requirements is known as
hardware requirement analysis. The Arduino board and ultrasonic sensors are used
by Water Level controller.
2.1.1 ARDUINO:
The ATmega328 microcontroller is built inside the Arduino UNO. Six of its fourteen
digital I/O pins are used for PWR output. It provides a prototype platform and is open-
source. Additionally, it is equipped with a 16MHX crystal oscillator. It also contains a
USB port, a power jack, an ICSP, a header, and a reset button in addition to the above
functionalities. Everything needed to support a microcontroller is included. It is easy to
connect to a computer using a USB connection, or it may be powered by a battery, an
AC or DC converter, or both.
Fig 3. Arduino UNO Circuit Board
Page 5
Internet of Things Group 9
2.1.2 ULTRASONIC SENSOR:
It is used to detect distance and functions essentially as a distance sensor. The
receiver and the control circuit are its two ultrasonic transmitters. Any solid object will
reflect the high frequency ultrasonic sound wave that the transmitter creates, and the
receiver will pick it up as an echo. The control circuit then processes the echo to
determine the time and the signal difference between the transmitter and receiver.
The distance between the sensor and the reflected item may then be measured
using this time. It has an ultrasonic frequency of 40 KHz and accuracy is nearest to
0.3 cm.
Fig 4. Pin Configurations of Ultrasonic Sensor
2.1.3 CONNECTING WIRES:
The conductive connections between the components in contact are called wires in
any electrical circuit. In theory, they offer perfect connections and zero resistance.
They appear to be lovely colored jumper wires on the breadboard.
Fig 5. Connecting Wires
Page 6
Internet of Things Group 9
2.1.4 PIEZO:
It is a digital part that may be linked to either the analogue or digital outputs of
microcontroller like Arduino. The piezo material vibrates when a voltage is applied,
producing sound waves that may be utilized in your projects to create alarms, tones,
and other sound effects. Positive and negative terminals are commonly seen on
piezo buzzers. Typically, your microcontroller's positive terminal is linked to an
analogue or digital output pin, while the negative terminal is grounded.
Fig 6. Piezo
2.1.5 DC MOTOR:
A DC motor is an electric motor that runs on direct current as opposed to alternating
current. It facilitates DC electrical energy conversion into mechanical energy. It helps
in the pumping of water in our project.
Fig 7. DC Motor
Page 7
Internet of Things Group 9
2.2. System Software Requirements:
2.2.1 ARDUINO IDE SOFTWARE
A cross-platform program, the Arduino Integrated Development Environment (IDE) is
compatible with Windows, MAC OS, and Linux. The GNU (General Public License)
version 2 control the publication of the IDE's source code. C and C++ are supported
by the Arduino IDE through specific code structure guidelines. A software library from
the Wiring project, which offers several standard input and output operations, is
provided by the Arduino IDE. With the GNU tool chain, which is also included with the
IDE release, user-written code only needs two fundamental functions to begin the
sketch and the main program loop. These functions are built and connected with a
program stub main() to create an executable cyclic executive program.
2.2.2 ARDUINO LANGUAGE:
The compiler software is hosted on a computer separate from the Arduino UNO. The
compiler's task is to convert the program writer's given files (filename.c and
filename.h) into machine code (filename.hex) that the processor can use. The
compiler performs two stages to produce the machine code after receiving the
source files (filename.c and filename.h).
Page 8
Internet of Things Group 9
Fig 8. Arduino IDE Software
2.3. Data Flow Diagrams, Class Diagrams and Entity
Relationships (ERs):
2.3.1 PROJECT DATA FLOW DIAGRAM (DFD):
A graphical representation of the "flow" of data through an information system is called
a data flow diagram (DFD). Data processing visualization may also be done with DFD.
Two sensors are used by the automatic water level indicator and controller system at
two different levels of the tank: one at the lower level and one at the upper level. The
tank is identified empty if the measured level is less than the threshold and water pump
will automatically be turned ON. When water reaches the particular level in tank then
it will automatically turn of the pump and water tank is indicates as a Full.
Page 9
Internet of Things Group 9
Fig.9 Project Data Flow Diagram DFD
Page 10
Internet of Things Group 9
2.3.2 PROJECT ENTITY RELATION DIAGRAM (ER):
Fig.10. Project Entity Relation Diagram
In the Project entity relation diagram, sensors monitor tank to control the level of water
and Arduino is controlled by users to read data and manages the system components.
Pump works on measure logs, as the water level is low from the threshold value it will
turn on and when its reach to threshold level it will turn off automatically.
Page 11
Internet of Things Group 9
Chapter 3 – Implementation, Results and Conclusion.
3.1. Software Development/System Methods:
Software development involves a number of procedures or a collection of operations
required to create dependable and maintainable software. It is crucial because
software is required for hardware design to work with microcontroller-based systems.
The word "software system" refers to a program that a manufacturer provides to let
users (applications) construct their programs. These include applications that convert
high-level languages into machine code (interpreter or compiler) or assembly
language into machine code (assembler). It also includes computer-aided
development process and applications that enable modifications (edition) which is
essential for software development.
Fig.11. Development of Software
Page 12
Internet of Things Group 9
3.2. Project Methods/Code Description:
// C++ code
//
int Waterlevel = 0;
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT); // Clear the trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
// Reads the echo pin, and returns the sound wave travel time in microseconds
return pulseIn(echoPin, HIGH);
}
void setup()
{
Serial.begin(9600);
pinMode(8, OUTPUT);
pinMode(10, OUTPUT);
pinMode(6, OUTPUT);
pinMode(2, OUTPUT);
}
void loop()
{
Waterlevel = 0.01723 * readUltrasonicDistance(4, 3);
Serial.println(Waterlevel);
if (Waterlevel > 200){
Water level goes down to 200 then it means the water tank is empty and buzzer start
buzzing and motor start working to fill the tank.
Page 13
Internet of Things Group 9
digitalWrite(8, HIGH);
digitalWrite(10, LOW);
digitalWrite(6, HIGH);
digitalWrite(2, HIGH);
}
if (Waterpump == 120) {
When water level reaches the 120 then it means the water tank is filled and buzzer
start buzzing again and motor stopped working.
digitalWrite(8, HIGH);
digitalWrite(10, HIGH);
digitalWrite(6, LOW);
digitalWrite(2, LOW);
}
digitalWrite(6, LOW);
delay(10);
// Delay a little bit to improve simulation performance
}
3.3. Project Results:
Fig.12. Project Circuit Diagram
Page 14
Internet of Things Group 9
Fig.13. Project Circuit View
As we can see in the circuit view, there is two levels of tank defined by coding.
Tank Empty: When the water level reaches the minimum level according to the
ultrasonic sensor, the Buzzer start buzzing and the Motor starts filling the
tank, along with it, the green LED turns on.
Tank Full: when the water level reaches the maximum required level
according to the ultrasonic sensor, the buzzer will start buzzing again to stop
the motor and the water and the LED will also stop.
Limitations:
As it consists of a servo and a DC motor, it requires a high power supply. If
the water level is not constant, then it might not show the exact water level in
the tank.
Page 15
Internet of Things Group 9
3.4. Conclusion:
Our goal is to conserve water and power with this project. Natural resource
conservation is crucial. When the water level in the bucket or tank reaches a certain
point, we are unaware that the tank is overflowing. Both energy and water use increase
as a result. People also become engaged too much in it and neglect other tasks until
the tank is full, which can result in a significant amount of time being wasted. To get
over this problem, this project can detect and show the tank's water level. When it
reaches a certain level, the pump or tap will switch on or off, saving power and water.
Thus, the Arduino project for a water level monitor and controller might be quite
beneficial in reducing the amount of manpower needed. Its application is not limited
and can be used in industrial and agricultural purpose as well.
3.5. Future Enhancements:
The automatic water level controller has a great future scope. In order to regulate the
water's acidity or alkalinity, pH sensors may be added to the Arduino project's
automated water level meter and controller. Also, we can add WIFI module and
water level controller can be controlled by mobile application.
Page 16