Solar Water Level Controller
Solar and battery tank controller with float, overflow and ultrasonic sensing.
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.
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 tool | KiCad |
|---|---|
| Overview | A low-power, solar-and-battery-run controller built around the ESP32-WROOM-32E. |
| Main controller | The ESP32-WROOM-32E was chosen over the ESP32-C3-MINI because the C3 lacks the RTC pins needed… |
| Solar charging | A solar input (SOLAR) feeds a TP4056-based Li-ion charger (replacing the CN3065) with red and… |
| Battery input and monitoring | The battery connects through a dedicated header (BATERIA), and a 1 MΩ / 1 MΩ divider lets the… |
| Regulated 3.3 V | A TPS63031 buck-boost converter with a 1.5 µH inductor holds 3.3 V as the battery voltage… |
| Sensing | Float-value, float-noise and overflow sensor inputs, plus an I2C header with power and ground… |
| 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. |
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.