見出し画像

環境センサ 2JCIE-BU01 で遊んでみた

ふらっとTwitterに流れてきたIIJさんの記事が目に入り、面白そうだったので、実際に自分もIoTを使って自宅環境をデータ化/可視化してみました。

▶︎ 今回使った材料達

<材料 1家庭分>
・ラズパイ(IoT機器:ご家庭にある物で結構です)・・・59 g
2JCIE-BU01(センサ)・・・18 g

- 調味料 -
・Grafana(可視化ツール)・・・小さじ1
・InfluxDB(データベース)・・・大さじ1

▶︎ やりたい事
・定期的なデータ取得し、可視化(気温、湿度、CO2排出量)
・閾値越え後に通知(LINE、スマートスピーカー等)

いざ、自宅環境を可視化してみる

IIJさんの記事では簡単にデータ取得していたので、自分もできるだろうと錯覚し、やってみるも大苦戦。
2JCIE-BU01の使い方も理解していない事もあり、自分の思い通りにデータ取得ができなかった。Git Hubに公開されているPythonコードを使用する事で、簡単に値取りができる事がわかり、解決。

<就寝前>
就寝前にデータ取得を実施。
ラズパイにUSB型のセンサを直刺しの為か、温度が少し高めな気がする。
・気温:28.1℃
・湿度:54.9 %
・CO2濃度:1853ppm
・不快指数:76.56

$ python3 omron_sensor/2jciebu-usb-raspberrypi/sample_2jciebu.py 

Time measured:2020/05/04 01:28:01
Temperature:28.16
Relative humidity:54.94
Ambient light:180
Barometric pressure:1007.321
Sound noise:38.22
eTVOC:521
eCO2:1853
Discomfort index:76.56
Heat stroke:24.62
Vibration information:0
SI value:0.0
PGA:0.0
Seismic intensity:0.0
Temperature flag:0
Relative humidity flag:0
Ambient light flag:0
Barometric pressure flag:0
Sound noise flag:0
eTVOC flag:0
eCO2 flag:0
Discomfort index flag:0
Heat stroke flag:0
SI value flag:0
PGA flag:0
Seismic intensity flag:0


<起床後>

起床後にすぐにデータ取得を実施。
・気温:27.2℃
・湿度:56.3 %
・CO2濃度:564ppm
・不快指数:75.45
※就寝前に換気した為か、CO2濃度が低下している。

$ python3 omron_sensor/2jciebu-usb-raspberrypi/sample_2jciebu.py 

Time measured:2020/05/04 08:57:10
Temperature:27.21
Relative humidity:56.31
Ambient light:182
Barometric pressure:1007.361
Sound noise:37.07
eTVOC:24
eCO2:564
Discomfort index:75.45
Heat stroke:24.01
Vibration information:0
SI value:0.0
PGA:0.0
Seismic intensity:0.0
Temperature flag:0
Relative humidity flag:0
Ambient light flag:0
Barometric pressure flag:0
Sound noise flag:0
eTVOC flag:0
eCO2 flag:0
Discomfort index flag:0
Heat stroke flag:0
SI value flag:0
PGA flag:0
Seismic intensity flag:0

< 換気後 >
換気後、再度データ取得し、CO2濃度が低下した事を確認。
・気温:27.9℃
・湿度:52.9 %
・CO2濃度:409ppm
・不快指数:76.02

$ python3 omron_sensor/2jciebu-usb-raspberrypi/sample_2jciebu.py 

Time measured:2020/05/04 09:21:48
Temperature:27.96
Relative humidity:52.93
Ambient light:182
Barometric pressure:1007.4
Sound noise:43.65
eTVOC:1
eCO2:409
Discomfort index:76.02
Heat stroke:24.16
Vibration information:0
SI value:0.0
PGA:0.0
Seismic intensity:0.0
Temperature flag:0
Relative humidity flag:0
Ambient light flag:0
Barometric pressure flag:0
Sound noise flag:0
eTVOC flag:0
eCO2 flag:0
Discomfort index flag:0
Heat stroke flag:0
SI value flag:0
PGA flag:0
Seismic intensity flag:0


部屋の環境データを取得できたは良いが、CO2濃度(eCO2)や不快指数(Discomfort index)等の危険レベルがどのくらいなのか、全く理解していなかったので、Googleで調べてみた。

CO2濃度(eCO2)について
AIR LABOさんのサイトに記載されていたCO2排出量に対するレベルを参考。
就寝前の値が、注意レベルである事が判明。

350~450PPM: 外気レベルです。
450~700PPM: 許容範囲です。
700~1,000PPM: 注意レベルです。
1,000~2,500PPM: 眠気が誘われるレベルです。
2,500~5,000PPM: 健康に害を及ぼす可能性のあるレベルです。
5,000PPM以上: 危険レベルです。


不快指数(Discomfort index)について
日本気象協会のサイトに記載されていた内容を参考。
計測した時は、指数75〜76くらいを彷徨っていたが、あまり良い結果ではなさそうだ。

不快指数は、「日中の蒸し暑さ」を表し、数字が大きいほど蒸し暑く不快であると言えます。「70未満・70~74・75~79・80~84・85以上」の5レベルで、80以上はほとんどの人が不快に感じる暑さです。

指数70〜74で不快感を抱く人が出始め、75〜79で半数以上が、80〜85で全員が不快と感じ、86を超えると我慢ができなくなる。


コードの内容を修正し、データを再取得
定期的にデータ取得をしたい為、Pythonコードに書かれていた内容を一部修正し、再実行。
InfluxDBクライアントモジュールを使い、変数を当て込んで、以下のようにコードを追記してあげられれば、取得した値をJSON形式でinfluxDBに投げられた。

