ラズパイ を使ってお部屋の二酸化炭素(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
Leave a Reply