Open1
[備忘録]raspi zero と センサでCO2濃度を簡易測定したい
Raspberrypi zeroとco2sensor(MH Z19B)を使って、その場のCO2濃度を測ってスマホで確認するシステムを作ってみる。
概要
昨今の情勢から、換気の重要性に関するニュースを見かけることが多くなった。そんな中、二酸化炭素濃度によって仕事の効率が落ちる、眠気が増すなどの記事を見かけた。
自分自身マスクをしたままデスクワークをしていると、夕方ごろから息苦しくなり、急激に眠くなることが増えてきていたため、「この症状って二酸化炭素濃度のせいでは?」と思いはじめた。
市場にあるCO2センサーを見ていると、そこそこ大きいデバイスが多く持ち歩くには微妙。自分で作れば小さく安価にできないかと考え、手元にあったRaspiberrypi zeroを用いて製作できるか試してみる。
前提
- 今回は高精度なものは求めず、大まかにCO2濃度が高いかどうか分かればいいとしておおよそ±100ppm程度の精度を期待値とする。
- 小型化+省電力を優先し、デバイス単体は測定のみとして、実際の測定値はスマートフォンから確認する
- 職場や家で使いたいので、Wifi経由ではなくBluetoothを用いて使用できるようにする。
上記の前提を満たすように、システム全体の構成を考えていく。
システム設計メモ
大まかなシステム構成図。
- raspi側のメイン・ble通信部はnodejsでできそう?
- sensorの読み出しはpythonでひとまず作成する。
- iphone側はボタンを押したらread_requestして、値が読めるところまでを目標にする。
ハードウェア
-使用部材リスト
- Raspberry pi zero wh
- iPhone13
- MH-Z19B
- ジャンパケーブル(MH-Z19B接続用)
- Pisugar2(Raspberry pi用バッテリーモジュール)
- 充放電可能で、APIでバッテリー状況を取得できるため採用
- ケース(3Dprinterで作成)
-実装リスト
- 3DPrinterで作成するケースのCADデータ
- 回路(センサはケーブルでつなぐだけ、Pisugar2はねじ止めするだけ)
raspi zero whにはosinstall済みの為、セットアップは省略
ソフトウェア
-実装リスト
raspi側
- BLEペアリング raspi <-> iphone
- node.jsでpython script呼び出し
- pythonでmh-z19BとUART通信(ライブラリがあれば利用する?)
iphone側
- buttonでリクエスト->返ってきた値を画面に表示
-オプション(優先度の低い実装リスト)
raspi側
- raspiの充電状況(消費電力が最終的に知りたい)
- co2以外のセンサー状況
iphone側
- co2アラート機能
- co2グラフ
- raspi充電状況グラフ
ざっくりこんな感じ…
休日あたりにまとめて実装してみる