Lab-grade digital pH and ORP circuit

For Arduino, Raspberry Pi, embedded

Accurate

Easy to use

Affordable

ph module / circuit
ph module / circuit
ph module / circuit
ph module / circuit
ph probe / sensor
ph probe / sensor

Buy module and pH probe for $70

Buy module and ORP probe for $85

Buy module only for $30

Buy pH probe for $40

Buy ORP probe for $55

For laboratory, hydroponics, education, and aquariums

Available with lab-grade pH probe. Connects directly to your device (Arduino, Raspberry Pi, or embedded) - no other parts required. Our open-source software makes measuring fast and easy.

Beyond pH

Includes temperature compensation, with built in sensor. Can be used with Oxidation Reduction Potential(ORP) , and other ion-selective electrodes. (Nitrate, Potassium, etc) probes.

This module can be used with any probe with a BNC connection. The I2C interface can communicate with nearly any microcontroller.

Fully tested on Arduino, Raspberry Pi, and STM32

Output pins are labeled on the board, as follows:

Arduino wiring

Raspberry Pi wiring

Installing software

Arduino: From the Arduino IDE: SketchInclude LibraryManage Libraries → select Anyleaf

C++: Download Anyleaf.cpp and Anyleaf.h from the C++ Github link below, and place them in your project directory

Python: Run sudo apt install python3-scipy, then pip3 install anyleaf. Ensure I2C is enabled.

Example code, and driver source

A minimal Arduino example

#include <Anyleaf.h>

PhSensor ph_sensor;

void setup(void) {
    Serial.begin(9600);

    ph_sensor = PhSensor();

    ph_sensor.calibrate_all(
        CalPt(0., 7., 25.), CalPt(0.18, 4., 25.)
    );
}

void loop(void) {
    Serial.print("pH: "); Serial.println(ph_sensor.read());

    delay(1000);
}

A miminal Raspberry Pi Python example

import time
import board
import busio
from anyleaf import PhSensor, CalPt, OnBoard

def main():
    i2c = busio.I2C(board.SCL, board.SDA)
    delay = 1  # Time between measurements, in seconds
    phSensor = PhSensor(i2c, delay)

    phSensor.calibrate_all(
        CalPt(0., 7., 25.), CalPt(0.18, 4., 25.)
    )

    while True:
        print(f"pH: {phSensor.read(OnBoard())}")

        time.sleep(delay)


if __name__ == "__main__":
    main()

Datasheet

Regular calibration is required for accurate measurements. The official drivers support 2 or 3 point calibration. 2 point is sufficient for hydroponics, aquarium, or brewing use. 3 points, or 2 carefully chosen points are required for sufficient accuracy for lab use.

Module specifications:

pH probe specifications:

ORP probe specifications:

Compatible with the Mycodo Environmental Monitoring and Regulation System. If you're using a Raspberry Pi, this is a simple way to get it running with a GUI, charts, and logging. Follow the installation instructions on that page, and add AnyLeaf pH as an input.

Also available on Tindie.