おねえさんが、センサー + Raspberry Pi + fluentd + Treasure Data + αで自宅の揺れを検知&分析してみるよ①
タイトル通り、センサー + Raspberry Pi + fluentd + Treasure Data + 様々なプロダクトを組み合わせて、自宅が揺れる原因を分析してみるお話です♪ 長丁場になりそうなので、これから数回に分けて綴っていこうと思います。
第1回の今回は、揺れ分析をはじめた理由、やりたいこと、システム構成についてお話します。
はじめた理由
実は・・自宅マンション周辺の大規模工事が終わった頃から、毎日ふとした時に自宅が揺れています! 震度1~2くらいかな?と思ってYahoo!の地震情報を確認してみるのですが、地震は起きていません。 天井から吊してあるパネルも揺れるので、気のせいではないはずなのに。。
管理会社に問い合わせてみましたが、「よくわからないですねー」と素っ気ない返事しか返ってきません。 むむむっ、結構重要な問題だと思うんだけどー><。 揺れの原因によっては引っ越しも考えようかなぁ。
・・・というわけで、引っ越しするかどうかを判断するために、自分で揺れの原因を分析してみることにしました!
やりたいこと
揺れを感知できるセンサーを家に取り付けて常時データを記録して分析します。 まずはそのデータを集計してグラフ等で可視化してみます。 すると例えば、
- 特定の時間帯ばかり揺れる
- 休日に比べて平日の方が揺れる
等のように、何らかの法則性がわかるんじゃないかな、と期待をしています。
次にその法則性に関係しそうなデータも組み合わせて相関性を分析します。 そして例えば、
- 電車の時刻表データ → 自宅脇を電車が通ると揺れる
- 気象データ → 風が強い日に揺れる
のような結果を導き出せたらうれしいです。
システム構成
要件
システム的な要件は下記の通りです。
- 揺れの周波数をカバーできる秒間5件程度の頻度でX, Y, Z軸への加速度を取得したい。
- どんな集計が必要になるかわからないので、大量の生データをそのままクラウドに保存しておきたい。
- データの推移はなるべくリアルタイムに、そしてグラフで見たい。
- 相関性を調べるために、複数のデータ形式の異なるデータも1カ所に保存できるようにしたい。
- できる限りかんたんに、おこずかいの範囲で実現したい。
基本構成
基本の構成は下記の通りです。 運用してみて必要なものがあったら、適宜追加したり入れ替えたりしてみる予定でいます。
加速度センサー
地震のような揺れは、加速度センサーで取得します。今回購入したのはI2Cに対応している3軸センサー。いきなりはんだづけする勇気がなかったので、ブレッドボードとジャンパワイヤも買いました。
Raspberry Pi
Raspberry Piは、名刺サイズで安価なLinuxマシンです。今回はインターネットへ接続できるTypeBを買いました。
fluentd
fluentdは、Webのアクセスログやセンサーデータのように、どんどんと生成されるストリーミング型のデータを効率良く転送できるツールです。 fluentdをRaspberry Piにインストールして、センサーデータをTreasure DataとAWS上にたてるelastic searchに流していきます。
Treasure Data
Treasure Dataは、大量のデータをためてHadoop等をベースにした集計や分析が行える、クラウド型のデータマネジメントプラットフォームです。 今回はここにセンサーの全データを保存して、集計処理を自動化していきます。 無料のトライアルで20億件(!)のデータをためることができるので、まずはアカウントを作成します。
elastic search & Kibana
elastic search & Kibanaは、オープンソースのサーチエンジンと専用の可視化ツールです。今回はAWS上にこれらを構築して、直近1日分のデータをモニタリングしていきます。
まとめ
第1回の今回は、揺れ分析をはじめた理由、やりたいこと、システム構成についてお話しました。 次回は、Raspberry Piのセットアップ、fluentdセットアップ、Treasure Dataへのデータ流し込みあたりのお話をしようと思います。