Softener Level Indicator
I have designed a device that allows me to measure the water softener's fill level. The device's casing is 3D-printed, and at its core, it houses a NodeMCU ESP32 module running open-source firmware that I've programmed with my measurement logic.
Supplies
- Screen I2C Display 128 x 64 Pixel : SSD1306
- Time to fly sensor : VL53L0X ( I preferred using a Time-of-Flight (ToF) sensor rather than ultrasound for its versatile use and measurement accuracy )
- NodeMCU Module : ESP32 vroom
...Welding equipment and various tools
3D Printing
Download and print the STL file with your favorite 3D Printer.
I left the settings of my Cura slicer at default, using standard PLA (transparent) for normal printing.
Downloads
Electronic Assembly
Use the diagram to guide you in carrying out the electronic assembly.
Firmware ESP
I flashed the NodeMCU with the ESPEasy firmware by following the instructions on the Let's Control It website: https://www.letscontrolit.com/wiki/index.php/ESPEasy
After configuring the module on my Wi-Fi network, I created custom rules that you can find on my GitHub: https://github.com/loolyk/SoftenerLevelSensor/blob/main/ESP_Rules
And After ?
I'm using the MQTT protocol to establish a connection with my home automation system, which enables me to monitor the consumption, in my case, it's salt level. I also receive notifications when the level drops below a certain threshold. Of course, you can adapt this setup to your specific needs. However, I recommend delegating this kind of logic to your home automation system since the capabilities of rules are quite limited in terms of complexity.
List of supported protocol :
1.1 Domoticz HTTP
1.2 Domoticz MQTT
1.3 OpenHAB MQTT
1.4 PiDome MQTT
1.5 Nodo Telnet
1.6 ThingSpeak
1.7 EmonCMS
1.8 Generic HTTP
1.9 Generic HTTP Advanced
1.10 InfluxDB HTTP Api (via Generic HTTP Advanced)
1.11 Nettemp HTTP Api (via Generic HTTP Advanced)
1.12 FHEM HTTP
1.13 Generic UDP