monitor audio トールボーイスピーカーが欲しい
542ドルかぁ。6万2千円位ですね。
210円のセンサー+さくらIotで冷蔵庫の開閉回数及び扉が開いていた時間をカウントする
開閉は状態遷移を使った
6軸ジャイロセンサーをArduinoに接続して、測定する。ジャイロyの値をとると
なんか上手くいけそうだったので以下、状態遷移を使いながら測定することにした。
閉まっている状態
ジャイロyが50以上の数値だったら、開いている状態へ遷移。開けた時刻を保存。
あいている状態
ジャイロyが-30以下の数値だったら、閉まっている状態へ遷移。
現在時刻-開けた時刻を空いていた時間として加算
開閉カウントを1加算。
さくらIotへデータを飛ばす
1分ごとに、集計値をさくらIotへ飛ばす。さくらでデータを3回位受け取った後、取れなくなってしまう。
もう少しの所まで来ているので原因を調べなくては・・・
やっぱ乾電池駆動はいけないのかな?
Websocketを作り直したら動き出した
超頻繁にやり取りしたので制限がかかっていたのか。WebSocketを作り直したら、飛ばし続けるようになりました。
あとは、電池駆動はやめてACアダプターから電源を取るようにしました。
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へ飛ばす。
functionの中身
var payload = msg.payload.payload; var data = { "d1" : payload.channels[0].value }; msg.payload = data; return msg;
これで、うまくいけば表示できるはず。
Ambientは5秒ごとで受け取るのでNode-REDでデータを蓄えておくりたい
Ambientは5秒間隔以上でないとデータを受け付けない。
よってNode-REDから1秒毎にデータを送っても間引かれてしまうことになる。
そのため、Node-REDで値を溜め込んで、5秒以上の間隔で溜め込んだデータを
まとめて送る必要がある。
まとめて送る方法、データのフォーマットは以下から
Node-REDのflowへ配列でデータを蓄えておく。
Node-REDでデータを蓄える方法は
context,flow,globalというところがあって、
qiita.com
場面場面、適切に使わないといけません。
さくらIot+Bluemix(Node-RED)+Ambientでグラフを描写するまで
http://sssslide.com/www.slideshare.net/sakura_pr/iot-platform-20161201
Node-REDアプリの作成
BlueMixへログイン、カタログからNode-REDスターターで
アプリ名を入力して、作成ボタンを押す
起動されるので
あとはhttpでアクセスするだけ。簡単ですね。
Node-RED エディタ
WebSocketをドラッグ&ドロップする
PathへさくらのIotのWebSocketのパスを入力
とりあえず、WebSocketノードとデバッグノードをGUIでつなぎこむだけでNode-RED上で値の取得が確認できた。
次はグラフ化してみましょう
グラフ表示する外部サービスAmbientへ登録
https://ambidata.io
BlueMixからAmbientノードを作るために
Ambientで表示するためには
Ambientで描写するためには、チャンネルの値をd1,d2…と言う値に変えて
あげる必要がある。ここはNode-Redでのコーディングが必要になります。
さくらのデータからAmbientノード用のJSONへ変換するときに
JSONが文字列なので、そのままでは値が取り出せません。オブジェクトに変換する必要ありはまりました。
qiita.com
JSONノードの後段にfunctionノードを配置して以下のように変換関数を
コーディングしてみました。
var payload = msg.payload.payload; var data = { "d1" : payload.channels[0].value, "d2" : payload.channels[1].value, "d3" : payload.channels[2].value }; msg.payload = data; return msg;
ジャジャジャーン。表示できました。
JSONノード、Functionノードをつなげるだけで、ほぼコーディングレスでグラフ化までできることが証明されたのでありました。
以下のような感じ。
あとは、本物のセンサーが届くのを待つのみ!!
さくらの聖夜2016に参加
働きがい
働きがいかぁ。自分の会社だとチャレンジする人が
あまりいない感じ。社長もいつていましたがこれは
会社から与えられないもの。社員が作り出していくもの。
働きやすさ
さくら昇給3年で2割という数字に愕然。自分は10数年で
月額2千円。極貧生活。よく辞めずにいると思う。
うまいプレゼン
うまいなプレゼン。早口ではなく落ち着いた語り口。
やつぱりすごい。
コストカツトから売上拡大へ
やっぱ新規事業ですよね。
そんな感じで刺激をもらいました。
ボツチで懇親はあんまりできず。