IoT の便利サービス Ambient

投稿者: | 2020-03-02

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 気に入った点、要望等

気に入った点

  • 簡単に使用できる
  • チャート(グラフ)のカスタマイズも簡単
  • 目的毎にチャネルを複数簡単に作成できる
  • チャネル毎に公開・非公開の設定ができる
  • 送付したデーターを一括でダウンロードできる
  • 送付したデーターにプログラムからアクセスできる
  • 対数グラフのサポートが嬉しい

要望等

  • 公開チャネルの検索機能等があれば便利
  • 週間とか月間グラフを簡単に表示できると嬉しい (現状は表示件数で調整かなぁ…)
  • 本サービスに限った話では無いが、クラウドサービスの場合サービスの継続性が少し不安…

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です