Description as a Tweet:

This project detects when water bottle filler stations around campus need their filters changed using a Raspberry Pi and a camera. It displays those locations to maintenance on a web app, which prioritizes buildings based on how many stations need their filters changed.


When walking around the ILC trying to think of a project idea, we noticed that roughly half of the water bottle filling stations needed to have their filters changed.

What it does:

Our project is designed to help maintenance more efficiently replace filters in the water bottle fillers scattered throughout campus. Our project consists of a small device, clipped onto each water bottle filling station, and a web app that displays the information in a convenient format for maintenance. Each device determines the filter status of that station. The web app then uses those data to determine which buildings need their filters replaced most urgently. It displays the output on a map and in a table.

How we built it:

Each device is made up of a Raspberry Pi, a camera, and a 3D-printed mount. The camera uses OpenCV to check the color of the filter status light to determine whether the filter needs replacing. The information from each device is posted to a backend running on an AWS e2 instance using an Express.js server with MySQL. The app’s frontend is made with React, and it uses a JavaScript library called Leaflet to display the information on the map.

Technologies we used:

  • Javascript
  • Node.js
  • Express
  • React
  • Python
  • Raspberry Pi
  • Other Hardware

Challenges we ran into:

Most challenges we faced related to the Raspberry Pi. The initial camera we used was faulty, which delayed progress for several hours. Additionally, we had limited access to water bottle fillers because most buildings were closed for the weekend. The water bottle filter status lights were only red and green, and working on a water filler that is actively being used by students interrupts data collection and testing.

Accomplishments we're proud of:

As a team with little hardware experience, we are proud of what we have learned about detecting colors using Raspberry Pi cameras and converting that data into something we could process into a database and make conclusions with. We are also proud to have come up with an idea that could incorporate both hardware and software in a way that could improve the lives of our peers and help the campus facilities workers.

What we've learned:

We learned how to set up a Raspberry Pi camera that isolates the most prominent color(s) in an image. We also learned how to use React to create a more easily updated user interface. Finally, we learned to create a map with Leaflet that displays circle markers that correspond to the location and color data in an SQL database.

What's next:

Currently, our project uses the proportion of filters set to red over total filters in a location to calculate urgency for a repair. However, the next step in our project would be to incorporate more specific data that could improve the accuracy of this measure. One example we have in mind is to install an ultrasonic distance sensor or a beam detector that would record how frequently each fountain is used. This could factor in the demand for a particular location’s hydration stations and significantly improve the accuracy of the calculated urgency at each location. Another avenue we would like to explore would be monitoring other utilities such as vending machines, which would use cameras for object detection.

Built with:

The camera mount was designed in Onshape and 3D printed. A Raspberry Pi and a Raspberry Pi NoIR camera are used to detect the status of the water fountains. OpenCV is used to detect the color of the status lights. The website was written in React, and the backend was written in TypeScript with Express.js, with a MySQL database. The backend is running on an AWS e2 instance. Caffeine was used in obvious places.

Prizes we're going for:

  • Best Software Hack
  • Best Web Hack
  • Best Use of AWS
  • Best Hardware Hack
  • Best Beginner Software Hack
  • Best Beginner Hardware
  • Best Domain Name from
  • Best Hardware Hack

Prizes Won

Best Hardware Hack (MLH)

Team Members

Dominic Rutkowski
Angelika Ladia
James Barrett
Karthik Singireddy

Table Number

Table 10