Skip to content

steve-arnold/pool-topup

Repository files navigation

pool-topup

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.


Features

  • 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

Hardware Overview

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

Power Architecture

Two independent AC power sources are used.

15 V AC Supply

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

24 V AC Supply

The 24 V AC supply is dedicated to the irrigation solenoid valve used for pool top-up.


System Operation

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

Software Architecture

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

Relay and Solenoid Protection

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.

Notes

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.

About

Arduino based automatic pool level monitor and top up

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors