Welcome back again, today we will be doing a simple project that can read water level display it on an LCD. And/or perform a certain action. Before we begin I’d like to point out that this little project I will be demonstrating can be accomplished by analog system. So if you just want to cut-off water or any liquid supply at a certain level there is a standalone mechanism that can do just that for you. That been said I will like to point out the disadvantage and advantages of using a micro-controller over the analog counterpart.
Comparison between analog and digital water level controllers
|Cheap||Moderately higher than analog|
|Hard to calibrate||Easy to calibrate|
|Higher component count||Lower component count|
|Hard to integrate into other embedded systems||Can easily integrate into other embedded systems|
|Sometimes require less power||Moderate power needed|
|Most technician can repair it||Require knowledge of embedded system operations|
|Moderately accurate||Very accurate depending on calibration.|
With that out of the way, let us take a moment to explain the working principle of the water level controller. First of all, we need to control the flow of the liquid in question so we need an actuator for that. We also need a way to sense the presence and level of the liquid, we also need to display the value on the screen. Lastly for it to be truly automatic we need a mechanized pump for pumping the liquid.
To control the liquid i prefer to with a normally closed selenoid valve reasons because even when there is absense of power there will be no in-flow of liquid except otherwise instructed to open by the micro-controller.
To sense the level of the liquid i will be using an ultrasonic sensor but there are ready made water level sensor for micro-controllers, If my container is open i will mostly definitely go with ready made water level sensor but for an enclosed container ultrasonic sensor does the work just fine without any problem.
The display I choose 2004 LCD that 20 by 4 characters display reasons is because I might decide to add other sensors to the project like temperature and ph level. So whenever I need to display more data I will have enough space.
Lastly for the mechanized pump i will choose a simple dc water pump.
List of Components
- Arduino uno
- 2004 LCD Display with i2c
- Seleniod valve
- DC water pump
- Boost Converter
- Relay module
I decided to use a little bit of colour coding, I used red for power, black for ground and blue for signal. The dc motor is used in place of a water pump and another thing to note is that you will need a water hose to connect between the water pump and the selenoid valve which is not shown in the schematic
For the code i will be posting it in the next tutorial.