Automated Water System at House Using Arduino Uno and C# Desktop Application to Reduce Water Wastage and Energy Loss
This post is going to summary one of my conference papers titled Smart Water System at House Using Arduino Uno and C# Desktop Application to Reduce Water Wastage and Energy Loss.
History Behind the Paper
During my 4th year of University, I did a project on water management and named it Smart Water System. That time I felt so great to have a project like it because the idea was fully mine and also I developed a prototype system by my own. However, when I saw a conference going to happen in my university, I could not stop myself to submit a research paper on this application. Finally, I submitted the paper and after reviewing by 2 or 3 renowned reviewers, right now the paper is available on IEEE Xplore.
I always try to solve new problems with hot or trending technologies. In case of this application, I did the same. My aim was to make something which would be very relevant to the issue of my country (Bangladesh). So, I chose the Water System to reduce Water Wastage and Energy Loss.
The people of developing countries are not aware of wasting waters. As a result, they face mostly scarcity of water. Today one of the problems is people have no idea when their water tanks get filled up. Sometimes there are situations when the pump keeps on pumping water to the tank and the water starts spilling out from the tank. This makes wastage of energy as well as wastage of water. Safety of water is one of the significant solutions to this issue. A smart water management system is presented in this paper to remove the water wastage and energy loss at the house.
Model at a Glance
The system has been implemented using Arduino Uno, DC motor, 100k resistors, wires, buzzer, and computer/laptop. In this process, there are two motors, one motor is used for pulling water out of the ground and store water in the tank which is situated at the top of the house. Another motor is for providing water to the users. So this system consists of two parts (See Proposed Model Diagram Figure) —
- The tank is automatically filled by Arduino Uno using the 1st motor (MOTOR 1) based on the certain water levels (Upper and Lower Level) in the tank
- Desktop application controls the water distribution to the users through the 2nd motor (MOTOR 2)
I will only describe briefly the whole concept, algorithm and hardware diagram (Not the desktop application part).
Water level detection and controlling Motor 1
In this system, the identification of water level is done by setting parallel wires into the tank. Generally, ground water is impure and this kind of water is perfect for conducting electricity because it has some ions such as calcium and magnesium and these ions are good conductors. The idea is two wires are put in the tank very closely. When water touches these two wires there generates some electricity and later we check the status of the wire in the Arduino. If the status is HIGH, we get to know that water is now at that level. In this experiment, Motor 1 works based on the two water levels (upper and down).
So, there must be four wires in total for level detection. Two wires in the top level and another two wires in the bottom level (Figure 2).
When the tank is set up for use, it is empty. That’s why both down level and top-level wires are LOW at that moment. Arduino Uno senses the signals from the wires and turns on
the 1st motor (MOTOR 1) to pull up the water from the ground to the tank (Figure 3).
In this way, tank is going to be filled up with water by Motor 1 until the water touches the upper level. When
the water surface is above the down line and below the upper line, down wires and upper wires will provide HIGH and LOW signals respectively (Figure 4).
After a while, the tank will be full of water. During this time both upper and lower wires provide the HIGH signal. While Arduino gets these signal, it will turn off the Motor 1 (Figure 5). A buzzer that is connected to the Arduino for providing an alarm to the house owner to indicate that there is sufficient water in the tank, goes on for a few seconds.
B. Desktop Application
To provide a hassle-free system for the house owner, this experiment has a desktop application. From Figure 5, we see the owner will be notified when the tank is full by the alarm. Later, he has the ability to control water distribution. When he switches on the Motor 2 through this application, it provides water to the building (Figure 6).
Desktop Application Interface is shown in Figure 7.
There are two buttons. These are for controlling Motor 2. After consumption of water, when the tank becomes empty, upper and lower level wires will signal LOW. At this very moment, if there is no water and 2nd motor is still on, any technical damage or accident can happen. Also, suppose the owner of the house unintentionally starts Motor 2 in this situation. Fortunately, Arduino let not him/her to do. To avoid any accidents, Arduino turns off the Motor 2 immediately and turns on the Motor 1 whenever both pair of wires signals LOW.
There rises a question, if Arduino is responsible for shutting off the Motor 2, then there should not be any OFF button in the application. But consider a situation, while there is enough water in the house and the 2nd motor is still turned on, the user continuously gets water but they need not it at that time. This can make water wastage. So to get rid of this problem, owner can turn off the Motor 2 by using OFF button during this kinds of scenario. Moreover, there is a counter of how many times Motor 2 is turned on a particular day. By this counter, owner can track the water usage.
C. Hardware Diagram
D. Pseudo Algorithm
The above model is pretty simple, you are welcome to use it in your research or university project or anywhere by providing essential references to my research paper. You can go further by extending additional features to make this system more useful.
If you like this article, make sure to follow my Medium profile and check out some other articles of mine!