Solar Water Level Controller

Solar Water Level Controller

Solar and battery tank controller with float, overflow and ultrasonic sensing.

Home Automation KiCad

The brief

This board has to run a tank in the middle of nowhere on solar and a battery, with no mains and no one to service it. It reads a float, an overflow sensor and an ultrasonic sensor, and it drives a valve.

Running from solar means the current budget is a design constraint, not a detail — which is why the sensing, the 3.3 V regulation and the deep-sleep path are treated as one problem.

Solar Water Level Controller

What we did

A low-power, solar-and-battery-run controller built around the ESP32-WROOM-32E. It monitors a water tank with float, overflow and ultrasonic sensors, and it controls a valve output.

  • Main controller: The ESP32-WROOM-32E was chosen over the ESP32-C3-MINI because the C3 lacks the RTC pins needed to wake from deep sleep. This matters for a battery-powered device.
  • Solar charging: A solar input (SOLAR) feeds a TP4056-based Li-ion charger (replacing the CN3065) with red and blue status LEDs and a jumper to disconnect the LED circuit and save power.
  • Battery input and monitoring: The battery connects through a dedicated header (BATERIA), and a 1 MΩ / 1 MΩ divider lets the ESP32 read the battery voltage. The high resistance keeps the drain tiny.
  • Regulated 3.3 V: A TPS63031 buck-boost converter with a 1.5 µH inductor holds 3.3 V as the battery voltage rises and falls.
  • Sensing: Float-value, float-noise and overflow sensor inputs, plus an I2C header with power and ground for a JSN-SR04T waterproof ultrasonic sensor.
  • Valve output: A dedicated valve connector (VALVULA) for switching the tank valve.
  • Programming and debugging: USB-C with a CH340X USB-to-serial chip and two SS8050 transistors for automatic boot and reset. There are also a spare SPI header and extra GPIO, boot and reset pins for manual flashing.

Design details

Design summary

CAD toolKiCad
OverviewA low-power, solar-and-battery-run controller built around the ESP32-WROOM-32E.
Main controllerThe ESP32-WROOM-32E was chosen over the ESP32-C3-MINI because the C3 lacks the RTC pins needed…
Solar chargingA solar input (SOLAR) feeds a TP4056-based Li-ion charger (replacing the CN3065) with red and…
Battery input and monitoringThe battery connects through a dedicated header (BATERIA), and a 1 MΩ / 1 MΩ divider lets the…
Regulated 3.3 VA TPS63031 buck-boost converter with a 1.5 µH inductor holds 3.3 V as the battery voltage…
SensingFloat-value, float-noise and overflow sensor inputs, plus an I2C header with power and ground…
Valve outputA dedicated valve connector (VALVULA) for switching the tank valve.
Programming and debuggingUSB-C with a CH340X USB-to-serial chip and two SS8050 transistors for automatic boot and reset.

Have a board like this?

Send us the schematic, the mechanical constraints and the deadline. We will tell you what it takes and what it costs.