以下のツイートの通り。
ラズパイとCO2センサ mh-z19 で自室の二酸化炭素濃度の計測グラフができました。Viva 可視化!!!
— もりはや (@morihaya55) 2021年12月5日
(自室、狭いこともあって凄い勢いで濃度が上がります...)
Thank you, Dr. Takeyuki Ueda 👍https://t.co/uxTLAhdSZb pic.twitter.com/LTzYgvOfVm
使ったもの
- Raspberry Pi 3B
- mh-z19c
- ジャンパ線
なぜやったか
以下の条件がそろったのでやりました。
- もともとは中華製の安いCO2センサを使っていて、それが壊れた*1
- 調べてみると世の中にはラズパイとCO2センサ(そこそこ安い)を使った計測をしている人がたくさんいる(後述)
- ちょっと遊んで転がってたラズパイ3bがちょうどある
困ったことメモ
そもそも電子工作初心者
ラズパイは持ってましたが電子工作と呼ばれることをほぼしたことがない状態からスタート。Lチカッって何?状態。 今回もよくわからないままmh-z19を購入したが、ブレッドボードも必要だと思い込んで買った。そして使わなかった。
配線がわからない
mh-z19が秋月電子から届いたが、接続方法がよくわからなかった。ブレッドボードも買ったものの直結でやることにした。 救いの手になったのは以下の記事。
以下の図が大変わかりやすくて何とか接続ができました、心より感謝です。
Monitorに登録できない
ハードウェアが接続できた後は、ソフトウェアの問題に躓きました。CO2の値を取得するところまではスムーズに進みましたが、その後に"MONITOR"*2と呼ばれるSaaSへのメトリック送信に失敗し続けました。結論としてはReadmeの前半にある ./setup.sh
をやっていなかったことが原因で、ドキュメントをちゃんと読めという典型的なポカミスでした。。。
./setup.sh
の中で sudo pip install mh_z19 pondslider incremental_counter error_counter
を実行しており、それが行われていなかったためモジュールが存在しないというエラーが発生して焦りました。
以下はエラーの内容です。
morihaya@rpi01:~/github.com/UedaTakeyuki/mh-z19 $ sudo python2 -m pondslider {'co2': 1131} Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/pondslider/__init__.py", line 46, in read value_handler = importlib.import_module(handler) File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module __import__(name) File "send2monitor.py", line 9, in <module> from error_counter import Counter ImportError: No module named error_counter morihaya@rpi01:~/github.com/UedaTakeyuki/mh-z19 $ morihaya@rpi01:~/github.com/UedaTakeyuki/mh-z19 $ sudo python3 -m pondslider Traceback (most recent call last): File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/usr/local/lib/python3.7/dist-packages/pondslider/__main__.py", line 68, in <module> pondslider.read(args.config) AttributeError: module '__init__' has no attribute 'read' morihaya@rpi01:~/github.com/UedaTakeyuki/mh-z19 $
今後やりたいこと
- 参考リンクのなかでやっていたような、一定の濃度を閾値にアラートを飛ばす仕組みを作りたい
- 長期間のメトリクスが取りたい、ので自前のZabbixとかOCIのFreeインスタンスで運用するとか?
- 先日参加した TinyGo のイベントで頂いた Wio Terminal に表示してみたい
参考リンク
- https://github.com/UedaTakeyuki/mh-z19
- ラズパイ&mh-z19を使うならここに全てがあると言って良さそうな Dr. Takeyuki Ueda氏のリポジトリ
- 窓を開けて新鮮な空気をいれよう!Raspberry Pi でCO2 濃度を測ろう - Qiita
- これを読んだのが一番モチベーションが高まりました。pipモジュールも作成されているDr. Takeyuki Ueda氏の記事。感謝がとまりません
- Raspberry PiにCO2センサーを付け二酸化炭素濃度を測定してみる
- 写真が多くて助かりました。Googleスプシへの連携今度やってみようかどうか
- 二酸化炭素濃度をラズパイで測り、換気が必要な時にスマートスピーカーが声で教えてくれる仕組みを作ろう - RemoteRoom
- 閾値超えたら監視アラートを音声で飛ばすのはまさにスマートホームって感じでよさそう
- Raspberry Pi 3 で CO2濃度を測る (Raspbian OS) - Qiita
- 接続の図が大変わかりやすくて助けられました