Raspberry Pi のC++ でdata.sparkfunにデータを送る

RaspberryPi

最近raspberry piを使ってロボットを制御することになりました.過去の経験から,リアルタイムでロボットの状態をモニタリングした方が開発が捗ると思ったので,調べてみたところdata.dparkfunが使えそうだったので試してみました.

data.sparkfunはphantというモジュールを動かしているサーバで,sparkfunが運営しています(sparkfunは海外版の秋月みたいな感じです).データを送るデバイスは http request を利用して,データをサーバにアップロードすることができます.このhttp requestで簡単にデータを送れるところがphantの特徴です.

公式のサンプルプログラムもいくつかありますが,raspberry piのC++でのサンプルプログラムがなかったので,今回はこれを作成しました.boost::asioを使っているので比較的スッキリとしたコードになっています.
使用する際には,PUBLIC KEY と PRIVATE KEY を自分のものに変えた上で,

[bash]
cmake .
make
[/bash]

でコンパイルして使ってください.

今回用意したストリームはこちらです.注意して欲しいのは,変数が欠けているとデータを送信できないことと9秒おきにしかデータを送れないことです(100push/15min : 9sec/1push).そのため,data.sparkfunでは気温やGPSなどの緩やかに変化するデータしか扱えません.送ったデータは Public URLで確認できます.また,streamの右上のボタンからAnalog.ioにデータを送ってグラプを描画することも可能です(今回はなぜがデータが飛んでいて,波形が崩れています).

ローカルで立ち上げたPhantでは速度制限はないようなので,次はローカルのPhantにデータを送りたいと思います.

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-11-20-44-26
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-11-20-42-00

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-11-20-42-14

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-11-20-50-43

コメント

タイトルとURLをコピーしました