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.84 | 558.64 | 476.94 |
| 674.96 | 558.76 | 477.08 |
| 674.90 | 558.48 | 476.94 |
| 674.80 | 558.42 | 476.78 |
| 674.80 | 558.56 | 477.16 |
平均 | 674.86 | 558.57 | 476.98 |
pHとアナログ値の関係
pH4.0 | pH6.86 | pH9.18 | 傾き |
674.86 | 558.57 | | -0.02459 |
674.86 | | 476.98 | -0.02618 |
| 558.57 | 476.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プロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
Arduinoで学ぶ組込みシステム入門(第2版)
●Arduinoを使って組込みシステム開発を理解する
・ハードウェアやソフトウェアなどの基礎知識/
・設計から実装までを系統的に説明するモデルベース開発/
・Arduinoを用いた実際の開発例
最新 使える! MATLAB 第3版
◆◆すぐに「使える!」 全ページフルカラー!◆◆
・MATLAB R2022bに対応し、解説もより詳しく!/
・コマンド・スクリプトの例が豊富で、動かして学べる!/
・超基本から解説。これから使いはじめる人にぴったり!/
・全編フルカラー、スクリーンショットも豊富!
Amazon Web Services基礎からのネットワーク&サーバー構築改訂4版
1.システム構築をインフラから始めるには/
2.ネットワークを構築する/
3.サーバーを構築する/
4.Webサーバーソフトをインストールする/
5.HTTPの動きを確認する/
6.プライベートサブネットを構築する/
7.NATを構築する/
8.DBを用いたブログシステムの構築/
9.TCP/IPによる通信の仕組みを理解する
C言語は第二の母国語: 独学学生時代から企業内IT職人時代に培った、独立のための技術とノウハウ 平田豊著
学生時代から独学でプログラミングをはじめ、企業内でデバイスドライバを開発し、そして独立後もたくさんのアプリケーション開発や技術書制作に携わってきた著者。その筆者が大事に使い続ける「C言語」の“昔と今”について、気づいたことや役立つ知識、使ってきたツールなどについて、これまで記してきたことを整理してまとめました。
本書では、現役プログラマーだけでなく、これからプログラミングを学ぶ学生などにも有益な情報やノウハウを、筆者の経験を元に紹介しています。
1冊ですべて身につくJavaScript入門講座
・最初の一歩が踏み出せる! 初心者に寄り添うやさしい解説
・最新の技術が身につく! 今のJavaScriptの書き方・使い方
・絶対に知っておきたい! アニメーションとイベントの知識
・プログラミングの基本から実装方法まですべて学べる
図解! Git & GitHubのツボとコツがゼッタイにわかる本
ソフトウェア開発では欠かすことのできないGit、GitHub。
これからGit、GitHubを使いたいという入門者の方でも、実際に手を動かしながら使い方を学べます。
C自作の鉄則!2023 (日経BPパソコンベストムック)
メーカー製のパソコンはスペックが中途半端で、自分が本当に欲しい機種がない――。そう思っている人には、ぜひ自作パソコンをお薦めします。自作パソコンのパーツは進化が速く、しかも驚くほど種類が豊富。価格も性能も、幅広く用意されているため、満足度100%の“自分だけの1台”を手に入れることができます。
Interface 2023年6月号
特集:第1部 フィルタ設計 基礎の基礎/
第2部 係数アプリや波形観測アプリで合点!FIR&IIRフィルタ作り/
第3部 配布プリント基板で体験!マイコンで動くフィルタ作り
日経Linux 2023年5月号
【特集 1】 AI時代の最強フリーソフト ~ 25のやりたいを実現!
【特集 2】 AWS、Azureのうまみを無料で体感!面倒なことはクラウドに任せよう
【特集 3】 新しいRaspberry Pi Cameraで遊んでみよう
【特集 4】 Linuxで旧型PCを復活! 1kg切るモバイルPCを「ChromeOS Flex」でChromebook化
ラズパイマガジン2022年秋号
特集:5大人気ボード 電子工作超入門
「半導体不足で在庫が不足し、電子工作のボードがなかなか買えない…」。そんな今にふさわしい特集を企画しました。5種の人気ボードにすべて対応した電子工作の入門特集です。「GPIO」や「I2C」を使った電子パーツの制御方法は、どのボードでも同じです。手に入れられたボードを使って、今こそ電子工作を始めましょう。
地方で稼ぐ! ITエンジニアのすすめ
学歴、理系の知識、専門スキル……全部なくてもITエンジニアになれる!
地方でも高収入でやりがいをもって働ける!ITエンジニアの魅力を一挙大公開
Raspberry Piのはじめ方2022
本書は、ラズパイやPicoの買い方やインストール、初期設定といった基本から、サーバー、電子工作、IoT、AIといったラズパイならではの活用方法まで、1冊でお届けします。
ラズパイをこれから始める方向けに、全36ページの入門マンガ「女子高生とラズベリーパイ」も巻末に掲載。これを読むだけでラズパイがどんなものなのか、すぐに分かって触れるようになります。
ハッカーの学校 IoTハッキングの教科書
生活にとけこみ、家電機器を便利にするIoT技術。
Webカメラなど、便利の裏側に潜むセキュリティの危険性をハッキングで検証。
専門家がパケットキャプチャからハードウェアハッキングまで、その攻撃と防御を徹底解説。
本書は2018年7月に刊行された「ハッカーの学校IoTハッキングの教科書」に一部修正を加えた第2版です。
攻撃手法を学んで防御せよ! 押さえておくべきIoTハッキング
本書は、経済産業省から2021年4月にリリースされた、IoTセキュリティを対象とした『機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き』の『別冊2 機器メーカに向けた脅威分析及びセキュリティ検証の解説書』をもとに、IoT機器の開発者や品質保証の担当者が、攻撃者の視点に立ってセキュリティ検証を実践するための手法を、事例とともに詳細に解説しました。
ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS…
全WEB媒体で効果バツグン!
カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術
プログラマーは世界をどう見ているのか 西村博之著
イーロン・マスク(テスラ)、ジェフ・べゾス(Amazon)、ラリー・ペイジ(Google)…etc.
世界のトップはなぜプログラマーなのか?
ニーア オートマタ PLAY ARTS改 <ヨルハ 二号 B型 DX版> PVC製 塗装済み可動フィギュア
「NieR:Automata」より、ヨルハ二号B型こと2BがPLAY ARTS改に新たに登場!
高級感の感じられるコスチュームや髪の質感、洗練されたボディバランス、細かなデティールに至るまでこだわり抜かれた逸品。
DX版には通常版のラインナップに加え2Bの随行支援ユニット ポッド042などをはじめ“純白の美しい太刀"白の約定やエフェクトパーツ、自爆モードを再現できる換装用ボディパーツ、シーンに合わせて変えられる顔パーツ2種も付属する豪華な仕様に。
作中のあらゆるシーンを再現することが可能なファン必見の一品となっている。
Newtonライト2.0 ベイズ統計
ベイズ統計は,結果から原因を推定する統計学です。AIや医療などの幅広い分野で応用されています。その基礎となるのは18世紀に考えだされた「ベイズの定理」です。
この本では,ベイズ統計学のきほんをやさしく紹介していきます。
白光(HAKKO) ダイヤル式温度制御はんだ吸取器 ハンディタイプ FR301-81
無水エタノールP 500mlx2個パック(掃除)
ケイバ(KEIBA) マイクロニッパー MN-A04
サンハヤト SAD-101 ニューブレッドボード
白光(HAKKO) HEXSOL 巻はんだ 精密プリント基板用 150g FS402-02
[Amazon限定ブランド]【指定第2類医薬品】PHARMA CHOICE 解熱鎮痛薬 解熱鎮痛錠IP 100錠
|