Go back

Running Water Detector

Project Overview

For my senior design project, I worked with a team to create a faucet leak detector for a bathroom sink. The device is housed in a custom enclosure and works by recording audio and classifing sounds as water or noise. When repeated prolonged water flow is detected, a Bluetooth notification is sent to paired devices.

Data Collection and Training the Neural Network

A custom dataset was recorded using the on-board microphone of an Arduino Nano 33 BLE Sense. These recordings consisted of faucets at different intensities along with other sounds found in the setting of a bathroom such as doors opening and closing, room noise, paper rustling, talking, and footsteps. We implemented a neural network using Edge Impulse and trained the model to differentiate between two classes, “Water Flowing” and “Noises”. The network achieved 100% accuracy across all evaluation metrics , including precision, recall, F1-score, and ROC-AUC, on the test set.

Implementation and Bluetooth Notification

Here's a video that shows the project partway through the design process when I was testing the neural network on the board:

Classification is performed on the device using the embedded model deployed as a C++ Arduino library. To save power, the program shuts off unused systems such as all sensors other than the microphone, serial communication, and LEDS. Once water is detected, the device sends out a Bluetooth notification. This feature was programed in the Arduino IDE by creating a custom service that used the “notify feature”.