M5StackでpH計

pH meter ・ pH计

アナログpHセンサーをPort.Bに接続して液体のpHを測定します。

この構成をエディタで開く・編集する →

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack Core2Controllergrove_i2c, grove_analog, grove_uart, mbusofficial page — $46.9
Unit Earth (Soil Moisture Sensor)pH sensor (analog)grove_analogofficial page — $3.5

配線

作り方

M5Stack Core2とアナログpHセンサー(Unit Earth)で液体のpHを測定する装置です。センサーを液体に浸すと、そのpH値に対応したアナログ電圧が出力され、Core2がそれを読み取って画面に表示します。

  1. 部品を用意する — 必要なもの:M5Stack Core2本体、Unit Earth(土壌水分センサー)、Groveケーブル1本(通常ユニットに付属)、Core2とパソコンをつなぐUSB-Cケーブル。
  2. Groveケーブルで接続する — Unit Earthはアナログ(黒)接続です。Groveケーブルの一端をUnit Earthに、もう一端をCore2の黒いPort.B(アナログ/IOポート)に差し込みます。コネクタは一方向にしか入らないので、無理に押し込まないでください。
  3. パソコンにつないでMicroPythonを書き込む — USB-CケーブルでCore2をパソコンにつなぎます。UIFlowやThonnyなどのツールで、Core2にMicroPythonファームウェアが入っていることを確認し、下のコードをデバイスにコピーして実行します。
  4. センサーを校正する(初回のみ) — pHセンサーは使用前に校正が必要です。pH4.0とpH7.0の校正液を用意し、それぞれの液にセンサーを浸したときのアナログ値を読み取ります。コード内のpH4_VALUEとpH7_VALUEを実際の値に書き換えてください。
  5. 測定を開始する — 校正が完了したら、センサーを測定したい液体に浸します。Core2の画面にpH値が表示されます。液体がセンサーに触れている間、値が更新され続けます。

サンプルコード(micropython)

# M5Stack Core2 + Unit Earth (pH measurement)
# Wiring: Unit Earth -> Core2 black Port.B (analog)
import time
from machine import Pin, ADC
from m5stack import lcd

# Port.B analog pin on Core2: GPIO36
ph_pin = ADC(Pin(36))
ph_pin.atten(ADC.ATTN_11DB)  # 0-3.3V range

# Calibration values (replace with your own)
pH4_VALUE = 1500   # analog reading in pH4 buffer
pH7_VALUE = 2000   # analog reading in pH7 buffer

# Calculate slope and intercept for linear conversion
# pH = slope * voltage + intercept
# Using two-point calibration
slope = (7.0 - 4.0) / (pH7_VALUE - pH4_VALUE)
intercept = 4.0 - slope * pH4_VALUE

def read_ph():
    raw = ph_pin.read()
    ph = slope * raw + intercept
    return ph

while True:
    ph = read_ph()
    lcd.clear()
    lcd.print('pH: %.2f' % ph, 10, 20)
    time.sleep(1)

コツ・安全上の注意

この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。

この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。

エディタで開く →

UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。