pebbleとWolfram Data Dropでつくるアクティビティトラッカー

#概要
日頃の活動量を収集・蓄積・分析をするためのしくみを、PebbleとWolfram Data Dropでつくります。

#Pebbleとは?
いわゆるスマートウォッチの1つです。
安くてバッテリー持ちがいいのと、CloudPebbleという、ブラウザだけで開発できる環境があり、しかもJSでアプリ開発ができるのがチャームポイントです（私見）。

#Wolfram Data Dropとは?
いわゆるログ収集・蓄積サービスの一つです。
Treasuredataとか、AmazonのKinesisとか、MicrosoftのEvent hubsみたいなやつです（適当）。
今回は、WebAPIが簡単に利用できるので使ってみました。

無料プランはありますが、1時間に60回だけしか登録できません。
https://datadrop.wolframcloud.com/plans.html
あと、30回/分の制限が実はある様子です。


#用意するもの
・Pebble（有料。なくてもEmulatorで雰囲気はわかります）
  https://getpebble.com/
・CloudPebble アカウント(無料)
  https://cloudpebble.net/
・Wolfram アカウント(無料)
  http://wolfram.com/
  https://user.wolfram.com/portal/registration.html
・スマホとPebbleアプリ（Developer Connection設定が必要です。アプリでSETTING画面からできます）
・インターネットに接続したPC、Webブラウザ

#手順
1. Wolfram Data DropにDatabinをつくる。
2. CloudPebbleで、pebble用のコードを書く。
3. pebbleにインストールして実行する。
4. pebbleをつけて暮らしてみる。
5. Wolfram alphaでデータを見てみる（失敗する）

##1. Wolfram Data DropにDatabinをつくる。
https://datadrop.wolframcloud.com/  にアクセスして、ログインします。（右上のSign inをクリックしてログインします。下はログイン後の画面です。）
Create a new Databinをクリックします。
![Wolfram Data Drop- Universal Data Accumulator.png](https://qiita-image-store.s3.amazonaws.com/0/50579/744c1182-957d-79b3-5edd-520ea6207615.png)

できました。ここで発行されたDatabin IDは、後程つかいますのでコピーしておきます。
![Unnamed - Wolfram Data Drop.png](https://qiita-image-store.s3.amazonaws.com/0/50579/5d7faa1d-27e6-2ac4-0d6e-c9ac4e377ad1.png)


##2. CloudPebbleで、pebble用のコードを書く。
https://cloudpebble.net/ にアクセスします。Sign inを押してログインします。
![CloudPebble.png](https://qiita-image-store.s3.amazonaws.com/0/50579/e2436231-eb44-6824-4dcc-5f55bd40eae6.png)
ログインすると、開発中のプロジェクト(cloudpebble上で管理されるアプリの単位です)一覧画面が表示されます。上部のCREATEをクリックします。
適当なプロジェクト名を入力して、Project Typeは Pebble.js(beta)を選びます。CREATEをクリックします。
![CreateCloudPebble.png](https://qiita-image-store.s3.amazonaws.com/0/50579/d76d2868-1837-8d48-bccc-53cfa8473e86.png)
ちょっと待つと、新規のプロジェクト開発用画面が表示されます。
左部のapp.jsをクリックすると、デフォルトのサンプルコードが入っていることがわかります。このコードを編集（上書き）します。
![CloudPebble – ActivityTracker01.png](https://qiita-image-store.s3.amazonaws.com/0/50579/00f76f41-88b0-7ad8-5c7d-aed6b22cb3ea.png)
以下のコードを上書きします。
DATABINIDには、上記で取得したDatabin IDをコピペしてください。

```lang:app.js
var UI = require('ui');
var Accel = require('ui/accel');
var ajax = require('ajax');

//consts
var DATABINID = 'xxxxxxxx'; //Input your databinID
var INTERVALSEC = 60; //Limitation for free data drop is 60times/hour
var DATADROPURL = 'https://datadrop.wolframcloud.com/api/v1.0/Add?bin=';

var i = 1;

//Initialize
var main = new UI.Card({
  title: 'Initializing...',
});
main.show();

Accel.init();
main.title('accel data');
main.on('accelData', function(e) {
  main.subtitle( parseInt(Math.pow( (Math.pow(e.accel.x, 2) + Math.pow(e.accel.y,2) + Math.pow(e.accel.z, 2)),0.5 ) ));
  main.body('x=' + e.accel.x + '\n' 
              + 'y=' + e.accel.y + '\n' 
              + 'z=' + e.accel.z + '\n'
              + 'vibe=' + e.accel.vibe + '\n'
              + 'time=' +   e.accel.time + '\n'
             );
  
  if( 0 === i % (INTERVALSEC * 4) ){ 
    i=0;
    ajax(
      {
        url: DATADROPURL + DATABINID +    
          '&x='+e.accel.x+
          '&y='+e.accel.y+
          '&z='+e.accel.z+
          '&vibe='+e.accel.vibe+
          '&time='+e.accel.time,
          type:'json'
      },
      function(data){
        console.log('Succeeded: ' + data);
      },
      function(error) {
        console.log('Download failed: ' + error);
      }
    );}
  i++;
  });
```



##3. pebbleにインストールして実行する。
左側のCOMPILATIONをクリックして、RUN BUILDボタンを押します。ビルドされます。
![COMPILATION_CloudPebble – ActivityTracker001.png](https://qiita-image-store.s3.amazonaws.com/0/50579/68ac2b39-8640-a3ad-0302-31f4a0c16165.png)
上部のPHONEボタンを押して、INSTALL AND RUNボタンを押してください。pebbleにインストールされます。
![InstallAndRun_CloudPebble – ActivityTracker001.png](https://qiita-image-store.s3.amazonaws.com/0/50579/1ad4fc3d-a248-fce8-de2a-d05222cad881.png)

![install_CloudPebble – ActivityTracker001.png](https://qiita-image-store.s3.amazonaws.com/0/50579/48a31eda-718e-3114-bb58-86e40b194e2c.png)

![P_20150512_213656.jpg](https://qiita-image-store.s3.amazonaws.com/0/50579/81b49e05-026c-2268-b4ee-8699a6dea30c.jpeg)

Databinにデータが入っているかどうかを、確認してみます。
Data Dropの管理画面を開きます。
https://datadrop.wolframcloud.com/admin.html
![My Databins - Wolfram Data Drop.png](https://qiita-image-store.s3.amazonaws.com/0/50579/52d592cb-973e-1215-e933-82a0600a9ea4.png)

上記でDATABINIDにコピペしたDatabin IDの行をクリックします。データが入っていると、以下のように表示されます。無料アカウントの制約に合わせて、1分に1回だけ入れるようになっています。
![Unnamed2 - Wolfram Data Drop.png](https://qiita-image-store.s3.amazonaws.com/0/50579/ab54af40-5086-ff83-db83-852e290c6e61.png)


##4. pebbleをつけて暮らしてみる。
普通に暮らしたり、激しく運動してみたりしてみます。
(pebbleの電池が、いつもの数倍減ります)

##5．Wolfram alphaでデータを見てみる（失敗する）
1日ぐらいデータを貯めたところで、上記のData Dropの管理画面で、みたいDatabinのAnalyze in Wolfram Alpha をクリックします。
↓
分析画面に表示されませんでした！！
次回に続きます。（たぶん）


##To-Do
・Wolfram Alphaで分析できるようにする。
・pebble側の画面をかっこよくする（動きの強弱に連動して、画面の色を変えるとか）。
・GPSデータを追加する。
・1分間に一回サンプリングするのではなくて、もっとちゃんとやる。1分間の平均をとるとか。