Check your tank with care
IntroWater mismanagement and consumption of poluted water is a major challenge, the world is facing currently. Current market is yet to address this issue with an effective solution. The solutions that are currently present on the market are either too expensive for domestic usage or does not meet the user expectations.
To overcome these issues, we are propossing a device which can be used to measure the water quality of the inlet of a water tank and the water level inside the tank. We expect to target both domestic user requirments and industrial user requirements by a reasonable price (click here for budget) User can access to the data using a mobile application.
By using an ultrasonic sensor, water level will be monitored and when the tank is nearing to finish filling, user will be notified. We use ultrasonic sensor because of it's high accuaracy and sensor is not easily effected by water. Also this will generate the usage reports of the water and allow user to observe the current water level in the tank if needed. This measurement also allows to rationing of water and user will be warned in case of overusage.
The presence of dissolved solids in water may affect its taste.The palatability of drinking- water has been rated by panels of tasters in relation to its TDS level as follows:
Turbidity, which is caused by suspended chemical and biological particles, can have both water safety and aesthetic implications for drinking-water supplies. Turbidity itself does not always represent a direct risk to public health; however, it can indicate the presence of pathogenic microorganisms and be an effective indicator of hazardous events throughout the water supply system, from catchment to point of use. For example, high turbidity in source waters can harbour microbial pathogens, which can be attached to particles and impair disinfection; high turbidity in filtered water can indicate poor removal of pathogens; and an increase in turbidity in distribution systems can indicate sloughing of biofilms and oxide scales or ingress of contaminants through faults such as mains breaks.WHO says that for dinkable water turbidity must be below 5NTU and should be low as possible like 0.1NTU Click here to download the review done on the turbidity by WHO.
For these 2 measurments, TDS sensors and Turbidity sensors will be used and their readings will be analyzed with ideal water quality levels and determine the water quality of the incoming water to the tank during a filling and notify the user if there is any contamination in the water. We use these 2 sensors because by using these 2 readings we can determine most of the characteristics of water.
This diagram shows the overall implementation of the system.There are sensors to get the data, server to handle the clients.The system works as below steps.
E/16/049
S.D.M.V.G.H.N.Bandara
Department of Computer Engineering
Faculty of Engineering
University of Peradeniya
E/16/134
H.M.Y.B.Herath
Department of Computer Engineering
Faculty of Engineering
University of Peradeniya
E/16/388
W.M.T.M.P.B.Weerasundara
Department of Computer Engineering
Faculty of Engineering
University of Peradeniya
HTML is a simple and dominant language to formatting web pages.It supports every browser .HTML Combined with CSS and JS can be used to give client an elegant and yet fast experience
Flutter is free and open source UI framefork which is able to cross platform developments.The language used in flutter is DART which is optimized for UI development.
Protocol which allows efficient data distribution with lightweight overhead and with high sclabability Reduce bandwidth consumption so the client can have maximized available bandwidth.
High scalability and better for cloud services
Provides the connectivity between the device and server.low cost which reduce the prie of the product and low energy consumption which is essential to a long battery life of the devise.
Reliable hardware for measuring short distances with a sufficient accuracy
GUI was designed with the aid of figma.
Click herefor experience the GUI
Click this link to see more about our Circuit Design
Hardware Components are simulated in Tinkercad. click here to see more
Our web site UI is designed to give a user friendly experience to the customer in a very simple manner. It uses dynamic web pages to interact with users therefore fast responses can be obtained with less data usage.
This offers different user expirience to the user depending on the role of a user.
3 roles in our system are,
Uppon registration to the service, each user should confirm their account using their email account by clicking on a generated url
User actions are based on their roles and authorization middleware monitor and control those ations accordingly.
authorization middleware make sure,
Customers can login and monitor their devices. They can monitor,
Admins can monitor the system and manage customers, also they can provide customer support.
Their tasks include,
Super Admins can allow access to the admin users to the system and remove admins.
App uses validate methods when a user does a login attempt to avoid un-necassary requests to the server
Several Penetration Tests were carried out in order to check vulnerabilities in our backend
system. Tools used on those tests are
Unit test are carried out to check the functionality of the seperated functions and integration tests are used to test user creation and roles, to test sensor readings storing and validity.Below tools are used to test these.
Using self signed certificates using open ssl for devolepment purposes. This protects sensitive
information by encrypting, thus protects from outsiders.
Users are authenticated by using passwords. These passwords are hashed therefore even the database is
compromised, passwords are safe therefore attacker cant use it.
For successfull authentication of a user, user will be issued a jwt tocken. Using that token user will be
authenticated. Since tocken is sent via https it is secured. Also secure tag and httponly tags are set therefore
no one can manipulate the tockens from browsers and use undetected.
Server uses middleware to authorise users in server. Therefore each user will be limited to actions pre defined
for his corresponding role.
By setting x rate headers, number of requests from a user are monitored and limited. If rate is overflowed 429 status
is returned. Thus protecting from dos attacks.
Server tracks number of requests received in a given time. If the number of requests go pass that number, server will
take predefined necessary actions. This gives protection from ddos attacks.
By hiding server type, OS, database information and capabilities server has protection from attacks sepecially designed
for our server. Also using content policies we can have protection from sql injection attacks.
Water Level Monitoring.
Microcontroller chip.
Voltage Controller.
Battery Charging module.
Turbidity Measurement of Water.
TDS Measurement of Water.
Water Usage Monitor.
Internet Connection Module.
Warning System.
Water will enter this module and Quality Measurements will be recorded. Readings will be taken as analog inputs.
Water Usage will be recorded using this module. Readings will be taken by external inturrupts in microcontroller chip.
There are two parts of our embedded system testing plan.Those parts are showed below.
Aim is to ensure the reliability of our product by doing these tests.
In this we do tests when soldering and to test the functionality of the sensor devices.
When soldering we do below steps,
To check the connectivity we use oscilloscope or logic analyzers.
To do the sensor testings for turbidity sensor and TDS count sensor we use glasses with water which desolved with different kind of substances as below.
By dipping the sensors inside the water glasses we test the functionality of the sensors and how the readings change according to the difference of water. By those readings we can calibrate the sensor readings accordingly. And also we can detect if the sensors are deffected by checking the sensor readings. To test Ultrasonic sensor we can use above glasses with different water levels and do the same tests.
In this testing we do test to check variable overflows, compiler optimizations and typing mistakes. We use below techniques to do the debugging.
And also we are planning to check the real time sensor readings are showing on our web site and the app. By this we can make sure that the interaction between node software and backend works correctly.
This device utilizes the services of Arduino UNO R3 board which has ATMEGA328P U chip and NodeMcu ESP-12E board for WiFi connection. Let's consider the working procedure of the device step by step.
There are two parts of setting up the device.
1st we need to store user email and tank number in the device. 1st connect the device to the power, then connect with "AquaWatcher device Setup!" wifi network. Then go to the address www.aquawatcher.com and provide information.
It will be convinient to you if you installed our "AquaWatcher" app on your android/iOS device as well.
Then wifi network "Aqua Watcher" will be available and connect to it. Then go to manage wifi network and enter your wifi network information.