HOME | Raspberry Pi | ビジネス書籍紹介 | 2026-01-04 (Sun) Today's Access : 173 Total : 1260871. Since 10 Sep. 2019

pH測定
2021.09.25


YouTube でも紹介しています。画像をクリックすると再生できます。

今回は、pHメータを使ってみました。pHメーターは液体の酸性・アルカリ性の度合いを測定します。 ガラス電極によるpH測定法は、ガラス電極と比較電極の2本の電極間に生じた電位差を測定することで、測定液のpHを取得します。 pHの異なった液体がガラス薄膜を隔て存在すると、薄膜部分にpHの差に比例した起電力が発生します。この薄膜は「pHガラス応答膜」と呼ばれます。 通常、液温25℃の場合、電極内の液体とガラス薄膜を隔てた外側の液体でpHが1違えば、約59mVの起電力が発生します。


Ref. ガラス電極によるpH測定 (株)堀場アドバンスドテクノ

pHガラス応答膜に生じた起電力を測定するには、pHガラス電極と比較電極が必要です。 比較電極は、電位が極めて安定した電極でなければならず、比較電極には安定した起電力を提供するために、電極内部液に、3.3mol/L KCLが用いられます。 比較電極の先端には、被測定液と電気的接続を保つために、多孔性セラミックの液絡部が設けられており、この微小な流路から内部液が漏れだします。
Ref. pHのはなし:ガラス電極と比較電極 東亜ディーケーケー(株)



複合電極はガラス電極と比較電極、あるいは温度補償電極を含めて一つにまとめた電極です。サンプルに浸すだけで校正や測定ができるため取り扱いが簡単で、洗浄も容易です。
Ref. 比較電極、温度補償電極、複合電極 (株)堀場アドバンスドテクノ

■DFROBOT PH Meter / SKU SEN0161


DFROBOT - PH meter SKU SEN0161
写真は、複合電極と計測モジュールから成る DFROBOTのpH Meter です。


表が示すように、電極から受けとる電圧は、酸性側でプラス、アルカリ側でマイナス、中性で0Vになります。


グラフにすると、pH値が上昇するにつれて直線的に電圧が低下していきます。
実際には、pH12以上になると、アルカリ誤差が生じ傾きにずれが生じます。


Arduino などのマイコンでは、負の電圧には対応していないので、測定モジュールでは、すべてがプラスの電圧になるように変換しています。
この際、5V動作のArduino のアナログ端子は0~5Vの入力電圧を10ビット(0~1023)で表現します。 中性のときを中心の2.5Vになるようにして、その上下での電圧が酸性、アルカリ性になるように変換されます。

■pH電極プローブ E201-C-9

DFROBOT製は若干お高いので、実際の測定には廉価版を使用しました。


PH range: 0-14pH
Temperature range: 0-80 °C
Zero-point: 7±0.25pH
Theoretical Percentage Slope: ≥98.5%
Internal Resistance: ≤250MΩ
Response Time: ≤1min
Noise < 0.5mV
Alkali error ≤ 15mV


先に説明したように比較電極内の塩化カリウム(3.3mol/L KCL)溶液は、測定液側に染み出るので、このように補給できる注入口の付いた商品がよいかもしれません。



Arduino Nano と測定モジュールをつなぎ、ラズベリーパイとUSB接続します。
Arduino Nano - 測定モジュール(ACS712)
5V  - 5V
GND  - GND
GND  - GND
A0:14 - PO



pH7.0の電位差0Vの状態を作り出すために、スクリュー端子付きのBNCオスコネクタの2つの端子をショートさせ、pHセンサーモジュールに取り付けます。



この状態で、モジュールのPO出力値を測定します。Arduinoのアナログ入力端子の中央値2.5Vになるように、測定モジュールの可変抵抗で調整します。


次は、実際にArduinoのアナログ端子から取得される値を測定します。
開発環境には、PlatformIOを使用しています。
Ref.Arduino開発環境構築 PlatformIO

$ mkdir ~/pH-Meter
$ cd ~/pH-Meter
$ pio init -b nanoatmega328

$ vi src/analog_value.ino
#define sensorPin A0

unsigned int voltage;
float        average;
int cnt = 50;

void setup(){

	Serial.begin(9600);

}
void loop() {

	average = 0.0;
	for(int i=0;i<cnt;i++){
		voltage = analogRead(sensorPin);
		average += voltage;
		delay(10);
	}
	average /= cnt;
	Serial.print("average = ");
	Serial.println(average);

	delay(1000);
}
このプログラムでは、analogRead()から取得した50回分の測定値を平均したものを1秒間隔で表示しています。

$ pio run -t upload
$ pio device monitor -p /dev/ttyUSB0 -b 9600
average = 562.26
average = 562.28
average = 562.42
average = 562.44
average = 562.14
.....

pH7.0(2.5V)の場合に、Arduino Nanoのアナログ端子から取得される電圧のばらつきは少ないのですが、 10ビット(0~1023)の中央値(512)より高めの値になっています。
これは、出力インピーダンスの大きい回路の電圧を、analogReadで測定したときなどに、誤差が大きくなるようです。

