Atlas WiFi Pool Meter

Introduction: Atlas WiFi Pool Meter

About: Founded in 2005, Atlas Scientific specializes in building laboratory grade sensing equipment for robots, appliances, and industrial control systems. Thousands of Atlas Scientific sensors can be found in a wide…

This tutorial will show you how to set up the WiFi Pool kit from Atlas Scientific. The meter measures pH, oxidation-reduction potential (ORP), and temperature. Data is uploaded to the ThingSpeak platform, where it can be monitored remotely via a mobile device or computer.

For detailed information on this kit, refer to its datasheet by clicking HERE.


  • Atlas Scientific does not make consumer electronics. This equipment is intended for electrical engineers. If you are not familiar with electrical engineering or embedded systems programming, this product may not be for you.

  • This device was developed and tested using a Windows computer. It was not tested on Mac, Atlas Scientific does not know if these instructions are compatible with a Mac system.



Step 1: Setup a ThingSpeak Account

Because the sensor data is stored/viewed on ThingSpeak, you will need to set up a ThingSpeak account. Create your ThingSpeak account by clicking HERE.

Step 2: Create a Channel

Your data is uploaded to ThingSpeak through a 'Channel.' Select New Channel

Fill out the highlighted boxes. (Be sure to click on the checkboxes to enable field 2 and 3). For reference, this is what we entered.

Name Atlas Sensor

Field 1 pH

Field 2 ORP(mV)

Field 3 Temp(°C)

Scroll to the bottom of the page and click Save Channel

Step 3: Get ThingSpeak API Keys

After you saved your channel settings, you will be redirected to your channel page. Click on API keys

Be sure to save your Channel ID and Write API Key. We are going to need these in the next few steps.

Step 4: Make Sure Your Arduino IDE Libraries Are Up to Date

A. Make sure you have the correct path for the Esp8266 Library

In the IDE, go to File>Preference

Locate the Addition Boards Manager URLs text box.

Make sure this URL is in the textbox

Click OK

Step 5: Make Sure Your Arduino IDE Libraries Are Up to Date

B. Update the esp8266 board

In the IDE, go to Tools > Board > Boards Manager

In the search bar of the Boards Manager, lookup esp8266. Update to the most recent version if you don't already have it. (Version 2.6.3 is not the most recent version)

Step 6: Make Sure Your Arduino IDE Libraries Are Up to Date


Step 7: Make Sure Your Arduino IDE Libraries Are Up to Date

D. Add the EZO I2C library

To download the EZO library .ZIP file click HERE.

Don't unzip it!

Import the .ZIP file to your Arduino IDE. To import the .ZIP file go to Sketch > Include Library > Add .ZIP Library

Step 8: Flash the Pool Kit With the Correct Code

A. Select, open, and adjust the code you want to use for your Wi-Fi Kit

File> Examples> EZO_I2C_lib-master> Examples> IOT_kits>pool_kit

Step 9: Flash the Pool Kit With the Correct Code

B. Fill in your Wi-Fi / ThingSpeak credentials

Fill in your Wi-Fi name and password, along with the Channel ID and Write API Key to the code.

Step 10: Flash the Pool Kit With the Correct Code

C. Setting up your pump

If you do not have a pump attached, you can just skip this part. The code is rather self-explanatory. You set what parameters will trigger the pump to engage.

Step 11: Setting Up the HUZZAH Board

A. Set the target CPU to flash

Tools> Board> Adafruit Feather HUZZAH ESP8266

Step 12: Setting Up the HUZZAH Board

B. Adjust CPU Settings

Make sure the CPU settings on the Adafruit Feather HUZZAH ESP8266 are correct. To adjust the CPU settings, click Tools.

For reference, this is what Atlas Scientific set the CPU settings to.

(Your options may not be exactly the same, just try and match them as closely as possible)

Step 13: See the Readings

Open your Arduino serial monitor (You must have the serial monitor set to the com port of the Adafruit Feather HUZZAH). Set to carriage return and 9600 baud.

The Wi-Fi Pool Meter will always attempt to connect to ThingSpeak on bootup.

Entering the poll command will stop the Wi-Fi Pool Meter from uploading the readings to ThingSpeak, while you debug your WiFi problems.

Step 14: Sensor Calibration

Atlas Scientific created a list of calibration commands that are built into the library. Type in help in the serial monitor to see the list of commands.

A. The poll command

Send the command poll. This will let you see the readings once per second and it will stop uploading to ThingSpeak while you calibrate.

Step 15: Sensor Calibration

B. Calibrate pH

When calibrating pH, you must always calibrate to pH 7 first.

Remove the soaker bottle and rinse off the pH probe. Remove the top of the pH 7.00 calibration solution pouch. Place the pH probe inside the pouch and let the probe site in the calibration solution until the readings stabilize. This will take 1 - 2 minutes.

Once the readings have stabilized, issue the midpoint calibration command ph:cal,mid,7

Rinse off the probe and repeat this process for both pH 4.00 and pH 10.00

Step 16: Sensor Calibration

C. Calibrate ORP

Rinse off the probe and insert it directly into the 225mV calibration solution, and water the readings. Wait for the ORP readings to stabilize. This will take about 10 - 60 seconds.

When the readings stabilize, issue the command orp:cal,225

Step 17: Sensor Calibration (Part 1: Calibrate Temperature)

Calibrating the pt-1000 temperature probe is not required. However, if you want to, a simple method is to place the pt-1000 probe into boiling water. Then issue command rtd:cal,t where t = temperature value.

Step 18: Almost Done

Once you have finished with calibration, issue the datalog command to resume taking a reading every 15 seconds and uploading it to ThingSpeak.

To see the data on your phone, download the ThingSpeak app.

Be the First to Share


    • Fruit and Veggies Speed Challenge

      Fruit and Veggies Speed Challenge
    • Backyard Contest

      Backyard Contest
    • Summer Fun: Student Design Challenge

      Summer Fun: Student Design Challenge



    Question 7 weeks ago

    How can I make an additional temperature sensor (EZO RTD) on the AUX port work while another EZO RTD is on the Temperature port? Could you explain the procedure step by step?


    Answer 6 weeks ago

    -Set the additional EZO RTD circuit to I2C mode. Ensure that its I2C address is not the same as an already existing EZO circuit in the kit.
    -Add a field in your Thingspeak channel for the data.
    -Modify the code accordingly.