Preventing excessive water consumption with tinyML
As the frequency and intensity of droughts around the world continues to increase, being able to reduce our water usage is vital for maintaining already strained freshwater resources. And according to the EPA, leaving a faucet running, whether intentionally or by accident for just five minutes can consume over ten gallons of water. However, Naveen Kumar has leveraged the power of machine learning to build a device that can automatically detect running faucets and send alerts over a cellular network in response.
The hardware for this project is primarily centered around a Blues Wireless Notecard for cellular connectivity, a Blues Wireless Notecarrier-B as its breakout board, and a machine learning-capable microcontroller in the form of an Arduino Nano 33 BLE Sense. Beyond merely having a 32-bit Arm Cortex-M4 processor and 1MB of flash storage, its built-in microphone can be used to easily capture audio data. In this project, Kumar uploaded a dataset containing 15 minutes of either faucet noises or background noise into the Edge Impulse Studio before training a 1D convolutional neural network, which achieved an accuracy of 99.2%.
From here, a new Twilio route was created that allows the Blues Wireless Notecard to generate SMS messages by sending an API request. Now whenever a faucet has been classified as running for too long, the Nano 33 BLE Sense can transmit a simple command over I2C to the Notecard and alert the recipient.
For more information about this project, you can read Kumar’s write-up here on Hackster.io.