ラズパイ×MH-Z19でCO2濃度測定
水耕栽培器IoT化(第6回)
またまた間が空いてしまった、水耕栽培器IoT化を進めていきたいと思います。
目標としては今年中に稼動させたい。
大分寒くなってきてるので、室内とは言え植物が正常に育つか不安ですが...。
今回は、CO2濃度センサを立ち上げたいと思います。
下記記事を参考にさせて頂きました。
CO2濃度センサ MH-Z19
CO2濃度センサにはMH-Z19を使います。
結構ネットで関連する記事も見つかり、よく使われている模様。
amazonとかでも売ってますが高いので、Aliexpressで購入しました。
結線
結線用にピンヘッダーを半田付け。
ラズパイと結線。
PWMかUARTかで結線が異なる。
今回はUARTを使うので、下記の様に結線。
ラズパイ | MH-Z19 |
---|---|
5V | Vin |
GND | GND |
GPIO14(UART_TXD) | Rx |
GPIO15(UART_RXD | Tx |
※RXDとTXDは互い違いで結線する
ラズパイ設定、pythonスクリプト
こちらの記事に沿って、
- UARTを有効化
- ラズパイ再起動
- python関連モジュールをpip install
- git cloneで制御プログラムを取得
を行う。
CO2濃度取得
制御プログラムを実行。
CO2濃度1899ppm。大分高い。
30分ほど換気後、再測定。
815ppm。外気が約400ppmらしいのでこの数値はおかしい。
キャリブレーション
ゼロ点補正のコマンドをセンサに送ってキャリブレーションを行う*1。
このコードもこちらの記事を参考に。
キャリブレーション後、再測定。
399ppm。ちゃんとキャリブレーション出来たみたい。
オートキャリブレーションの無効化
デフォルトではオートキャリブレーションが有効になっている。
これは、1日のmin値を400ppmに合わせる仕組みなので、
一日中部屋を閉め切っているような場合は、ゼロ点がずれてしまう。
コマンドを送って無効化する。
先ほどのキャリブレーション用スクリプトを手直し。
センサのマニュアルからオートキャリブレーション入切のコードを確認。
これに沿って、制御プログラムの
ser.write()内の文字列を
"\xff\x01\x79\x00\x00\x00\x00\x00\x06"
に変更。
戻り値がなく、よく分からないが、多分これでokなはず。
おわりに
大分時間が掛かりましたが、カメラ、温湿度センサ、CO2濃度センサの立ち上げが完了しました。 これで用意したセンサ類の準備は全て完了。
次回は、これらのセンサのデータを定期的にネットワークに上げ、 保存する仕組みを構築したいと思います。
前の記事:ラズパイで温湿度測定
次の記事:ラズパイで取得したデータをAmbientに上げる
水耕栽培器IoT化 目次
*1:zeroといっても0ppmではなく、外気の400ppmに合わせるようにオフセットが掛かる模様。