04 Mar

Coffee Machine Water Filter Monitor

Recently we have been working on a Water Monitor for Coffee Machine filters.

The problem: Coffee Machine water filters stop working after x number of liters of water have been filtered. That varies depending on the hardness of the water which can vary over time. It takes time for an engineer to visit each site and test the water quality and assess the effectiveness of the water filter, so filters may be replaced days or weeks after they are no longer effective or could be replaced prematurely if based on usage estimates.

The solution? Measure the difference between the input and output of the water filter and the volume of water that has passed through the water filter. In addition, we can measure the water temperature to try and calculate the Total Dissolved Solids (TDS). We need the water temperature as it is required in the TDS calculations. Send that data to a backend system for processing and presentation allowing proactive management of all deployed water filters.

We based our prototype solution on off the shelf modules and components. At its heart is an ESP32 devkitc with two DFRobot TDS modules, a (modified) flow meter and a DS18B20 temperature sensor. A custom PCB & 3D printed case.


The firmware waits for data from the flow meter and then records input & output TDS values in turn and sends that data via MQTT over TLS for back-end processing and presentation.

Node-RED example dashboard presenting water quality information.

The firmware presents a password protected hotspot for configuring the device wifi connection credentials & ssl certificates as well as presenting current water quality readings.