Over the last summer my sons and I rebuilt our entire pool system. It started with a problem with the water lines and valves that we inherited when we got the house, filter issues and a basically inept pool company that was a holdover from when we got the house. Once it started to look like this, I decided it was time to do something:
The first priority was to get the pool cleaned up and then figure out how to keep it that way. I always loved automation and I figured this was a perfect place to try it out. Shortly,
But the problem still remained that the overall system lacked in both capability and intelligence, something that I wanted to change. So first things first, we needed to replace the filter, pump and a bunch of the valves. I spent a lot of time on a website called Trouble Free Pool and it was a lifesaver for the DIYer.
We were hit with a few setbacks, one of which was when they installed the fence they poured concrete around the lines going from the filter system to the pool.
Needless to say, all of that concrete and those pool lines had to be replaced in order for the project to move forward. Pretty much everything had to go.
Early on I had decided to incorporate some automation into the new pool system. I opted for a management system called the Autopilot. (My family says I chose it because I am a pilot and liked the name!) This system would allow me to convert the pool to a salt water pool and handle some of the management, mainly running the salt water generator when necessary and pumping acid to manage the pH. There was no other automation beyond those things.
Eventually we got everything figured out. We also got our kitchen back which ended up being my workshop for the project.
Automation – The Beginning
Now that the physical plant was installed and operational, I thought it would be nice to be able to fill the pool without having to get the hose out all of the time. I figured with a Raspberry Pi and a normal sprinkler valve, I would be in business! I purchased another Pi (I use them all over the place for various projects) and laid out what I wanted it to do.
Initially I figured I needed to be able to do two things:
- A way to measure the level of the water
- A way to fill the pool once the water was low
I started to doing research and came along a company that manufactured a liquid tape measure that changed resistance as the level of the water (or other liquid) went up or down. Milone would be happy to create a specific sized unit for me as well since none of their sizes would fit where I wanted to place it.
ince it was going to be located across the yard from where my Pi would reside, it was going to be necessary to connect it to its own device for reporting. Since I did not need a Pi for this, I choose a battery-operated, low-power Arduino wireless clone that would transmit the information back to an existing system that I already had in place around the house.
These units I purchased from Low Power Labs. I ended up using four of them in my project: one for the water level, one for the temperature of the water and two in the main system to monitor a combination of internal enclosure temperature, filter pressure and water usage.
These Arduino clones use extremely low power – just ~7uA in deep sleep mode which means they would last a very, very long time on two AA batteries. My water temp sensor floats around my pool and my level sensor is nowhere near a power source, so I had to use battery-powered wireless equipment.
Initially, I had no intention of doing anything other than add water to the pool automatically, but as these things often go, the project grew with a mind of its own. Eventually I would be able to do the following:
- Monitor water level & add water as necessary
- Monitor pool temperature
- Monitor filter pressure
- Monitor pH
- Monitor ORP
- Monitor power use to determine if the pool pump is running
- Monitor my sprinkler system to see if the sprinklers are running
- Notify me when the system starts or adds water (via Pushbullet)
- Notify me when the system stops adding water
- Notify me if the system encounters an error condition
- Manually add water via CLI or by pressing a button on the enclosure
Here is a very high level overview of how the system operates:
Filling The Pool
Regardless of what triggers the pool filling routing (manually or automatically), I had to have a way to get the water into the pool. Since we are required to have a vacuum breaker between our irrigation and our city water supply already, I choose to tie it into my existing sprinkler system to get water for the pool. I was basically creating another “zone” for my sprinkler system, complete with valve.
For more detail: System to monitor pool sensors and refill