いよいよクラウド部分の組み立てです。 まず全体図。
ネットワークの構成
以下、順を追って説明していきます。
[1,2] 音を感知するとCloudBitからサーバーへリクエストが起きる
IFTTTを使ってCloudBitからの出力があると任意のURLをリクエストできるしくみを使いました。 この2つの組み合わせです。
IFTTTをつかわなくてもCloudBit APIをつかえば直接サーバーを叩くこともできます(結局IFTTTも同じAPIを使っています)。 IFTTTおもしろそうで使ってみたかったんですね。以下参考。
ここからはいよいよコードを書くことになります。GitHubにコードおいておきました。
まず、コード全体です。以下を参考にしました。 google-api-php-client-2.1.0を使っています。バージョンがちがうといろいろ変わってくると思います。
今回はPHPでやりましたがNode.jsが一番スムーズだと思いました。
以下の4つを用意して適宜書き換えてください。
グーグルアナリティクスのプロファイルID [GA_PROFILE_ID]
GoogleAPIのアカウントキーのファイル [YOUR_KEY_FILE_LOCATION]
cloudBitのデバイスID [YOUR_CLOUDBIT_DEVICE_ID]
cloudBitのアクセストークン [YOUR_CLOUDBIT_ACCESS_TOKEN]
ここから主なポイントを解説。
[3,4] サーバーからグーグルアナリティクスへリクエストを送りデータ取得
initializeAnalytics() でグーグルアナリティクスへの認証作業です。グーグルのサンプルコードそのまんまです。ApplicationNameはなくても良いようです。 getResults() でリアルタイムのユーザー数を取得しています。 リアルタイムデータ取得のAPIは以下を参考。
[5] サーバーからCloudBitへデータ送信
litteBits Cloud APIを利用します。以下参照。
CloudBitへは出力の度合いを0から100までの数値で与えます。BARGRAPHが5つのLEDでできているので1ユーザーを1LEDに対応させてみました。 つまり5ユーザーのとき出力100ということです(5以上も100)。 訪問者の多いサイトでは出力が100に張り付いてしまうかもしれません。環境にあわせて調整してください。
これでみごとにイルミネーションとGoogle Analyticsがくっつきました。
今回のコードは試作用です。
音に反応するたびにリクエストが発生してしまう
認証がないのでURLがしれてしまうとだれでもアクセス可能
だったりします。利用時はご注意ください。
littleBitsでは自分の作ったものを投稿できるサイトがあるのですが。同じことやっているひと見つけました。 しくみは同じですが、イルミネーションにしてみんなに魅せるという点が違いますね。
今回はここまで。 次回はなぜこんなものを作ったのか?書いてみたいと思います。 サイトの訪問者数に応じて光るイルミネーション(cloudBit + Google Analytics) なぜ作ったの?編
コメント