概要
以下のものを使ってCO2濃度の計測とwebでの可視化をやってみる。
前提
上記以外の以下のものは揃っていることが前提です。
- RaspberryPiとMH-Z19Bを接続するジャンパワイヤー
- RaspberryPiのセットアップ
- python3が入っていて、ネットワークに繋がっている状態
- シリアル通信が有効になっている
raspi-config コマンドとかで有効にしておいてください。
- MH-Z19 のデータシートは公式HPの製品ページ から取得している。
きっかけ
飲食店にco2センサーが導入されているのを見て、
在宅勤務が主流になってから気になっていた部屋のCO2濃度を
調べてみたいモチベーションが再燃した。
以前は、センサーが高額で諦めてたんだけど、3500円くらいで
amazonで売っているのを見つけたのも大きい。
準備
ambientのアカウントは作っておこう。
raspberryPiとセンサーをつなげる
データシートの「6. Pins」の項(画像上)と、RaspberryPi2の
Pinアサイン(画像下)を見比べてジャンパワイヤをつなぐ。
-
RxとTxの接続
画像下からRaspberryPi2側のGPIOピンの8がTxで10がRxな事がわかるので、
MH-Z19BのRxをRaspberryPi2のTxに、
MH-Z19BのTxをRaspberryPi2のRxに、接続する。 -
GRANDの接続
画像下からRaspberryPi2側のGPIOピンの6,9,14,20,25,30,34,39が
0VでGRANDであることが分かるので、
MH-Z19BのGNDとRaspberryPi2側のいずれかのGRANDに接続する。
(今回は6にします) -
Vinの接続
Vinは入力電圧の事。
画像下からRaspberryPi2側のGPIOピンの2,4 が5Vの出力であることが分かるので、
MH-Z19BのVinとRaspberryPi2側のいずれかの5Vの出力pinに接続します。
(今回は4にします。)
接続した画像
センサーで値を取得する
pythonのモジュールのインストール
pypiのmh-z19のページ をみて、pipでインストールする。
例
pip install mh-z19
値を取得する
以下の感じで実行してみる。
今の値が1410ppmであることが分かる。
pi@raspberrypi:~/co2_check $ sudo python3 -m mh_z19
{"co2": 1410}
pi@raspberrypi:~/co2_check $
辞書型なのでキーを指定すると値が取得できる。
例
pi@raspberrypi:~/co2_check $ sudo python3
Python 3.7.3 (default, Jul 25 2020, 13:03:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mh_z19
>>> mh_z19.read()
{'co2': 1170}
>>> type(mh_z19.read())
<class 'dict'>
>>> mh_z19.read()["co2"]
1072
>>>
ambientにデータを送って描画してもらう
ambientのモジュールをインストールする
ambientの公式のドキュメント に沿ってインストールする
例
pip install git+https://github.com/TakehikoShimojima/ambient-python-lib.git
ambientのwebページからチャンネルを作る
チャンネル一覧 のページに以下のようなボタンが有るはず。
作ったら以下の値を確認する。
- チャンネルID
- ライトキー
ambientに値を送る
以下のようなコードを書いて見る。
import ambient
ambi = ambient.Ambient(チャンネルID, "ライトキー")
ambi.send({"d1": 値, "d2": 値})
---
例
import mh_z19
import ambient
amb = ambient.Ambient(12345, "write000200key")
amb.send({"d1": mh_z19.read()["co2"]})
これで該当のチャンネルのところにグラフが書かれているはず。
おわり
これでco2センサーを使って値を取得して、取得した値をambientに送って描画するってことができたはず。
このあとは継続的に値を取得して、ambientに送信していけば以下のような感じでグラフが描かれます。
5~6畳くらいの締め切った部屋だと2時間位で2500ppmを超えるみたいなので、
昔学校で言われた「1時間に15minの換気をしましょう」というのはよく言ったものだなーって思います。
ちなみに外気が400ppmくらいらしいっす。