ラズパイで溶存酸素センサー(Atlas Scientific EZO溶存酸素回路)からpython3で溶存酸素量(DO:Dissolved Oxygen)を取得する。

phセンサーのDO(Dissolved Oxygen、溶存酸素)センサーバージョンです。

前提

ラズパイ:Raspberry pi 4B(I2C有効化済)
OS:Raspbian GNU/Linux 10 (buster)
使用言語:python3

事前準備

アップデート

# sudo apt-get update
# sudo apt-get upgrade
# sudo apt-get dist-upgrade

Atlas Scientific DO Kit

pH Kitと同様です。

I2Cへのモード変換及び結線までは上記記事と同様です。

DO測定

実際に測定していきます。

i2cdetect コマンドを使用し、接続確認します。

 #sudo i2cdetect -y 1 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- 63 -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --  

63が表示されれば接続OKです。

なお、複数センサーがあっても同様のpinへの接続で問題ありません。

サンプルコード取得

ラズパイ向けのサンプルコードが提供されているため、任意のディレクトに移動し以下のコマンドを実行し、サンプルコードを取得します。

  #git clone https://github.com/AtlasScientific/Raspberry-Pi-sample-code.git  

サンプルコード実行

pythonコマンドからサンプルコードを実行します。

$ python i2c.py

>> Atlas Scientific I2C sample code
>> Any commands entered are passed to the default target device via I2C except:
  - Help
      brings up this menu
  - List
      lists the available I2C circuits.
      the --> indicates the target device that will receive individual commands
  - xxx:[command]
      sends the command to the device at I2C address xxx
      and sets future communications to that address
      Ex: "102:status" will send the command status to address 102
  - all:[command]
      sends the command to all devices
  - Poll[,x.xx]
      command continuously polls all devices
      the optional argument [,x.xx] lets you set a polling time
      where x.xx is greater than the minimum 1.50 second timeout.
      by default it will poll every 1.50 seconds
>> Pressing ctrl-c will stop the polling
>> Enter command:

試しにRコマンドでpHを取得します。

>> Enter command: R
Success : 4.59

DOの取得値に対する判断は以下を参考にします。

溶存酸素濃度 DOは一般に、魚介類が生存する為には3mg/L以上が必要であり良好な状態を保つためには5mg/L以上であることが望ましいとされている。 好気性微生物が活発に活動するためには2mg/L以上が必要であり、それ以下になると嫌気性分解が起こって、硫化水素やメルカプタン等の悪臭物質が発生することがある。

魚類へい死事故対応手引き

試しに水槽のDOを計測しましたが、ブクブクのおかげもあり、なんとか大丈夫な数値です。

センサーキャリブレーション

calコマンドを使用してキャリブレーションしていきます。

プローブの経年により誤差が発生するので、定期的なキャリブレーションが推奨されています。

溶液があるので、溶液に付ける前にCal,clearして1点校正していきます。

>> Enter command: Cal,0
>> Enter command: Cal,?
Success : ?CAL,1

上記で1点校正が完了しています。

実際に水槽のDOを計測すると、酸素量が少ないときと多いときで魚の様子が全く違うことがわかります。

コメント

タイトルとURLをコピーしました