For our project, we first trained a machine learning model on one hundred pictures of full, empty, and low level water bowls using Google's Vision ML. Then we downloaded TensorFlow onto a Raspberry Pi 3 and wrote the necessary code. The Raspberry Pi was then set up next to the water bowl in a way that allowed the Raspberry Pi camera to take pictures at regular intervals throughout the hour. It then uses the TensorFlow lite model to determine the water level shown in the picture of the water bowl. After doing so, it then sends this data to our database where it will store the most recent result. Anytime the app requests a result it will pull up the most recent prediction.
In order to see the latest results, the user can click the "Click for Results" button to see the water level. The latest results will appear directly above the button.
The Raspberry Pi has a night vision camera attached allowing it to take pictures at all time. It is also responsible for determining what water level is shown in the pictures it takes.