Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CO2濃度を可視化した話

 CO2濃度を可視化した話

VRChatで開催されているエンジニア集会で登壇したLTの資料です

Avatar for 暁月蒼空

暁月蒼空

March 21, 2025
Tweet

More Decks by 暁月蒼空

Other Decks in Technology

Transcript

  1. About Me • 技術大好き少年 • 家に鯖を飼う民 • 新たな学び捜索中 暁月 蒼空

    (@SoraAkatuki) @_Sora_Akatuki @akatuki-sora @AkatukiSora @akatuki_sora
  2. CO2の基準 • 外気: 約420 ppm (基準) • 正しく換気された室内 500~700 ppm

    ( 理想 ) • 衛生管理基準 1,000 ppm ( 推奨 ) • 呼気中 40,000ppm
  3. CO2の基準 • 外気: 約420 ppm (基準) • 正しく換気された室内 500~700 ppm

    ( 理想 ) • 衛生管理基準 1,000 ppm ( 推奨 ) • 呼気中 40,000ppm
  4. CO2の基準 • 外気: 約420 ppm (基準) • 正しく換気された室内 500~700 ppm

    ( 理想 ) • 衛生管理基準 1,000 ppm ( 推奨 ) • 呼気中 40,000ppm
  5. CO2の基準 • 外気: 約420 ppm (基準) • 正しく換気された室内 500~700 ppm

    ( 理想 ) • 衛生管理基準 1,000 ppm ( 推奨 ) • 呼気中 40,000ppm
  6. CO2の基準 • 外気: 約420 ppm (基準) • 正しく換気された室内 500~700 ppm

    ( 理想 ) • 衛生管理基準 1,000 ppm ( 推奨 ) • 呼気中 40,000ppm
  7. CO2の影響 • 1,000~ ppm 意思決定能力の低下、認識機能への影響 • 2,000~ ppm 不快感、頭痛、めまい •

    ~5,000 ppm 許容限界、永続的な健康被害リスク大 • 50,000~ ppm 混乱、呼吸困難 • 100,000~ ppm 意識消失
  8. CO2の影響 • 1,000~ ppm 意思決定能力の低下、認識機能への影響 • 2,000~ ppm 不快感、頭痛、めまい •

    ~5,000 ppm 許容限界、永続的な健康被害リスク大 • 50,000~ ppm 混乱、呼吸困難 • 100,000~ ppm 意識消失
  9. 今回用意する材料 • MH-Z19C(CO2センサー) - - - - (1個) • RaspberryPi

    3B+ - - - - - - (1台) • 接続用ジャンパ線 - - - - - (4本) • ドメイン(CloudFlare管理) - - - - (1つ) • サーバー(ラズパイで代替可) - - - (1台) • 気合&根気 - - - - - - - (お好みで)
  10. 今回用意する材料 • MH-Z19C(CO2センサー) - - - - (1個) • RaspberryPi

    3B+ - - - - - - (1台) • 接続用ジャンパ線 - - - - - (4本) • ドメイン(CloudFlare管理) - - - - (1つ) • サーバー(ラズパイで代替可) - - - (1台) • 気合&根気 - - - - - - - (お好みで)
  11. 今回用意する材料 • MH-Z19C(CO2センサー) - - - - (1個) • RaspberryPi

    3B+ - - - - - - (1台) • 接続用ジャンパ線 - - - - - (4本) • ドメイン(CloudFlare管理) - - - - (1つ) • サーバー(ラズパイで代替可) - - - (1台) • 気合&根気 - - - - - - - (お好みで)
  12. 今回用意する材料 • MH-Z19C(CO2センサー) - - - - (1個) • RaspberryPi

    3B+ - - - - - - (1台) • 接続用ジャンパ線 - - - - - (4本) • ドメイン(CloudFlare管理) - - - - (1つ) • サーバー(ラズパイで代替可) - - - (1台) • 気合&根気 - - - - - - - (お好みで)
  13. 今回用意する材料 • MH-Z19C(CO2センサー) - - - - (1個) • RaspberryPi

    3B+ - - - - - - (1台) • 接続用ジャンパ線 - - - - - (4本) • ドメイン(CloudFlare管理) - - - - (1つ) • サーバー(ラズパイで代替可) - - - (1台) • 気合&根気 - - - - - - - (お好みで)
  14. 今回用意する材料 • MH-Z19C(CO2センサー) - - - - (1個) • RaspberryPi

    3B+ - - - - - - (1台) • 接続用ジャンパ線 - - - - - (4本) • ドメイン(CloudFlare管理) - - - - (1つ) • サーバー(ラズパイで代替可 ) - - - (1台) • 気合&根気 - - - - - - - (お好みで)
  15. 今回用意する材料 • MH-Z19C(CO2センサー) - - - - (1個) • RaspberryPi

    3B+ - - - - - - (1台) • 接続用ジャンパ線 - - - - - (4本) • ドメイン(CloudFlare管理) - - - - (1つ) • サーバー(ラズパイで代替可) - - - (1台) • 気合&根気 - - - - - - - (お好みで)
  16. Raspberry piの設定 # raspi-config Interface Options > Serial Portを選択 Would

    you like a login shell to be accessible over serial? > No Would you like the serial port hardware to be enabled? > Yes これでシリアルポートを使用できる
  17. なんかいい感じにプログラミング 1 // InfluxDBクライアントの初期化 token = "RXhhbXBsZVRva2VuUmlHS0pkZFh0UUdma3F4bg==" org = "ExampleOrg"

    url = "https://influxdb.example.com" bucket="example" write_client = influxdb_client.InfluxDBClient(url=url, token=token, org=org) write_api = write_client.write_api(write_options=SYNCHRONOUS)
  18. なんかいい感じにプログラミング 2 // CO2データを読み出しで投稿する関数 def PushData(): Data = mh_z19.read() record

    = ( Point("MyRoomData") .tag("functionality", "Sensor") .field("co2_level", Data["co2"]) ) write_api.write(bucket=bucket, org=org, record=record)
  19. なんかいい感じにプログラミング 3 // ループあたりの時間が一定になるように細工したループ ExpectExecTime = 5 #s while True:

    beginTime = time.time() PushData() endTime = time.time() execTime = endTime - beginTime diffTime = ExpectExecTime - execTime time.sleep(diffTime)
  20. — 参考文献 — • 室内環境中における二酸化炭素の吸入曝露によるヒトへの影響 - J-STAGE ◦ https://www.jstage.jst.go.jp/article/siej/21/2/21_113/_article/-char/ja/ •

    ラズパイでCO2濃度を測定してPlotly Dashで可視化 - Qiita ◦ https://qiita.com/take314/items/a5ab8ef6e8773699cb25 その他 行政機関の情報・公式ドキュメントなどなど ....... — 使用機材・ソフト & スペシャルサンクス — • CO2センサー — MH-Z19C (https://akizukidenshi.com/catalog/g/g116142/) • 測定値読み出し、データ投稿 — Raspberry pi 3B+ • 視覚化、公開 — Grafana • データ保存 — InfluxDB • Grafana & InfluxDBのホスト — ProxmoxVE on Kubernetes • CloudFlare (CloudFlare Tunnel) • 学校 & 計測を勧めてくれた友人 空気、なんだか重くない? by 暁月蒼空 ご清聴ありがとうございました