Sensible Flow
Sensible flow uses an Inertial Measurement Unit to determine the tap handle movement and position. The devices comes with flow profiles for different types water flow. To improve the accuracy a custom flow profile can be setup, and each tap position is assigned a flow rate, this can be done automatically with a flow rate sensor or by manually measuring flow rate with a cup. Once the water flow has been inferred from the tap handle position, the data is sent to the Base unit via Bluetooth Low Energy. The Base unit displays the estimated total water consumed for a particular day (updates real time) and sends data to the internet via WiFi to monitor water consumption for the whole year. Multiple Sensible Flow units can be connected to a single Base unit and monitor water usage across various taps.
Current Consumption and Battery Life Estimation
Using the Nordic Power Profiler kit 2
When BLE was connected but not transmitting any data, it consumed 41 milliCoulombs per minute.
When BLE was connected and transmitted data twice, once to open the tap and once to close the tap, it consumed 45.8 milliCoulombs per minute.
Let's assume that the tap was opened and closed 4 times in an hour:
= [ 45.8 X 4 + 41 X 56 ] mC / hour
= 2479.2 mC / hour
= 0.6886 mAh / hour
Considering a battery size of 500mAh = 500 / 0.6886 hour
= 726.11 hour = 30.254 days
= 30 days 6 hours
Note that I am still figuring out how to use the low-power modes of the nordic nrf52 chip, I am quite confident to optimize the battery life to 3 months minimum.
Libraries / Software used:
1) Adafruit GFX Library (https://github.com/adafruit/Adafruit-GFX-Library) is under the BSD License.
2) Adafruit SSD1306 Library (https://github.com/adafruit/Adafruit_SSD1306) is under the BSD License.
3) Arduino IDE (https://github.com/arduino/Arduino) is under the GPL V2 License.
4) FreeCAD (https://www.freecadweb.org/) is under the LGPL-2.0-or-later License.
5) Arduino-ESP32 library (https://github.com/espressif/arduino-esp32) is under the LGPL-2.1 license.
6) SparkFun_MPU-9250 Library (https://github.com/sparkfun/SparkFun_MPU-9250-DMP_Arduino_Library) is under the MIT License.