センサーの計測値をクラウドにためて見てみる

HTTP/HTTPS プロトコル経由で、IoT データを蓄積したり参照する無料サービスを見つけました。

ThingSpeak: Internet Of Things

蓄積したデータは数値解析したりいろいろな切り口のグラフ表示ができます。 ThingSpeak 自体は Ruby on Rails 4 で動く GPLv3 ライセンスのオープンソースで公開されていますから、 自前でサーバーを作ることも出来ます。自前サーバーならば API 呼びだし頻度制限はありません。
Open source data platform and API for the Internet of Things.

アカウント

利用するにはアカウントを作ります。 アカウントごとに API キーが用意されます。 API キーは後述のチャンネルを API 経由で新規作成するときに使います。

チャンネル

アカウントごとにチャンネルを複数作れます。

場所ごとにチャンネルを割り当てると良いかと思います。
例)チャンネルとして、部屋、ビル1F、ビル2F、ビルエントランスなど

1チャンネルあたり8種類フィールド(データ)を持てます。
例)フィールドとして、温度、湿度、明るさ、騒音などセンサーの値

部屋の温度と室温を蓄えるチャンネルを設定してみました。

部屋の温度を世界に公開するのははばかられるので、公開範囲はプライベートにしました(初期状態はプライベート)。

チャンネルごとに書き込み(Write)と読み込み(Read)用の API キーがそれぞれ用意されています。

データをためる

チャンネルが設定できたら所定の API をリクエストするだけでデータがドンドン溜まります。 Raspberry Pi や Arduino とセンサー(今回は温湿度センサー DHT11)で取得したデータをドンドン投げてみましょう。

curl https://api.thingspeak.com/update/ -X POST -d field1=14 -d field2=45 -H 'X-THINGSPEAKAPIKEY: ※'

※ チャンネルに応じた書き込み(Write)用の API キー文字列

1分ごとに測った温度湿度を POST リクエストして、1,200 回ほど継続してみました。

データを見てみる

POST されたデータは ThingSpeak 側でフィールドごとにx軸は時刻、y軸はフィールドの値としてグラフ化してくれます。

室温を10分間隔でプロットしてみました。 日中は暖房がついていたので、ほぼ一定の室温でした。 夜間は暖房を止めていたので室温が下がりました。 朝になると暖房がついたので室温が上がり始めました。 一旦計測を停止して、夕方に試しに別地点で計測してみました。 最後の数プロットは別地点での計測値です。冬だけど 26℃ です。ずいぶんと暖かい所ですね。

こちらは湿度です。 かなりアバウトな感じです。 最後の数プロットは別地点での計測値です。前の地点と比べると相対的には乾燥しています。

別切り口で見る

ページ上部の「Apps」から「MATLAB Visualizations」を選ぶと、別切り口のグラフ表示が作れます。 温度と湿度の関係をプロットしてみます。

なぜか MATLAB Code のテキストエリア部に直接日本語を入力できないので、メモ帳に日本語を書いてからコピペして下さい。

「Run and Save」で新しいグラフが定義されます。

温度と湿度の関係はこんな感じになりました。

今回の場合は、温度が上がると湿度が下がり気味な傾向があるようです。 暖房をつけると乾燥するということですかね…。