鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

Arduinoで1秒ごとに冷蔵庫の開け閉めをカウントして、1分ごとにデータを飛ばしたい。

1秒ごとに、集計して、1分ごとに飛ばす方法。
Arduinoにつないだセンサからの値をパソコンで記録する(1) | Ukkari blog

上記を参考に、以下のようなプログラムをしてみた。
チャンネル0に1分間の開け閉めカウントを入れてさくら通信モジュールでデータを飛ばす。

  if (acc_angle_x > 100 ){ //センサーの値を検知して開けたらフラグを立てる。要調整
    openFlg = 1;
  }
  if (nextTime < millis()) {
     nextTime = nextTime + 1000;  // Set Next analyze time
     if (openFlg == 1){
       openCount++;
       openFlg = 0;
     }
  }
  if (sakuraTime < millis()) {
    sakuraTime = nextTime + 60000;  // Set Next send time
    sakuraio.enqueueTx(0,openCount);
    sakuraio.send();
    openCount = 0;   
  }


さくらで飛ばしたデータをWebSocketでつながったBluemix上のNode-REDで受ける。
それをAmbientへ飛ばす。

f:id:kechiya:20170118075959p:plain

functionの中身

var payload = msg.payload.payload;

var data = {
    "d1" : payload.channels[0].value
};
msg.payload = data;
return msg;

これで、うまくいけば表示できるはず。