Open1

[備忘録]raspi zero と センサでCO2濃度を簡易測定したい

RinRin

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充電状況グラフ

ざっくりこんな感じ…
休日あたりにまとめて実装してみる