おねえさんが、センサー + Raspberry Pi + fluentd + Treasure Data + αで自宅の揺れを検知&分析してみるよ①

タイトル通り、センサー + Raspberry Pi + fluentd + Treasure Data + 様々なプロダクトを組み合わせて、自宅が揺れる原因を分析してみるお話です♪ 長丁場になりそうなので、これから数回に分けて綴っていこうと思います。

f:id:asyoulike007:20140525163053j:plain

第1回の今回は、揺れ分析をはじめた理由、やりたいこと、システム構成についてお話します。

はじめた理由

実は・・自宅マンション周辺の大規模工事が終わった頃から、毎日ふとした時に自宅が揺れています! 震度1~2くらいかな?と思ってYahoo!地震情報を確認してみるのですが、地震は起きていません。 天井から吊してあるパネルも揺れるので、気のせいではないはずなのに。。

管理会社に問い合わせてみましたが、「よくわからないですねー」と素っ気ない返事しか返ってきません。 むむむっ、結構重要な問題だと思うんだけどー><。 揺れの原因によっては引っ越しも考えようかなぁ。

・・・というわけで、引っ越しするかどうかを判断するために、自分で揺れの原因を分析してみることにしました!

やりたいこと

揺れを感知できるセンサーを家に取り付けて常時データを記録して分析します。 まずはそのデータを集計してグラフ等で可視化してみます。 すると例えば、

  • 特定の時間帯ばかり揺れる
  • 休日に比べて平日の方が揺れる

等のように、何らかの法則性がわかるんじゃないかな、と期待をしています。

次にその法則性に関係しそうなデータも組み合わせて相関性を分析します。 そして例えば、

  • 電車の時刻表データ → 自宅脇を電車が通ると揺れる
  • 気象データ → 風が強い日に揺れる

のような結果を導き出せたらうれしいです。

システム構成

要件

システム的な要件は下記の通りです。

  • 揺れの周波数をカバーできる秒間5件程度の頻度でX, Y, Z軸への加速度を取得したい。
  • どんな集計が必要になるかわからないので、大量の生データをそのままクラウドに保存しておきたい。
  • データの推移はなるべくリアルタイムに、そしてグラフで見たい。
  • 相関性を調べるために、複数のデータ形式の異なるデータも1カ所に保存できるようにしたい。
  • できる限りかんたんに、おこずかいの範囲で実現したい。

基本構成

基本の構成は下記の通りです。 運用してみて必要なものがあったら、適宜追加したり入れ替えたりしてみる予定でいます。

f:id:asyoulike007:20140531152844p:plain

加速度センサー

地震のような揺れは、加速度センサーで取得します。今回購入したのはI2Cに対応している3軸センサー。いきなりはんだづけする勇気がなかったので、ブレッドボードとジャンパワイヤも買いました。

Raspberry Pi

Raspberry Piは、名刺サイズで安価なLinuxマシンです。今回はインターネットへ接続できるTypeBを買いました。

fluentd

fluentdは、Webのアクセスログやセンサーデータのように、どんどんと生成されるストリーミング型のデータを効率良く転送できるツールです。 fluentdをRaspberry Piにインストールして、センサーデータをTreasure DataAWS上にたてるelastic searchに流していきます。

Treasure Data

Treasure Dataは、大量のデータをためてHadoop等をベースにした集計や分析が行える、クラウド型のデータマネジメントプラットフォームです。 今回はここにセンサーの全データを保存して、集計処理を自動化していきます。 無料のトライアルで20億件(!)のデータをためることができるので、まずはアカウントを作成します。

elastic search & Kibana

elastic search & Kibanaは、オープンソースサーチエンジンと専用の可視化ツールです。今回はAWS上にこれらを構築して、直近1日分のデータをモニタリングしていきます。

まとめ

第1回の今回は、揺れ分析をはじめた理由、やりたいこと、システム構成についてお話しました。 次回は、Raspberry Piのセットアップ、fluentdセットアップ、Treasure Dataへのデータ流し込みあたりのお話をしようと思います。