室温をデータベースに記録して可視化する(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秒間のデータをどう表示するかということに関わってきます。

設定が済んだら、右端の×で閉じて画面上部のフロッピーアイコンで保存します。

これで室温/外気温の変化を可視化するダッシュボードが作成できました!


今後は、部屋に誰かがいるかどうか・窓が空いているかどうかなど、室温に影響を与えそうな内容も追加して分析できると面白いかなと思います。