二酸化炭素濃度を Raspberry Pi と 20$ ほどのセンサー ”MH-Z19" で測ってスマフォでモニターする方法
MH-Z19 二酸化炭素濃度センサー
MH-Z19は郑州炜盛电子科技の安くて軽くて小さい二酸化炭素濃度センサーです
eBay
このセンサーは 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
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}
値を MONITOR™ に送信してグラフで表示
MONITOR™ は静止画とセンサーデータで遠隔監視を行う無料の Web サービスです

MONITOR™ のアカウントをメールアドレスで このように 取得して、ログインしてください
「イントロダクション」の「MONITOR™ の画面」でも説明したとおり、アカウントを作成した直後はグラフの表示枠が非表示になっています
エレメント・メニューを開き、バリュー・エレメントを一つ選んでアクティブに変更し、
その "value_id" を送信先の指定に利用しますので覚えておいてください
こちらの「MONITOR™ でバリュー・エレメントを アクティブ に変更」を参考になると思います
「イントロダクション」の「MONITOR™ の画面」でも説明したとおり、アカウントを作成した直後はグラフの表示枠が非表示になっています
エレメント・メニューを開き、バリュー・エレメントを一つ選んでアクティブに変更し、
その "value_id" を送信先の指定に利用しますので覚えておいてください
こちらの「MONITOR™ でバリュー・エレメントを アクティブ に変更」を参考になると思います
送信先の指定は mh_z19 をインストールしたディレクトリの setid.sh コマンドを使っておこないます
例えば、value_id が vpgpargj だった場合、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 スクリプトの戻り値が以下のようになっていた場合
おそらく設定した value_id が間違っているので、再確認してください{"ok":false,"reason":"ViewID not valid"}
Raspberry Pi の起動後に自動的に5分間隔で二酸化炭素濃度を送信するように設定
mh_z19 をインストールしたディレクトリで autostart.sh コマンドで以下のように指定します
./autostart.sh --on
また、以下のように止めることもできます
./autostart.sh --off
Also, you can check current status as follows:
./autostart.sh --status
※本稿はこちらのポストを自分で和訳しながらちょっと思う所を追加したりしたものなのですが、なぜか元ポストより文章の質が明らかに落ちてる気が...
コメント
コメントを投稿