After seeing the “Environmental Change” track, we knew we wanted to create a hack that had the ability to profoundly impact suburban, urban, and rural areas around the world. While struggling to find a universal problem, we were struck with an idea when I saw the light on my refrigerator turn orange, indicating the water filtration system needed to be replaced. With our knowledge of Arduino and basic sensor technology design, we created a hardware-software solution that we believe can help solve the community water monitoring issue. Although water is central to our lives on Earth, water security still plagues various communities. Thus, we decided to develop a system that made water security an issue of the past.
What it does
AquaPure collects data from several households in local communities, stores it in a database, and then provides accurate analysis of micro and macro water health trends. If a particular household’s water quality is adversely changing relative to the rest of the neighborhood and town, we can identify a localized source of water contamination (e.g. pipe rusting, calcium deposits, etc). However, if we detect that an entire community’s water quality is tending towards poor values, we can notify the appropriate environmental protection governmental bodies to take action and identify bulk sources of contamination (e.g. fertilizer runoff from industrial farms). For our hack, we first built schematics for a small, cost-effective device that measures pH, Dissolved Oxygen, Turbidity, and Specific Conductance. Attached below, this device can be deployed in a home’s central water supply unit and its sole responsibility is to record data and deposit it into a Java applet. In the Java applet, user’s are able to create a personal account to access data specific to their region. Our applet then sends this data through a Python script that analyzes the data received from every home in the user’s area and efficiently identifies water supply issues (e.g. pipe degradation), recognizes contamination, or diagnoses specific issues within an individual home’s piping. All of these data points are stored for long term trend analysis in a MongoDB server that we access through the Python script.
As the number of AquaPure user’s grows, the program will be able to give better analysis on the source of water security issues and give local officials an efficient tool to remedy the problems in their community.
How I built it
Front-end: The core user interface was developed using sleek designs in Java which you can see screenshots of above. The user interface has an active user and new user sign on page that interfaces with our database to update user demographic information. The hardware design was created using EasyEDA, a hardware emulator / circuit design platform. Amongst the many components, we have: voltage dividers and regulators, switches, 2 custom built sensors, 2 prebuilt sensors, 16-bit analog-to-digital conversion, serial communication through a microcontroller to the connected computer/laptop, and on-boarded microcontroller addressing of the various inputs.
Back-end: The Python script for data analysis does a couple of key things, but the two most important are 1) facilitating the interface between local scripts and the active MongoDB server through PyMongo and 2) conducting statistical analysis (specifically t-tests) for determining deviation from the community mean on the various indicators.
Challenges I ran into
There were two major challenges that we ran into. First, we were developing Python scripts as the interface between the Java GUI and the MongoDB database. This required us to figure out how to execute Python files from within the Java environment which we found to be quite difficult. Furthermore, parsing data between the front-end and back-end also became laborious due to the syntactic differences between Java and Python.
Second, designing custom sensors that would still maintain data fidelity was also a difficult task. We had to undertake a solid understanding of the core physics of the more expensive sensors and develop analogous sensors ourselves. For example, for the turbidity sensor, we are utilizing a white light LED and photodiode pair in order to get spectrophotometric data from the water sample itself.
Accomplishments that I'm proud of
We are very proud of having achieved so much in so little time (24 hours). We were knowledgeable in each of the domains that we were working in and the Java GUI was put together with great care. We are also proud to have utilized a variety of different platforms on the front-end, back-end, and hardware side of things.
What I learned
We learned a lot of skills in cross-platform integration, UI design, and also hardware development/integration. The cross-platform elements of the software and hardware design took into account many considerations and required us to learn new skills in those spaces.
What's next for AquaPure
We plan on optimizing our user interface for mobile devices and building the hardware that we emulated using EasyEDA so that the devices could be implemented in a low cost fashion in some communities. We would want to run a pilot study with a local community to determine the effectiveness and utilization rate of our solution.