部屋の温度とか、湿度とかを直感的に把握できる、温湿度マップを作りました!
これ、なかなかいい表示方法だと思いませんか?
- 室内7か所&屋外の温湿度の遷移を湿度(横軸) vs 温度(縦軸)で表示
- 横軸が湿度(20%-100%)、縦軸が温度(-2~40℃)のグラフ
- 室内7か所&屋外の温湿度を表示
- 現在、10分前、20分前、30分前、40分前、50分前、60分前、90分前、120分前、150分前、180分前のデータをプロットし折れ線グラフを表示
- ● は現在の湿度&温度の状態
- 背景は絶対湿度と熱中症指数の値により色分け
- 絶対湿度: 7-11が緑、5-7が黄色、5以下が赤(黒字)
- 熱中症指数: 25-28が緑、28-31が黄色、31以上が赤(ピンク字)
計測して見れるようにしていたんですが、どうしても数字が書いてあるだけでは直感的に理解できにくかったので、マップにしてみました。
これで見ると、どのくらいでよくない状態から抜け出せそうか(黄色や赤から緑の状態になるか、白に近づくか)一目瞭然にわかります。
作り方
- google spreadsheetへswitchbot温湿度計データをraspberry pi経由で取得します(詳細は以下ページ)
- openweathermapから屋外の温湿度データを取得してgoogle spreadsheetへ取得します(私はswitchbot温湿度計と同じシートに屋外データも書いています)
- ↑の室内、屋外の温湿度データから"現在、10分前、20分前、30分前、40分前、50分前、60分前、90分前、120分前、150分前、180分前"のデータだけを自動でコピーするシートを作成
- A列: 5分おきに↑のデータを取得しているので、以下のような関数で現在時刻や10分前の時刻をデータとして取り出す
- 現在:
=indirect("test1!A"&counta(test1!$A:$A))
- もとのデータが入っているシートの名前を"test1"にしています
- 10分前:
=indirect("test1!A"&counta(test1!$A:$A)-2)
- 現在:
- A列のデータをkeyにvlookupでそれぞれのデータを取得
- B3:
=vlookup($A3,test1!$A:$Z,2)
- たまに取得できていないときは空白になります
- B3:
- A列: 5分おきに↑のデータを取得しているので、以下のような関数で現在時刻や10分前の時刻をデータとして取り出す
- 背景となる湿度 vs 温度の画像をgoogle spreadsheetへimport
- はっておきます
- この画像のうえにグラフを背景を透明にしてひたすら乗せます
- 1個目: 1か所目(1F_1)の温度 vs 湿度グラフ
- 2個目: 2か所目(1F_2)の温度 vs 湿度グラフ
- ....
- 9個目: 1か所目(1F_1)の現在(1データ(2セル分のデータ))の温度 vs 湿度の散布図
- 10個目: 2か所目(1F_2)の現在(1データ(2セル分のデータ))の温度 vs 湿度の散布図
- ...