ラズパイ Zero WH で二酸化炭素濃度を測定


ラズパイ を使ってお部屋の二酸化炭素(CO₂)の濃度を測ってみます。

なんでそんなことをするのかというと…..

●数多くの臨床研究が、1000ppmの室内CO₂濃度レベルに達すると人のパフォーマンスや意思決定を損なわせるということを示している
●平均して、CO₂濃度レベルが600ppmから1000ppmに増加すると、ひとのパフォーマンスや意思決定力は約20%低下し、1400ppmでの平均低下率は50%、2500ppmでは低下率は65%に達する

のだそうです。

そこでラズパイ Zero WH にセンサーをつないで測定してみます。

センサーはピンキリで、値段相応の性能だそうです。

で、あまり高価ではないものの、そこそこの性能を示すという評価のあるMH-Z19の中から

MH-Z19Cというセンサーを使ってみます。3000円半ばの値段です。

 

 

 

ラズパイ Zero WHと接続

メスーメスのジャンパー線を使って以下のように結線します。

MH-Z19Cは通電するとココの部分が点滅します。

 


Python3 でMH-Z19C を使う

ラズパイ Zero WHのOS設定などはこちらを参照

Interface Options ではI6 のシリアルポートを有効にしておきます。

設定が済んだら、再起動しておきます。

 

pip3を使うので未だの場合は以下を実行しておきます。

ライブラリをインストール

 

屋外に置くか、屋内の場合は2、30分換気して人がいない状態で

キャリブレーションを実行

 

コマンドで取得してみます。

こんな感じで取得されます。単位はppm

{“co2”: 405}

データを取得するPythonコードはこんな感じです。

【co2.py】

データ取得

 


cron に設定して定期的にデータ取得

メール転送エージェントを入れておいて

 

デフォルトのまま設定

 

一旦再起動します。

co2.pyはsudoで実行します。

あなたのユーザーでcrontabを設定してsudoを実行させると、多分端末が無いというエラーになります。

回避の方法はいろいろあるようですが、ここでは、sudo su で root になって、root の crontabでsudoを実行します。

sudoを使わない通常のcronの場合はあなたのユーザーでcrontabに設定します。

10分ごとにco2濃度をあなたのユーザーホームのファイルに書き出すというジョブを登録してみます。

【co2.py】

rootになってcrontabに記述

以下のジョブを書き込んでrootから復帰

*/10  * * * * cd /home/<あなたのユーザー名>;sudo python3 co2.py

Ctrl + D

cron 再起動

このままだと、データの採取は2回目以降になります。

 


cronの開始
sudo /etc/init.d/cron start

cronの停止
sudo /etc/init.d/cron stop

cronの再起動
sudo /etc/init.d/cron restart

ronのステータス確認
sudo /etc/init.d/cron status


Appendix

一酸化炭素の場合

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*