次に実際にpH電極プローブを付けて測定してみます。



同様にアナログ値を測定してみました。
average = 643.98
average = 643.18
average = 643.46
average = 643.58
average = 643.40
.....

pH電極プローブのキャップの中には、ガラス電極が乾燥しないように、KCL保存液がはいっています。
KCLは、強塩基と強酸なので、pH7を示すはずなのですが、BNC端子をショートさせたときの値とはかなり違います。

次に校正液を用いた測定を行ってみました。

校正用粉末を250mlの精製水に溶かして使用します。
pHの異なる2つの校正液を使って、各pH値におけるアナログ値を測定し、pHとの関係を求めます。
校正液は大気中の二酸化炭素が溶け込むことで、pH値が変化してしまうため、粉末を溶かして作った校正液の有効期間は一か月程度です。


温度により校正液を用いて取得される電圧も若干変動します。

次に、校正液に浸けて測定してみました。マニュアルによると電極を校正液に浸して2分程で数値が安定するようです。


pH4.0校正液の場合です。
average = 674.84
average = 674.96
average = 674.90
average = 674.80
average = 674.80
.....

pH6.86の校正液の場合です。
average = 558.64
average = 558.76
average = 558.48
average = 558.42
average = 558.56
.....

pH9.18校正液の場合です。
average = 476.94
average = 477.08
average = 476.94
average = 476.78
average = 477.16
.....

各種校正液におけるアナログ値
     PH4.0  pH6.86  pH9.18 
    674.84558.64476.94
    674.96558.76477.08
    674.90558.48476.94
    674.80558.42476.78
    674.80558.56477.16
 平均 674.86558.57476.98

pHとアナログ値の関係
 pH4.0  pH6.86  pH9.18  傾き 
674.86558.57 -0.02459
674.86 476.98-0.02618
558.57476.98-0.02843
2種類の校正液とアナログ値から傾きを求めました。
傾きの計算例
(pH4.0 - pH6.86) / (pH4.0のアナログ値 - pH6.86のアナログ値)
= (4.0 - 6.86) / (674.86 - 558.57)
= -0.02459
酸性側(pH4.0-6.86)とアルカリ側(pH6.86-9.18)では、pHとアナログ値の相関関係(傾き)に違いが生じています。
実際に測定する液体の予想されるpHと、使用する校正液のpHが近いものを使用することで、測定精度が上がります。
最初に紹介したDFROBOTのpH Meterの場合においても、より正確なpHを求めるためには校正液を使用することを奨めています。

■pH測定プログラム
#define sensorPin A0

float pH_400     = 4.0;
float pH_686     = 6.86;
float pH_918     = 9.18;
float analog_400 = 674.86;
float analog_686 = 558.57;
float analog_918 = 476.98;
int   loopCnt    = 50;
float slope_acidic;
float slope_alkaline;
float pH;
float average;

void setup(){

	Serial.begin(9600);
	slope_acidic   =  ( pH_400 - pH_686) / (analog_400 - analog_686);
	slope_alkaline =  ( pH_918 - pH_686) / (analog_918 - analog_686);
}

void loop() {

	average = 0.0;
	for(int i=0;i<loopCnt;i++){
		average += analogRead(sensorPin);
		delay(10);
	}
	average /= loopCnt;
	Serial.print( "pH = " );
	if (average > analog_686) {
		pH = slope_acidic * ( average - analog_686 ) +  pH_686;
	} else {
		pH = slope_alkaline * ( average - analog_686 ) +  pH_686;
	}
	Serial.println(pH);
	delay(1000);
}
このプログラムでは測定値が酸性側、アルカリ側で傾きを変えています。

$ pio run -t upload

■The CRAFT COLAを測ってみました

最近発売された、The CRAFT COLA、世界のスパイス10種をブレンド!ドクペが大丈夫な方なら好きかもしれません。

$ pio device monitor -p /dev/ttyUSB0 -b 9600
pH = 3.06
pH = 3.06
pH = 3.06
pH = 3.07
pH = 3.06
.....

