Instead of performing regular checks with tester kits to maintain adequate pH and chloride levels in our (small) swimming pool, I decided to build a project that monitors the water continuously and registers the data online so I can easily inspect it.
Although quite expensive, I decided to go with the pH and ORP kits by atlas-scientific.com. Mind that ORP is not a direct measurement of free chlorine. It's an indication of how well the sanitizer (like chlorine) can perform. The ORP value is influenced by many factors, like free chlorine, pH and cyanuric acid. You can find more info in the comments and the included links. Update June 6th, 2018: I found a very good article confirming my experiences in the past year measuring ORP: http://blog.orendatech.com/understanding-orp. In essence: low ORP is either too few chlorine or too much (organic) dirt in the pool.
The choice of microcontroller was easy since I'm a big fan of the Particle Photon and I needed WiFi connectivity anyway to send measurements to an online database. I threw in an additional temperature sensor and added a small solar panel to keep the device running autonomously.
The Photon firmware boots the device every 5 minutes and takes a series of measurements during one minute: pH, ORP, temperature, battery charge and WiFi strength. The average of each measurement is sent as an event to the Particle cloud where an integration made by Particle takes care of forwarding those events to the Google pub/sub service. On the Google cloud platform, I have a cloud function that stores the value in a datastore.
There is also a web app, running on Google app engine, that visualizes the measurements online. If my pool is outside, you can check it at http://poolbuddy.inceptive.be.
All the code can be found in the linked Github repository. Have fun!
1 / 2 • First setup at our pool