おねえさんが、センサー + 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へのデータ流し込みあたりのお話をしようと思います。

株式会社ミクシィを退職しました。そして・・・

数日前にどなたかがポストなさった退職 Advent Calendarに、私も16日目のエントリとして勝手に参加させて頂いています、鈴木理恵子です(笑)。 ここ1ヶ月ほどフィリピンのセブ島に滞在したりシリコンバレー巡りをしていたので感づいた方もいらっしゃると思いますが、昨日、2013/12/15をもって株式会社ミクシィを退職しました。 2010/12/16に入社をしたので、ぴったりちょうど3年間ミクシィに在籍していました。

ミクシィで担当したこと

この3年間は一貫してプラットフォーム開発に携わっていました。 mixiはアプリプロバイダー様や個人ディベロッパ様向けにアプリプラットフォームを提供しています。そしてmixi内にあるリソースを利用したソーシャルなアプリやゲームでユーザー様に楽しんで頂いています。 私はこのアプリプラットフォームを開発・管理を担当する部署に所属していました。 具体的には

  • mixiページアプリ用のAPIを作成
  • OAuth2.0関連の機能追加
  • 米Heroku社や米Mozilla社とのインテグレーションを担当
  • チームを率いてMBaaS(モバイルアプリのバックエンド)開発を主導

他にも、具体的には書けませんが先進的なプラットフォームの開発に携わる等、プラットフォーマー冥利に尽きる楽しく勉強になる仕事ばかりでした。

またプラットフォーム開発の経験を生かして記事を執筆したり、いくつかのイベントで登壇もさせて頂きました。

プラットフォーム開発の楽しさ

MBaaSの開発は規模が大きかったため、普段はフロント側の開発を担当しているエンジニアと一緒にプラットフォーム開発を行いました。 フロント側のエンジニアにもプラットフォーム開発を楽しんでもらえる良い機会・・・かと思いましたが、「プラットフォームの仕事は黒い画面とにらめっこするばかりで地味でつまらない」「UIなど、目に見えるものができないと、開発の実感がわかない」とあまり満足してもらえませんでした。 心残りなので、この機会に私が思うプラットフォーム開発の楽しさを記そうと思います。

プラットフォーム開発には「夢」があります。 Webサービスやアプリ開発者のみなさんは、自分が作ったプロダクトが突如世界中で大ヒットして一躍人気に!なんて想像をしてワクワクした経験があるかと思います。 これも楽しいですが、プラットフォーム開発はワクワクどころじゃなくゾクゾクしちゃいます! もし良いプラットフォームを提供すると、Webサービスやアプリ開発者のみなさんのイマジネーションを刺激して新しく画期的なサービスやアプリが誕生します。 しかも良いプラットフォームはサービス開発上の課題も解決していて誰でも簡単に開発できるので、良質なプロダクトがどんどん出現するのです! 自分たちが提供するプラットフォームによってITの一大トレンドを作り出せるかもしれないという意味でゾクゾクしてしまうのです! エンジニアとしてとてもやりがいがある仕事です。

私は決して自分が優れたエンジニアであったとは思っていませんが、ミクシィのすばらしいエンジニアのみなさまにいつも助けて頂き、SAP様から頂くお問い合わせ内容やご意見に刺激を受けることで、3年間もプラットフォームの「夢」を追い続けることができました。 本当にどうもありがとうございました!

これから

幸せなことに、これからも世界で活躍する日本のトップエンジニアたちに囲まれて刺激的な毎日を送れることになりました。

本日、トレジャーデータ株式会社に入社しました。 トレジャーデータはシリコンバレーで誕生したビッグデータ解析サービスを提供している会社です。 データの収集〜データの分析〜分析結果の可視化までを一貫して提供しており、ビッグデータ解析を簡単に安く導入できると注目されています。 私はソリューションアーキテクト/エバンジェリストとして難解なビッグデータ解析を簡単にわかりやすく解説し、トレジャーデータの魅力を伝えてみなさんの課題を解決していきたいと思っています。 ご説明にうかがうので、ぜひぜひみなさん呼んでくださいねっ♪ 今後ともよろしくお願い致します。