二酸化炭素濃度を Raspberry Pi と 20$ ほどのセンサー ”MH-Z19" で測ってスマフォでモニターする方法

MH-Z19 二酸化炭素濃度センサー


MH-Z19郑州炜盛电子科技の安くて軽くて小さい二酸化炭素濃度センサーです
eBay や aliexpress で 20$ 程度で購入できます


このセンサーは Raspberry Pi とインターフェースが合っているので電子工作なし、線でつなぐだけで二酸化炭素濃度モニタリングシステムを簡単につくることができます



ところで、外気の二酸化炭素濃度は大体 400ppm ぐらいなのですが、これは植物の光合成活動の影響を敏感に受けるので夏は低く、冬は高くなります
気象庁が国内の3ヶ所で計測してるデータを こちら に公表してるのですが、トレンドは怖くなるぐらい単調に増加してます


家の中のレベルだと、植物の活動というよりも人間の呼気の影響を強く受けまして、締め切った部屋に二人ぐらいいると一気に 1,200ppm ぐらいにまで上昇して、1人が外出してもうひとりが残ると2時間ぐらいかけてジワジワと 700ppm ぐらいにまで下がったりします


小規模な植物工場とかだと作業者が栽培室に入るとすぐに 二酸化炭素濃度が上昇するので「あ、誰か入ってるな」と、人センサーの代わりにもなってました

二酸化炭素濃度が 1200ppm を越えると人によっては眠気や頭痛がすることがあるそうです
でも心配は不要で、窓を開けるとすぐに外気と同じ 400ppm ぐらいに下ります






まさに「窓を開けて新鮮な空気をいれよう!Raspberry Pi でCO2 濃度を測ろう」ですね

あちらでも、一番言いたかったことはタイトルの通りで、本文はそのための方法論のつもりだったんですがエンジニアリングによりすぎていました

本稿ではもっと簡単に、センサーをつないでグラフをスマフォに表示するまでの方法をご説明いたします

以下、Raspberry Pi を "RPi" と略記します

接続

- RPi の 5V ピンと MH-Z19 の Vin ピンをつなぐ
- RPi の GND(0v) ピン と MH-Z19 の GND ピンをつなぐ
- RPi と MH-Z19 の TxD と RxD をクロスさせてつなぐ 

下図は接続の一例です。RPi にはこの他にも 5Vピンや 0Vピンがあるので、そちらにつないでいただいても大丈夫です


ソフトウェアのインストール

センサーを制御するソフトウェアはこちらに公開しています.

最新版を release からダウンロードして展開するか、以下のように git で clone して

git clone https://github.com/UedaTakeyuki/mh-z19.git


展開や clone したディレクトリに入って setup.sh を実行します

./setup.sh 
これで、すべての必要なソフトウェアのインストールと設定が行われます

二酸化炭素濃度の読み取り

以下のように MH-Z19 の値を読み取ります

pi@raspberrypi:~ $ sudo python -m mh_z19 
{'co2': 668}
ちなみに、pi アカウントに Serial Port を操作する権限が付与してあれば "sudo" は不要です

値を MONITOR™ に送信してグラフで表示

MONITOR™ は静止画とセンサーデータで遠隔監視を行う無料の Web サービスです



MONITOR™ のアカウントをメールアドレスで このように 取得して、ログインしてください

イントロダクション」の「MONITOR™ の画面」でも説明したとおり、アカウントを作成した直後はグラフの表示枠が非表示になっています

エレメント・メニューを開き、バリュー・エレメントを一つ選んでアクティブに変更し、
その "value_id" を送信先の指定に利用しますので覚えておいてください

こちらの「MONITOR™ でバリュー・エレメントを アクティブ に変更」を参考になると思います

送信先の指定は mh_z19 をインストールしたディレクトリの setid.sh コマンドを使っておこないます

例えば、value_id が vpgpargj だった場合、setid.sh コマンドで以下のように設定します

./setid.sh vpgpargj
設定後は先程の setup.sh スクリプトでインストールされている python のスクリプト pondslider を使って以下のように二酸化炭素濃度が読み取られます

pi@raspberrypi:~/mh-z19 $ sudo python -m pondslider
{'co2': 742}

同時にMONITOR™ の画面は送信された二酸化炭素濃度でグラフの描画がはじまります

pondslider スクリプトの戻り値が以下のようになっていた場合


{"ok":false,"reason":"ViewID not valid"}
おそらく設定した value_id が間違っているので、再確認してください

Raspberry Pi の起動後に自動的に5分間隔で二酸化炭素濃度を送信するように設定

mh_z19 をインストールしたディレクトリで autostart.sh コマンドで以下のように指定します

./autostart.sh --on

また、以下のように止めることもできます

./autostart.sh --off

Also, you can check current status as follows:

./autostart.sh --status

※本稿はこちらのポストを自分で和訳しながらちょっと思う所を追加したりしたものなのですが、なぜか元ポストより文章の質が明らかに落ちてる気が...

コメント

このブログの人気の投稿

手持ちの中古のウエブカムと Raspberry Pi で、30分で遠隔監視を手作りする方法

MONITOR™のご紹介