室内のCO2濃度が見たい・続続
最終更新時間:2020年07月12日 14時20分54秒
「室内のCO2濃度が見たい」、「室内のCO2濃度が見たい・続」の続き。
室内のCO2濃度をLametric Timeで表示できるようになったが、自己満足ついでに値の推移をグラフで見たくなった。
昨日掲載したスクリプト(room.py)は、cronで5分おきに実行しているのだが、ログとして、室温、湿度、CO2濃度をroom.logへ出力している。
*/5 * * * * cd /home/pi/lametric/;./room.py >> /home/pi/lametric/room.log 2> /dev/null
room.logの内容は以下のような感じ。
date,temperature,humidity,co2 2020-07-11 13:50,27,68,513 2020-07-11 13:55,27,68,519 2020-07-11 14:00,27,68,507 2020-07-11 14:05,27,68,508 2020-07-11 14:10,27,68,505
これをグラフ化してみた。
#!/usr/bin/env python3 import pandas as pd import matplotlib.pyplot as plt import re import pprint df = pd.read_csv('room.log', index_col='date') period = int(-1 * (60 / 5) * 24 * 1) ltst = df[period:].interpolate() data1 = ltst.loc[:, 'temperature'] data2 = ltst.loc[:, 'humidity'] data3 = ltst.loc[:, 'co2'] xt = [] xl = [] idx = ltst.index.values.tolist() for i in idx: if '00:00' in i: xt.append(i) xl.append(re.search(r'(\d\d-\d\d) ', i).group()) elif '12:00' in i: xt.append(i) xl.append('') else: xt.append('') xl.append('') plt.style.use('seaborn-darkgrid') fig, [ax1, ax2, ax3] = plt.subplots(3, 1, sharex='col') fig.set_figwidth(12.8) fig.set_figheight(9.6) ax1.plot(data1, color='indianred') ax1.set_ylabel('temperature') ax2.plot(data2, color='royalblue') ax2.set_ylabel('humidity') ax3.plot(data3, color='seagreen') ax3.set_ylabel('co2') ax3.set(xticks=xt, xticklabels=xl) plt.tight_layout() plt.savefig('graph.png')
以下ができたグラフ(graph.png)。一日分のグラフで、9行目で変数periodの値を決めている、右辺の最後の数字が日数を表している。
12時過ぎのCO2濃度の急上昇は、昼飯でコンロに火を付けたためと思われる。換気したら値が一気に下がり、一緒に温度、湿度も急降下していることが見て取れる。
だからなに、って話ですが。
参考