Arduino-based automatic pool water level monitoring and top-up system.
The system continuously monitors pool water level using a float switch and automatically controls a 24 V AC irrigation solenoid valve to maintain the correct level.
The software is implemented as a non-blocking Finite State Machine (FSM), allowing responsive operation without the use of delay-based timing functions.
- Automatic pool water level monitoring
- Programmable top-up scheduling
- Dual refill time windows
- Pool light timer control
- Manual override controls
- Battery-backed real-time clock
- LCD status display
- Opto-isolated relay outputs
- Electrical transient suppression for inductive loads
The control system is built around an Arduino Nano and includes:
- Arduino Nano controller
- I²C 16 × 2 LCD display
- DS3231 battery-backed RTC module
- Dual opto-isolated 12 V relay module
- Float switch water level sensor
- 24 V AC irrigation solenoid valve
Two independent AC power sources are used.
The 15 V AC supply is used for:
- LED pool lighting
- AC/DC conversion for control electronics
- 12 V relay coil supply
- 5 V Arduino power via buck regulator
The 24 V AC supply is dedicated to the irrigation solenoid valve used for pool top-up.
The water level is monitored continuously, however top-up operation is only permitted during programmed time periods.
Two independent top-up timers are provided. This allows refill periods to be separated to avoid operating during other high water-demand activities such as garden irrigation.
A separate programmable timer controls the pool lighting.
Manual override switches are provided for both:
- Pool top-up
- Pool lighting
The software is structured as a non-blocking Finite State Machine (FSM).
This approach provides:
- Responsive user interface operation
- Accurate timer handling
- Reliable event processing
- No blocking delays
- Simplified future expansion
The irrigation solenoid valve is a highly inductive load and may be connected using long cable runs.
To minimise relay contact arcing and electrical interference, a snubber network is installed across the relay contacts.
The relay module is configured in isolated-coil mode using the onboard JD-VCC link arrangement. Relay coils are powered from an isolated external 12 V DC supply while maintaining optical isolation from the main control electronics.
This project was largely built from components I already had. Building from scratch, I would have made the power supply more compact, possibly with a multi tap transformer. Pricing the components, this project can be built for less than 100A$. Plumbing and wiring present the biggest challenge which will be different for every pool.