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

参考