日記/2020-7-12

最終更新時間:2020年07月12日 14時21分33秒

室内のCO2濃度が見たい・続続

 

 「室内の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濃度の急上昇は、昼飯でコンロに火を付けたためと思われる。換気したら値が一気に下がり、一緒に温度、湿度も急降下していることが見て取れる。
 だからなに、って話ですが。
 

参考