from influxdb import InfluxDBClient
client = InfluxDBClient(host='localhost', port=8086, database='MyHomePy')


json_body = [
     {
         "measurement": "python_omron",
         "fields": {
             "Temperature": temperature, "RelativeHumidity": relative_humidity, "AmbientLight": ambient_light, "SoundNoise": sound_noise, "eCO2": eCO2, "DiscomfortIndex": discomfort_index, "HeatStroke": heat_stroke,  "VibrationInformation": vibration_information
         }
     }
]
client.write_points(json_body)


取得できた自宅の環境データ
取得させる値を指定し、計測開始。
・取得期間:2020/5/5 16:12 - 5/6 15:12
・取得間隔:1h

以下は、influxDBに登録できた値。

> select * from python_omron tz('Asia/Tokyo')
name: python_omron_10sec
time                                AmbientLight DiscomfortIndex HeatStroke RelativeHumidity SoundNoise Temperature VibrationInformation eCO2
----                                ------------ --------------- ---------- ---------------- ---------- ----------- -------------------- ----
2020-05-05T16:12:49.09607666+09:00  125          77.65           25.23      49.38            76.13      29.58       0                    447
2020-05-05T17:12:49.260615837+09:00 310          78.33           25.46      45.72            57.8       30.55       0                    634
2020-05-05T18:12:49.511573228+09:00 312          77.46           24.97      45.17            70.88      29.93       0                    602
2020-05-05T19:12:49.687076986+09:00 312          77.88           25.32      47.37            62.23      29.99       0                    618
2020-05-05T20:12:49.922277981+09:00 312          78.08           25.43      47.55            72.14      30.13       0                    1400
2020-05-05T21:12:50.154181227+09:00 314          79.09           26.09      48.71            82.14      30.77       0                    1163
2020-05-05T22:12:50.384464095+09:00 314          79.53           26.57      51.08            62.83      30.81       0                    694
2020-05-05T23:12:50.614931892+09:00 312          79.78           26.49      48.97            73.07      31.27       0                    1316
2020-05-06T00:12:50.842849778+09:00 189          78.92           26.02      49.83            38.37      30.5        0                    706
2020-05-06T01:12:51.06912344+09:00  189          78.42           25.79      50.61            36.75      30.02       0                    617
2020-05-06T02:12:51.295330355+09:00 189          78.21           25.6       50.99            36.13      29.82       0                    485
2020-05-06T03:12:51.507209724+09:00 191          77.89           25.41      50.61            35.16      29.62       0                    567
2020-05-06T04:12:51.783764757+09:00 189          77.85           25.37      50.78            33.69      29.57       0                    626
2020-05-06T05:12:51.986690217+09:00 189          77.61           25.28      51.27            34.19      29.33       0                    478
2020-05-06T06:12:52.223213359+09:00 191          77.71           25.28      50.6             36.09      29.48       0                    416
2020-05-06T07:12:52.436965128+09:00 189          77.44           25.07      50.87            38.0       29.25       0                    443
2020-05-06T08:12:52.673843203+09:00 191          77.46           25.08      50.77            37.32      29.27       0                    421
2020-05-06T09:12:52.912293204+09:00 319          77.03           24.79      50.66            57.8       28.96       0                    421
2020-05-06T10:12:53.147475313+09:00 191          76.99           24.77      49.17            37.52      29.09       0                    531
2020-05-06T11:12:53.384317011+09:00 317          76.04           24.08      50.81            72.46      28.19       0                    548
2020-05-06T12:12:53.544279559+09:00 317          77.98           25.53      51.5             73.04      29.59       0                    942
2020-05-06T13:12:53.681186996+09:00 317          78.47           25.91      51.24            69.84      29.99       0                    844
2020-05-06T14:12:53.915406015+09:00 317          78.11           25.5       49.91            59.94      29.87       0                    589
2020-05-06T15:12:54.115941279+09:00 317          77.87           25.57      54.42            70.25      29.18       0                    1885
> 


Grafanaでみるとこんな感じ。

スクリーンショット 2020-05-06 15.26.18

スクリーンショット 2020-05-06 18.31.10

取得間隔が1hとなかなか粗いデータだが、計測してみると面白い。

5/5 20:00くらいに窓を締め切った状態でZoomを開始した事もあり、CO2濃度は注意レベルまで上昇。換気後はすぐに許容範囲内に収まってくれる。
就寝中にはCO2濃度が高まると思っていたが、思った以上に上昇はしていなかった。

5/6 10:00-11:00間でセンサを設置した部屋に居なかった事もあり、気温や不快指数が低下。気温は1℃くらい下がった。

LINE、スマートスピーカーで通知

値取りができたので、閾値を決めて、何かしら通知をするような仕組み(LINEにメッセージを送信したり、Google Homeに” お主、CO2排出しまくってるぜよ ” と喋らせる等)を追加させたかったが、うまく進まなかった事もあり、今回は割愛。

ここら辺の内容を参考すればできそう。


まとめ

今回のデータ取得で、定期的な換気が大切な事がよく分かった。
外出自粛に伴い自宅で筋トレする人たちは多いと思うが、窓を締め切った状態のままだと、すぐにCO2濃度は危険レベルまで上昇してしまうと思われる。

また、年間を通して取得したデータの傾向を分析したり、何かと連動させてみたり、ちょっとした実験的な事(例えば、自宅で植物を育てたらどのくらい効果があった等)を遊びながらできたら面白そうなので、また時間ができたらやってみたいと思いました。

そして何よりも、以下のネコリコホームプラスを電源差し込めば、やりたい事を簡単にすぐに実現できちゃう事がよく分かりました(笑)


以上です。


この記事が気に入ったらサポートをしてみませんか?