poolDuino hardware & software details

pH and ORP stamp are using standard serial communication to send data they read from the probe. So I used the SoftwareSerial library to get data processed by the arduino and I connected :

  • pH RX & TX pin respectively to pin 2 & 3 on the arduino
  • ORP TX & TX pin respectively to pin 5 & 6 on the arduino

Temperature sensor is an analog sensor which I connected to pin A0.

PoolDuino 640x480

Also, I connected power (3.3V) and ground to respective power lines of sensors.

Test code (which is way more complicated than it should be because I was first planning to use an arduino as the final solution… but then decided to go for a BeagleBone) can be found here : https://github.com/jsiobj/poolDuino

Let’s build a pool monitoring system : poolDuino

Because my parents have a quite expensive pool monitoring system that is not even able to grah collected data, I decided to have a look at what I can do.

What do I need to measure ?

  • pH
  • ORP (redox)
  • temperature

Well… temperature is easy. There are plenty of easy to use sensors available. It becomes a bit tricky for pH and ORP. Actually, you can’t just connect an ORP or pH sensor directly to an Arduino as you would with a temperature sensor. pH and ORP probes are generating very small voltage and current. Their output needs to be amplified quite a lot.

As I am not an electronics specialist, I desperately looked for some “pre-build” pH and ORP sensor that would be quite easy to use. There are quite a few very nice and smart projects around :

  • LeoPhi : only pH though, no ORP
  • phDuino : still only pH
  • Arduiarium : got pH, ORP, EC,  1wire, I2C… a bit of an overkill for what I needed
  • and probably many more…

I finally found Atlas Scientific pH and ORP stamps : not that expensive (before I had to pay VAT on parcel collection plus a fee… for VAT collection !), very nicely build, small, easy to use… Exactly what I needed.

orp&ph 640x480

I then build a first prototype using an Arduino Ethernet. Not that I will be using ethernet capability but it has an SD card slot so that I could record collected data on a 2Gb SD. I would just have to connect the Arduino to a power source and plunge the 3 probes in the pool.

PoolDuino 640x480

I left the probe for around a day and a half running and took the SD card back, loaded the data into a Google Fusion table which gives the following results :

[iframe width=”510″ height=”100″ scrolling=”no” frameborder=”no” src=”https://www.google.com/fusiontables/embedviz?containerId=gviz_canvas&q=select+col0%2C+col3+from+1zWy-wOUpEFkmKwPhjUALB4IOt2t_-BQKA_-HaLE+order+by+col0+asc&viz=GVIZ&t=AREA&rmax=250&uiversion=2&gco_forceIFrame=true&gco_hasLabelsColumn=true&width=510&height=100″]

[iframe width=”510″ height=”100″ scrolling=”no” frameborder=”no” src=”https://www.google.com/fusiontables/embedviz?containerId=gviz_canvas&q=select+col0%2C+col1+from+1zWy-wOUpEFkmKwPhjUALB4IOt2t_-BQKA_-HaLE+order+by+col0+asc&viz=GVIZ&t=AREA&rmax=250&uiversion=2&gco_forceIFrame=true&gco_hasLabelsColumn=true&att=true&width=510&height=100″]

[iframe width=”510″ height=”100″ scrolling=”no” frameborder=”no” src=”https://www.google.com/fusiontables/embedviz?containerId=gviz_canvas&q=select+col0%2C+col2+from+1zWy-wOUpEFkmKwPhjUALB4IOt2t_-BQKA_-HaLE+order+by+col0+asc&viz=GVIZ&t=AREA&rmax=250&uiversion=2&gco_forceIFrame=true&gco_hasLabelsColumn=true&width=510&height=100″]

Works great ! The pH drop is due to adding (a bit too much) pH minus solution as pH was a bit high.