■参考文献
arduinoでpHメーター(動作確認編)
arduinoでpHメーター(OLED表示編)
How to use a PH probe and sensor
Measure pH with a low-cost Arduino pH sensor board
Ph Sensor OWL2pe or BASIC Stamp interface
ph-4502c ph meter calibration notes
Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
2019.12.13 モバイルバッテリーによる瞬間停電対策
2020.01.01 1280x800 HDMI MONITOR
2020.01.12 micro:bitをコマンドラインで使う
2020.02.04 サーマルプリンタを使う
2020.04.10 電卓を制御して数字を表示する
2020.08.03 Seeeduino XIAO
2020.08.09 LGT8F328P - Arduino clone
2020.09.18 電流計測モジュール INA219
2021.02.16 癒しの電子回路
2021.03.06 疑似コンソール
2021.08.08 電子ペーパー
2021.09.04 AVRマイコン・ATTiny85
2021.09.25 pH測定
2021.11.13 NTP時刻取得と活用
2021.11.27 GPS情報取得
2021.12.11 GR-KURUMI
2021.12.25 ATMEGA328P 3.3V/8MHz
2022.01.11 AS-289R2 プリンタシールド
2022.01.25 TM1637 & ATtiny85
2022.02.22 Raspberry Pi Zero 小道具
2022.03.01 ATTinyCore
2022.03.18 Adafruit QT Py + XIAO Expansion board
2022.07.31 サーマルプリンター番外編:通信筒
2023.01.01 FTP Server & SPI Flash SD
2023.02.01 LPC810(ARM Cortex-M0+)
2023.02.15 IchigoJam互換機
2023.03.01 Telnet
2023.04.26 USBメモリをUART接続で利用する
2023.05.14 焦電型赤外線モーションセンサー
2023.07.01 文字化けしないキーボード
2023.08.01 Bluetoothサーマルプリンター
2023.08.12 LattePanda 2G/32GB
2023.09.04 SI-3012KS
2023.12.01 疑似コンソール(C言語編)
2023.12.16 昭和レトロ・温度湿度時刻計
2023.12.25 二酸化炭素濃度監視
2024.01.23 なんちゃってmicro:bit
2024.02.07 オリジナル micro:bit
2024.02.23 ESP32 OTA
2024.03.08 TELNETサーマルプリンター
2024.05.08 ESP32 PROGRAM SELECTOR
2024.05.23 統合開発環境とQwiic
2025.01.24 赤外線リモコン
2025.03.25 QRCode SCANNER
2025.04.08 Keyestudio 328 WiFi Plus
2025.08.23 NanoPi NEO3
2025.09.24 I2C接続microSDモジュール
2025.10.08 UNO 3.3V@8MHz

たいていのことは100日あれば、うまくいく。長田英知著
「時間がなくて、なかなか自分のやりたいことができない」 「一念発起して何かを始めても、いつも三日坊主で終わってしまう」 「色んなことを先延ばしにしたまま、時間だけが過ぎていく」 そこで本書では、そんな著者が独自に開発した、 まったく新しい目標達成メソッド「100日デザイン」について、 その知識と技術を、余すところなくご紹介します。

まんがで納得ナポレオン・ヒル 思考は現実化する
OLとして雑務をこなす日々に飽き足らず、科学者だった父が残した薬品を商品化すべく、起業を決意した内山麻由(27)。彼女はセミナーで知り合った謎の女性からサポートを得ながら、彼女と二人三脚でナポレオン・ヒルの成功哲学を実践し、さまざまな問題を乗り越えていく。 ヒル博士の<ゴールデンルール>に従い、仕事に、恋に全力疾走する彼女の、成功への物語。

今日は人生最悪で最高の日 1秒で世界を変えるたったひとつの方法 ひすいこたろう著
偉人の伝記を読むと、最悪な日は、不幸な日ではなく、新しい自分が始まる日であることがわかります。最悪な出来事は、自分の人生が、想像を超えて面白くなる兆しなのです。偉人伝を読むことで、このときの不幸があったおかげで、未来にこういう幸せがくるのかと、人生を俯瞰する視線が立ち上がるのです。

ご飯は私を裏切らない heisoku著
辛い現実から目を背けて食べるご飯は、いつも美味しく幸せを届けてくれる。 29歳、中卒、恋人いない歴イコール年齢。バイト以外の職歴もなく、短期バイトを転々とする日々。ぐるぐると思索に耽るけど、ご飯を食べると幸せになれる。奇才の新鋭・heisokuが贈るリアル労働グルメ物語!

【最新版Gemini 3に対応!】できるGemini (できるシリーズ)
Geminiを「最強の知的生産パートナー」として使いこなすための、実践的なノウハウを凝縮した一冊です。 基本的な操作方法から、具体的なビジネスシーンでの活用、日々の業務を自動化するGoogle Workspaceとの連携、さらには自分だけのオリジナルAIを作成する方法まで余すところなく解説します。

Rustプログラミング完全ガイド 他言語との比較で違いが分かる!
Rustの各手法や考え方を幅広く解説! 500以上のサンプルを掲載。実行結果も確認。 全24章の包括的なチュートリアル。

ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS… 全WEB媒体で効果バツグン! カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術

小型で便利な Type-C アダプター USB C オス - USB3.1 オスアダプター
Type-C端子のマイコンボードをこのアダプタを介して直接Raspberry Piに挿すことができます。ケーブルなしで便利なツールです。

Divoom Ditoo Pro ワイヤレススピーカー
15W高音質重低音/青軸キーボード/Bluetooth5.3/ピクセルアート 専用アプリ/USB接続/microSDカード

電源供給USBケーブル スリム 【5本セット】
USB電源ケーブル 5V DC電源供給ケーブル スリム 【5本セット】 電源供給 バッテリー 修理 自作 DIY 電子工作 (100cm)

Copyright © 2011-2027 Sarako Tsukiyono All rights reserved®.