pHセンサを味見 ーエッジAI活用への道 7ー
金魚水槽管理システムを目指して前回はMaixduinoに温度センサを導入いたしました。
今回はさらにpHセンサの導入を目指して、まずはpHセンサの調整・動作の確認を実施いたしました。
目次
pHセンサ
以下のセンサを購入させていただきました。
大変 低価格で見つけた際にうれしさで口のモゴモゴがしばらく止まりませんでした。
pHセンサがやっと届いた。
どう使うのだろう。先端の容器になんか謎の汁はいってるけど。。基板の方にはポテンショがポテンと2つ。調整必要なのかな?
リファレンス汁も必要かな熱くなるぜぇ pic.twitter.com/oEHB2xrion
— HomeMadeGarbage (@H0meMadeGarbage) October 12, 2019
基板とBNCケーブルにセンサがついております。
機構としては単純でpHに応じた電圧値がPoピンから出力されます。
温度補正用に基板上の温度センサの値を出力(To)したり、所定のpHになったら警告出すピン(Do)などもありますがここでは使用しません。
構成
電圧出力P0ピンをArduinoのアナログ入力A0ピンに接続するだけです。
部品
- Adafruit Metro Mini 328 – 5V 16MHz
- pHセンサ PH-4502C
出力電圧調整
pHセンサ(BNCケーブルについてるやつ)はpH 7でGNDレベルの電圧を、7以上で負、7以下で正の電圧を出力するようです。
マイコンでは正の電圧しか検出できませんので、基板上のポテンショメータ(BNCコネクタ側)で出力電圧(P0)の調整をします。
基板上のBNCコネクタの信号線をGNDに短絡して、Po電圧が2.5V(アナログ出力:512)になるようにポテンショメータ(BNCコネクタ側)のつまみを回します。
この調整によって、センサの電圧出力がどのpHでも正の値となり、pH7は2.5Vで出力されます。
pH値 校正
次に出力電圧(Po)とpHを関連付ける必要があります。pHが既知の液体を測定して電圧変換式を導出します。
よいものがこれまた低価格で売っておりました。10/18に注文して11/11に台北から届きました。
250mlの水に溶かして使用します。3液体を作って電圧測定しました。
3点プロットした結果が以下です。
pH = -5.737 × 測定電圧 + 21.426 という変換式を得ることができました。
Arduinoコード
以下が使用したpH測定用のコードです。
出力電圧(Po)の平均値からpHを算出します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
const int analogInPin = A0; int sensorValue = 0; unsigned long int avgValue; float b; int buf[10],temp; void setup() { Serial.begin(9600); } void loop() { /* //Vol cal. int sensorValue = analogRead(A0); float voltage = sensorValue * (5.0 / 1023.0); Serial.print(analogRead(sensorValue)); Serial.print(" : "); Serial.println(voltage); */ for(int i=0;i<10;i++) { buf[i]=analogRead(analogInPin); delay(10); } for(int i=0;i<9;i++){ for(int j=i+1;j<10;j++){ if(buf[i]>buf[j]){ temp=buf[i]; buf[i]=buf[j]; buf[j]=temp; } } } avgValue=0; for(int i=2;i<8;i++) avgValue+=buf[i]; float pHVol=(float)avgValue*5.0/1024/6; float phValue = -5.737 * pHVol + 21.426; Serial.print("sensor = "); Serial.println(phValue); delay(20); } |
参考
以下の参考に記載されたコードを参考にしております。ありがたや。
- How to use a PH probe and sensor
- PH-4502C pH Sensor Calibration and ADC using MCP3008, PCF8591, and ADS1115
おわりに
リファレンス汁でキャルとってpH計完成!
ビールはpH 3.99 pic.twitter.com/ftrHpxdc4T
— HomeMadeGarbage (@H0meMadeGarbage) November 11, 2019
pHを測定できる準備ができましたので次回の道では水槽に投入して、
水温とともにログをとれるようにしたいと思っております。
それではまた 次の道で。
親切なページで助かりました。今後も参考にさせていただきます。感謝!!