AquaLevel
An ESP8266/ESP32 device that measures the fill level of an underground water tank with an ultrasonic sensor, converts the reading to a percentage via two-point calibration, transmits it over ESP-NOW, and deep-sleeps between measurements to run on battery.
Tech Stack
An A02YYUW waterproof ultrasonic sensor mounted on the tank lid measures the distance down to the water surface over UART. The firmware takes several samples and uses the median to reject noise, then converts distance to a fill percentage using a two-point calibration — because the sensor sits above the maximum water level, "full" isn't distance zero but a fixed air gap, so the level is interpolated between calibrated full and empty distances.
Each reading is transmitted to a receiver over ESP-NOW — no WiFi router or IP stack involved in the link — after which the board drops into deep sleep for 15 minutes to conserve battery before the next measurement.
The repo includes tests for the calibration math and a bilingual README (English/Spanish) documenting wiring, calibration, and deployment.