You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.3 KiB

Microprocessor

The Wi-Fi Pool Kit is controlled using an Adafruit Feather HUZZAH32 as its CPU. The HUZZAH is programmed using the Arduino IDE and uses an onboard ESP32 as its Wi-Fi transmitter.

ESP2 Board

PCB

The overall design of the PCB is quite simple. The CPU is powered and programmed through the panel-mount USB connector. The CPUs USB pin supplies the board's power bus with 5V.

Pool Kit PCB

Communication protocol

The CPU communicates with all peripheral sensors using the I2C data protocol. All data lines are directly connected to the CPUs I2C port. Using a different data protocol with this circuit board is not possible.

It is important to keep in mind that all Atlas Scientific components default to UART mode. When adding a new Atlas Scientific component to the kit, it must first be put into I2C mode.

Adding additional components of the same type, such as an additional pH or ORP sensor, is not hard to do. As mentioned above, you must set the device to I2C mode, and you must make sure that its I2C address is not the same as the already existing components.

The next table lists the default I2C address of Atlas Scientific components commonly added to this kit.

I2C addresses

Setting up the Wi-Fi Pool Kit

The Atlas-Scientific Wi-Fi Pool Kit has been designed to upload sensor data to the ThingSpeak website, a free, cloud-based data acquisition and visualization platform. You will be required to set up a free account with ThingSpeak to upload and visualize the data. With a free account, you can upload data once every 15 seconds.

Setup a ThingSpeak account

Because the sensor data is stored/viewed on the ThingSpeak website, you will need to setup a ThingSpeak account. Create your ThingSpeak account by using the next link: https://thingspeak.com/login

Set up an account

Create a channel

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

Select a new channel

To finish this step, Scroll to the bottom of the page and click Save Channel.

Get ThingSpeak API keys

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

Keys1

Keys2

Be sure to save your Channel ID and Write API Key because we are going to need them in the next steps.

Arduino IDE libraries

You will have to make sure you have the correct path for the ESP32 Library.

In the Arduino IDE, go to File > Preferences.

Locate the Additional Boards Manager URLS text box.

Additional boards 1

Make sure this URL is in the text box: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Then, click OK.

Now, in the Arduino IDE go to Tools > Board > Boards Manager.

Boards manager 1

Boards manager 2

In the search bar of the Boards Manager, lookup esp32. Update to the most recent version if you do not already have it.

ThingSpeak library for Arduino

Now, you have to use the next link to download the ThingSpeak library, which lets us sending data to this platform:

https://www.arduinolibraries.info/libraries/thing-speak

It is important you do not unzip the downloaded file.

You will have to import this .zip file to the Arduino IDE. To import the file, in the IDE go to: Sketch > Include Library > Add .ZIP Library

ThingSpeak ZIP

And pick the corresponding file you just downloaded.

EZO I2C Library

Use the next link to download the modules for I2C communication between the devices of the board: https://github.com/Atlas-Scientific/Ezo_I2c_lib

EZO ZIP

Again, it is important you do not unzip the downloaded file. One more time, you have to import this file to the Arduino IDE by following the same instructions: Sketch > Include Library > Add .ZIP Library

Source code

After you import both .ZIP files, in this repository it is included the file source_code.ino. You must download this file and open it in the Arduino IDE.

Once you have the file opened, the first thing to do is filling in the code with the name of your Wi-Fi signal and its password. Also, it is neccessary you complete with the data from the ThingSpeak platform, specifically for the Channel ID and your Write API Key.

Filling in wifi password