CocoaBitでMilkcocoaのfreeboardでお手軽にグラフ可視化してみるメモ

CocoaBitでMilkcocoaのfreeboardでお手軽にグラフ可視化してみるメモです。

以前、MilkcocoaさんのほうにSORACOM AirとRaspberry Piを接続しつつMilkcocoa FreeBoardと連携する記事を書いたのですが、その流れでCocoaBitでMilkcocoaに送っているlittleBitsのセンサーデータをお手軽にグラフ可視化してみることにしました。

仕組み

CocoaBitで、データが変化したときはすぐにMilkcocoaにデータ蓄積する。という形で実装されています。

cocoabit-milkcocoa-freeboard_2

CocoaBitのArduino部分のソースコード

CocoaBitのArduino部分のソースコードです。

CocoaBitはわみさんのNefryの派生ソフトウェアが入っているので

NefryとMilkcocoaを連携させて、WebサイトにリアルタイムでPush通知してみる | 電子工作部

を参考に書いていきます。

#include <Nefry.h>
#include <Nefry_Milkcocoa.h>

Nefry_Milkcocoa *milkcocoa;

char *datastore;
int sensorValue;
int sensorValueHistory;
int spanValue;

void setup() {
  milkcocoa->print();//Setup ModuleページにAPPIDの表示をする
  milkcocoa = Nefry_Milkcocoa::begin();//milkcocoaと接続に必要になる処理をします。
  datastore = Nefry.getConfStr(3);//Setup Moduleページに入力されたデータストア名を保存します。
  sensorValueHistory = 0;
  spanValue = 0;
}

void loop() {
  sensorValue = analogRead(A0);//アナログの入力を読みます。
  Nefry.println(sensorValue);//センサーデータを表示します。
  // 通信を減らすために変化が大きい時だけ送信
  int spanValue = abs(sensorValueHistory - sensorValue);
  if( spanValue > 100 ){
    Nefry.println( milkcocoa->loop(10000) ? "Milkcocoa Connect OK" : "Milkcocoa Connect NG" ); //10秒以内にMilkcocoaに接続できればokと表示されます。
    DataElement elem = DataElement();
    elem.setValue("senser", sensorValue);//センサーの状態を送信できる形に変換
    milkcocoa->push(datastore, &elem);//Milkcocoaに送信
  } else {
    Nefry.println("--");
  }
  sensorValueHistory = sensorValue;
  //
  Nefry.ndelay(1000);//1秒待つ
}

MilkcocoaのFreeBoardで可視化する

こちらの記事のやりかたに合わせてMilkcocoaの設定をします。

cocoabit-milkcocoa-freeboard_3

まず、データストアはcocoabitにしているので設定。

cocoabit-milkcocoa-freeboard_4

登録されます。

cocoabit-milkcocoa-freeboard_5

つづいてウィジェット(実際に可視化するグラフ部分)を設定します。

cocoabit-milkcocoa-freeboard_6

試しにランダムモジュールで、ランダムのセンサー変化を生んでみます。

cocoabit-milkcocoa-freeboard_7

すると、このように変化します。いいかんじ。

cocoabit-milkcocoa-freeboard_9

おなじみボタンモジュール。

cocoabit-milkcocoa-freeboard_10

ON/OFFを繰り返すとパキパキ変化します。

cocoabit-milkcocoa-freeboard_11
つづいて、光センサー。

cocoabit-milkcocoa-freeboard_12

センサーを手を覆う形で簡易的に変化させてみます。

cocoabit-milkcocoa-freeboard_13

無事ゆるやかに変化しました。

いままでlittleBitsで同様のことを行おうとするとArduinoモジュールとRaspberryPiで行っていましたが、用途を決めて行うのであればCocoaBitで行うとよりコンパクトにセンサーデータ蓄積が可能ですね。

それでは、よき littleBits & CocoaBit & Milkcocoa Lifeを!