IoT 第二弾で計測データのグラフ化に、Ambient というクラウド・サービスを使用した
これが凄く簡単で便利であった
カスタマイズ出来る機能と設定簡易さのバランスが絶妙
コード簡易性
Arduino IDEのスケッチ(プログラム) で数行追加するだけで利用できる!
必要な事前準備もとても簡単
事前準備
1. ユーザー登録(無料)
まずはAmbient のページにアクセスしてユーザー登録。
必要なのはEメールアドレスだけ!
2. チャネル作成
登録後ログインするとチャネル作成が可能となるので作成する。
ここでメモしておくことはチャネルID とライトキー。
作成直後は作成者しかチャネルにアクセス出来ないが、設定変更で一般公開も可能。
3. Arduino IDEへのライブラリ・インポート
ログインしたメニューのドキュメント/リファレンスに記述されている手順に従ってライブラリをインポートする。
以上で事前準備は完了!
スケッチへコード追加
スケッチへの追加コードはほんの数行が必要なだけ
1. Ambient 定義
Ambient ページのMyチャネルで表示されるチャネルIDとライトキーを設定する
#include "Ambient.h"
unsigned int channelId = 100000; // %%% AmbientのチャネルID %%%
const char* writeKey = "xxxxxxxxxxxxxxxxx"; // %%% ライトキー %%%
WiFiClient client;
Ambient ambient; // インスタンス作成
2. Ambient 接続初期化
setup()関数に下記を記述
//******* Ambient 接続初期化
Serial.print("Connecting to Ambient... ");
// チャネルIDとライトキーを指定してAmbientクラウドサービス接続
bool status;
status = ambient.begin(channelId, writeKey, &client);
if (!status) {
Serial.println("Ambient connection failed, check ID and Key");
while (1);
} else {
Serial.println("OK");
}
本質的に必要な行は
ambient.begin(channelId, writeKey, &client);
の1行だけという手軽さ
3. データ送信
スケッチ内の適当な箇所に送信データの登録と送付コマンドを記述
// サンプル
// データー番号、送付データー変数
ambient.set(1, room_temp); // 温度
ambient.set(2, room_humi); // 湿度
ambient.set(3, room_prss); // 気圧
ambient.set(4, room_gas); // ガス
ambient.set(5, room_lux); // 照度
ambient.send(); // データ送信実施
以上でデータがAmbient 側へ送付され、自動的にグラフ化してくれる
グラフのカスタマイズ
グラフのカスタマイズは必要最低限といった感じで手軽に行える。
位置情報や、写真等も付けたチャネル説明を付ける事も可能
https://ambidata.io/ch/channel.html?id=19096&private=true
Ambient 気に入った点、要望等
気に入った点
- 簡単に使用できる
- チャート(グラフ)のカスタマイズも簡単
- 目的毎にチャネルを複数簡単に作成できる
- チャネル毎に公開・非公開の設定ができる
- 送付したデーターを一括でダウンロードできる
- 送付したデーターにプログラムからアクセスできる
- 対数グラフのサポートが嬉しい
要望等
- 公開チャネルの検索機能等があれば便利
- 週間とか月間グラフを簡単に表示できると嬉しい (現状は表示件数で調整かなぁ…)
- 本サービスに限った話では無いが、クラウドサービスの場合サービスの継続性が少し不安…