基幹システムグループの山中です。簡単な電子工作を行い、二酸化炭素濃度を測り気分が悪くなる前に気付ける環境作りを行っていきたいと思います。
はじめに
マスク着用していることもあり業務中息苦しさを感じる様になり、換気不足なのか気になり二酸化炭素濃度を測定することにしました。
今回はMH-Z19Bというモジュールを使い、Raspberry Piにつなげて濃度測定をします。
MH-Z19B
比較的安く入手することができ、二酸化炭素濃度の他、気温も取得可能となります。MH-Z19シリーズとしていくつか種類があるのですが、MH-Z19Bは動作電力が3.6-5.5Vと範囲が広い為、Raspberry Pi以外のマイコンなどにも直接繋げることができ汎用性が高いです。また、二酸化炭素濃度の測定範囲は、0-5000ppm(1ppm=0.000001(0.0001%))となります。
実施手順
モジュール接続。(今回は簡易的にジャンパーワイヤーを使用)
引用 : Raspberry Pi公式HP GPIO
以下の様にMH-Z19BモジュールをRaspberry Piに接続します。
- 4:電源
- 6:アース
- 8:TxD(データ送信)
- 10:RxD(データ受信)
Raspberry Piシリアル通信を有効にする
ライブラリをインストールする
1 |
sudo pip3 install mh-z19 |
動作確認(コマンド実行時の二酸化炭素濃度がシリアル接続を介して取得できることを確認する)
1 2 |
pi@raspberrypi:~ $ sudo python -m mh_z19 {'co2': 668} |
ambientで値の見える化
ambientとは
公式サイト https://ambidata.io/ ambientとはIoTデータの可視化するクラウドサービスです。送信されたデータはチャネルという単位で管理され1ユーザ8チャネルまで生成が可能です。送信されたデータをグラフとして確認することができ、データの保存期間は1年間となります。
ambientに送信
1 2 3 4 5 6 7 8 9 10 |
import mh_z19 import ambient channel_id = 'xxxxx'; write_key = 'xxxxxxxxxxxx'; mhz19res = mh_z19.read_all(); if 'co2' in mhz19res : am = ambient.Ambient(channel_id, write_key) status = am.send({'d1' : mhz19res['co2'], 'd2' : mhz19res['temperature']}, 60) |
ambientの諸元/制限 https://ambidata.io/refs/spec/ に従い、1分間隔でcron設定を行います。
送信した値をグラフで確認してみる
以下は、1/11の在宅勤務時(冬の寒い日だったため窓は常には開けていない状況)のグラフです。
9時前から徐々に上がりだし12時頃に休憩、その後徐々に上がり始め1500ppmを超えたあたりから窓を開けたため急激に下がっています。
以下は、5/17の在宅勤務時のグラフです。常に窓を開け、空気循環を行っているため1000ppmを超えないあたりを推移しています。
データ監視について考えてみる
LINE Notify https://notify-bot.line.me/ja/ を使い、指定された閾値の濃度に達したらLINEに通知する仕組みを追加してみます。(今回は1500ppmより高濃度の場合に通知設定を行いました。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#LINE Notify if mhz19res['co2'] > 1500: ACCESS_TOKEN = "xxxxxxxxxxxx" headers = {"Authorization": f"Bearer {ACCESS_TOKEN}"} data = { "message": "現在 " str(mhz19res['co2']) + "ppm : 換気してください。" } requests.post( "https://notify-api.line.me/api/notify", headers=headers, data=data, ) |
上記の内容だと1500ppmを超えた場合、1分間隔でLINE通知され煩わしくも感じるため課題となりそうです。。
作ってみた印象
より精度を出すにはモジュールの変更や、配置場所などを考慮する必要もあるかと考えますが、思っている以上に値が跳ね上がっていくことが可視化でき、危機感を持つことができました。また、窓を開けるだけではなく、空気の循環を意識した換気を行う必要があると感じました。
「1人1時間当たり30㎥の新鮮な外気を取り入れる必要があるとされている(※1)」事から作業場での人数と外気の関係性も重要であることがわかります。
新鮮な空気を取り込み、気分をリフレッシュさせてくれるのも換気の効果ともいわれています。作業効率のためみなさんも今まで以上に換気を意識してみてはいかがでしょうか。
※1:引用元 建築物環境衛生管理基準の検討について