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

CO2濃度を可視化した話

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 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 暁月蒼空 ご清聴ありがとうございました