Skip to content

Running Water Detector

Team Members

  • Noah Bryan
  • Ximing (Jimmy) Chen
  • Sophia Wang
  • Junwon (Jason) Lee

Mentors

  • Michael Heilemann
  • Daniel Phinney

Project Description

The Running Water Detector is a low-power, compact acoustic device that can detect when water is left running in restrooms. Users can receive Bluetooth messages that indicate whether a faucet is left running. It has a rechargeable battery and LED features to signal when turned on. 

Block Diagram

This diagram demonstrates the overall basic process in which the running water detector goes from recording audio to sending notifications.

Detector Block Diagram

This diagram illustrates the more in-depth process of how the hardware inside the detector operates. After sound passes through an acoustic mesh, it is recorded on a MEMS microphone that is onboard the microcontroller. The data is sent to a preprogrammed processor that decides whether the sound is running water or not. It sends out a notification via a Bluetooth antenna to a user’s phone. The microcontroller is powered by a battery inside the enclosure.

Project Components

Neural Network / Machine Learning

To ensure accurate and generalizable classification of faucet-related sounds, an original dataset was constructed through direct recordings using the onboard microphone of the Arduino Nano 33 BLE Sense Rev2. A total of 12 minutes of labeled audio were collected, with 79 percent used for training and 21 percent reserved for validation and testing. The dataset includes recordings of faucet flow at low, medium, and high intensities, as well as diverse ambient noise sources such as human speech, door movement, room noise, paper rustling, and footsteps.

A compact neural network via the Edge Impulse platform was used to enable robust sound classification on embedded hardware. The architecture consists of an audio pre-processing stage using Mel-Frequency Energy (MFE) features, followed by a lightweight classification model. Audio is sampled at 16 kHz, segmented into 1-second windows with a 500 ms stride, and transformed into feature representations optimized for environmental sound classification. The model was trained to differentiate between two classes—”Water Flowing” and “Noises”—and achieved 100% accuracy across all evaluation metrics, including precision, recall, F1-score, and ROC-AUC, on the test set. This model was subsequently deployed to the Arduino Nano 33 BLE Sense Rev2 microcontroller for real-time inference and notification.

Microcontroller

The microcontroller used is the Arduino Nano 33 BLE Sense Rev2. The BLE Sense contains a MEMS microphone to record audio, a programmed processor flashed with the Arduino code required to identify water noises, and a Bluetooth antenna to send out a Bluetooth notification.

Arduino Coding

The microcontroller is flashed with a program coded using Arduino IDE and Python scripts. A custom data acquisition system was implemented to enable real-time audio recording from the BLE Sense over USB. To enhance recording quality, the signal processing chain included configurable low-pass and high-pass filters, a noise gate, a noclip function, and dynamic gain adjustment.

Processing Diagram

This block diagram illustrates the processing that the BLE sense uses to determine whether the recorded audio is running water.

Bluetooth

The BLE Sense uses its Bluetooth antenna as a peripheral device to send notifications. The device connects to a central device that can read notifications. Users can use apps such as LightBlue to connect to the BLE Sense. LightBlue allows users to see basic device information and read and write values.

3D Printed Enclosure

The 3D-printed enclosure had a required limit of 8 cubic inches. It uses a lock-in mechanism where the BLE Sense slides into a groove at the top of the box to make it stable. There are holes drilled into it to allow the microphone to access the outside and for the LED to be visible. The enclosure was designed in SketchUp.

Other Components

Battery

The battery is a LiPo Polymer Battery with 3.7V and 10050mAh.

Acoustic Mesh

An acoustic mesh is needed to protect the inside of the device from the exposed hole for audio recording.