室温をデータベースに記録して可視化する(Grafana導入編)
前回の続きです。今回はRaspberry Pi 3にGrafanaをインストールし、グラフ化します。
GrafanaをRapsberry Pi 3にインストール
リポジトリを追加してGrafanaをインストールする
ARM版のパッケージは公式には配布されていないようですが、非公式で公開されている方がいるのでそれを利用します。
curl -sL https://bintray.com/user/downloadSubjectPublicKey?username=bintray | sudo apt-key add - echo "deb https://dl.bintray.com/fg2it/deb jessie main" | sudo tee -a /etc/apt/sources.list.d/grafana.list sudo apt-get update sudo apt-get install grafana
Grafanaを起動する
sudo service grafana-server start sudo update-rc.d grafana-server defaults
データソースの設定
ブラウザで http://[Raspberry PiのIPアドレス]:3000/ にアクセスします。
User/Passwordはadmin/adminです。
「Add data source」をクリック。
こんな感じで設定します。一番上のNameは任意の名前です。設定が正しく済んでデータベースへの接続に成功すると、画像のように緑の背景でメッセージが表示されます。
ダッシュボードの作成
データソースの設定ができたら、ダッシュボードを作成します。左上のアイコン→Dashbords→Newをクリックすると下記の画面に移動します。
とりあえず、グラフ化してみます。「Graph」をクリック。
空のグラフが表示されます。グラフの上部分、「Panel Title」と表示されているところをクリックすると画像のようなメニューが表示されるので「Edit」をクリック。
画面下部の「Metrics」タブで画像のように設定します。設定が正しく行われて値が取得できると、上部にグラフが表示されます。
- FROM
- temperatureテーブルのデータをすべて取得します。タグで絞り込みを行いたい場合はWHEREの横の+をクリックして条件を設定することができます。
- SELECT
- field(value)で値を取得、mean()で平均値にします。
- GROUP BY
- 10分間の値をlocationタグでグループ化します。fill(null)は値が記録されていない時間帯のデータをないものとして扱うということで、full(0)にすると0として扱い、fill(previous)だと前の値を使うという意味です。例えばtime(1s)なのに実際のデータが10秒ごとにしかない場合、残りの9秒間のデータをどう表示するかということに関わってきます。
設定が済んだら、右端の×で閉じて画面上部のフロッピーアイコンで保存します。
これで室温/外気温の変化を可視化するダッシュボードが作成できました!
今後は、部屋に誰かがいるかどうか・窓が空いているかどうかなど、室温に影響を与えそうな内容も追加して分析できると面白いかなと思います。