Grove TDS 水質センサの温度補正

電子工作

Grove TDS 水質センサを温度補正するようにしたので紹介します.

はじめに

Grove の TDS 水質センサーは,A/D 変換器と組み合わせることで,Raspberry Pi から水槽の水質チェックができるようになる便利なアイテムです.
ただ,メーカのドキュメントにある下記のコードをそのまま使うと,水温によって値が変化してしまうと言う課題があります.

実際に温度によって値が変わってしまう様子を以下に示します.水槽用のクーラによって水温が変わるタイミングで影響を受けていることが確認できます.

水槽で実際に発生する温度変化による影響は数ppm レベルなので,実用上は特に気にするほどではないのですが,ちょっと気持ち悪いので温度補正することにしました.

温度補正式

DFRobot のリポジトリにある GravityTDS.cpp は温度補正がされており,次のようなコードになっています.

/ (1.0+0.02*(this->temperature-25.0) の部分が補正をしている部分になります.

これをそのまま使っても良いのですが,せっかくなので温度係数である 0.02 をいじりながら調整したところ,私の環境では 0.018 がぴったりでした.

補正後はこんな感じになります.

温度が急変している箇所でも TDS の値は綺麗に連続しています.

おまけ

上のグラフをみると,ざっくり 30 時間で,TDS は 20ppm 上昇していることがわかります.水の量はざっくり 50L なので,30時間でざっくり  20\mathrm{\, ppm} \times 50\mathrm{\, L} \times  1000\mathrm{\, g/L} = 1\mathrm{\, g} 程度不純物が増えている計算になりそうです.

コメント