LoginSignup
8
8

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-05-12

概要

日頃の活動量を収集・蓄積・分析をするためのしくみを、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

できました。ここで発行されたDatabin IDは、後程つかいますのでコピーしておきます。
Unnamed - Wolfram Data Drop.png

2. CloudPebbleで、pebble用のコードを書く。

https://cloudpebble.net/ にアクセスします。Sign inを押してログインします。
CloudPebble.png
ログインすると、開発中のプロジェクト(cloudpebble上で管理されるアプリの単位です)一覧画面が表示されます。上部のCREATEをクリックします。
適当なプロジェクト名を入力して、Project Typeは Pebble.js(beta)を選びます。CREATEをクリックします。
CreateCloudPebble.png
ちょっと待つと、新規のプロジェクト開発用画面が表示されます。
左部のapp.jsをクリックすると、デフォルトのサンプルコードが入っていることがわかります。このコードを編集(上書き)します。
CloudPebble – ActivityTracker01.png
以下のコードを上書きします。
DATABINIDには、上記で取得したDatabin IDをコピペしてください。

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
上部のPHONEボタンを押して、INSTALL AND RUNボタンを押してください。pebbleにインストールされます。
InstallAndRun_CloudPebble – ActivityTracker001.png

install_CloudPebble – ActivityTracker001.png

P_20150512_213656.jpg

Databinにデータが入っているかどうかを、確認してみます。
Data Dropの管理画面を開きます。
https://datadrop.wolframcloud.com/admin.html
My Databins - Wolfram Data Drop.png

上記でDATABINIDにコピペしたDatabin IDの行をクリックします。データが入っていると、以下のように表示されます。無料アカウントの制約に合わせて、1分に1回だけ入れるようになっています。
Unnamed2 - Wolfram Data Drop.png

4. pebbleをつけて暮らしてみる。

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

5.Wolfram alphaでデータを見てみる(失敗する)

1日ぐらいデータを貯めたところで、上記のData Dropの管理画面で、みたいDatabinのAnalyze in Wolfram Alpha をクリックします。

分析画面に表示されませんでした!!
次回に続きます。(たぶん)

To-Do

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

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8