Help us understand the problem. What is going on with this article?

CO2センサを部屋につけてログを取る

More than 1 year has passed since last update.

ざっくり言うと

・部屋のCO2濃度があがると集中力が落ちて眠気を感じるらしい。
・CO2-miniって製品つかうと簡単にRaspberry PiからCO2濃度が取得できる。
・USB接続で、はんだ付けもブレッドボードも要らないのでお手軽。

背景

・一人暮らし始めてからすぐ眠くなったり気が付いたら何もしないで時間がたってることが増えた。
・CO2濃度が高いと集中力が落ちて眠気を感じるらしいので測ってみたい

使ったもの

Raspberry Pi
CO2-mini(商品リンク)

CO2濃度を読み取る

 Raspberry PiにUSBで接続してこちらのPythonモジュールつかえば簡単に読めます。
 Github heinemml/CO2Meter
 
まずはpipでインストール

sudo pip3 install git+https://github.com/heinemml/CO2Meter

サンプルスクリプトを参考に読み込み
なぜかサンプルと同じ2秒の待ち時間ではうまくいかなかったので10秒待ってます。

show_CO2.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from CO2Meter import *
from time import sleep

# CO2meterが認識されているデバイスを設定
# 他にUSBデバイス挿してると末尾が1とか2とかになってるかもしれません。
sensor = CO2Meter("/dev/hidraw0")
# ちょっと待つ
sleep(10)
# CO2濃度を取得(単位はppm)
data = sensor.get_co2()
# 表示
print("CO2: {}ppm".format(data["co2"]))

実行結果

$ sudo python3 show_CO2.py
CO2: 936ppm

CO2濃度を定期的に測る

上の表示用プログラムをちょっと修正

CO2_logger.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from CO2Meter import *
from time import sleep
from datetime import datetime
import csv


# CO2meterが認識されているデバイスを設定
sensor = CO2Meter("/dev/hidraw0")
# ちょっと待つ
sleep(10)
# CO2濃度を取得(単位はppm)
data = sensor.get_co2()
# 現在日時と時刻を取得
time = datetime.now()
# ファイル名を作成
filename = time.strftime('%y%m%d.csv')
# ファイルに結果を追記
with open(filename, 'a') as f:
    writer = csv.writer(f, lineterminator='\n')
    row = [time.strftime('%H:%M:%S'),data["co2"]]
    writer.writerow(row)

1分周期で動くようにcrontab設定

* * * * * sudo python3 ~/CO2_logger.py

結果

 締め切っていると1時間くらいで1200ppmまで上がることが分かった。
窓開けっぱなしじゃないとどうにもならない。引っ越ししたい。
image.png

補足

Windows向けのCO2-mini用データロギングソフトがここ(リンク有)にあるので、とりあえず動かしたい方はこちらからどうぞ。

参考資料

チームラボオフィスの空気環境(CO2)を測定して改善している話
CO2モニタリングのためにセンサーをHackした話
Reverse-Engineering a low-cost USB CO₂ monitor
Github heinemml/CO2Meter

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした