IoT.kyoto VISの使い方

事前に準備するもの

  • IoTデバイス(計測する値を出力します)
  • AWSアカウント

[0] 概要説明

[0-1] IoT.kyoto VIS 構成例

image

[0-2] IoT.kyoto VIS を使用するために必要なデータ

たとえば、温度と照度を出力するIoTデバイスの場合に必要なデータ

  • IoTデバイスを識別するIDとタイムスタンプは必須です
  • 下表の場合、temperatureとlightはIoTデバイスから出力される計測対象の値です
  • IoTデバイスで計測したこれらのデータは「[1] DynamoDB構築手順」でDynamoDBのテーブルを作成後、テーブルにデータを書き込みます。さらに、「[3] IoT.kyoto VIS ユーザー設定」で設定することで、リアルタイムでグラフ化することができます
deviceID time temperature light
01 2016-03-04 10:17:44 25.6 103
02 2016-03-04 10:17:44 22.1 216
01 2016-03-04 10:17:45 25.8 98
02 2016-03-04 10:17:45 21.9 210

タイムスタンプは下記6種類のうちのいずれかをお使い下さい。画面表示時にUTCはJSTに自動変換されます。

[JST]
 YYYY-MM-DD hh:mm:ss
 YYYY/MM/DD hh:mm:ss
 YYYY-MM-DDThh:mm:ss.sss+0900
[UTC]
 YYYY-MM-DDThh:mm:ssZ
 UNIXタイムスタンプ(整数10桁)
 UNIXタイムスタンプ(整数13桁)

[0-3] DynamoDBにデータを書き込む方法

  • デバイスID/タイムスタンプ/計測値を下記のようにJSON形式で書き出します。csvは利用できません
{"light": 164, "ID": "id000", "time_sensor": "2016-03-28 15:16:48"}
{"light": 692, "ID": "id000", "time_sensor": "2016-03-28 15:16:49"}
  • 下記のような方法でJSONをDynamoDBに書き込みます。実装例も参照して下さい
    • APIを利用する
    • 各種言語向けのSDKを利用する
    • AWS CLIを利用する
    • AWS IoTやLambdaなどのAWSのサービスを経由して書き込む
    • fluentdなどのミドルウェアを利用する
    • DataSpiderなどのETLツールを利用する(JSONでなくてもOK)
  • API/SDKついてはAWSの開発者用リソースを参照して下さい

[0-4] AWS IoTを使用する場合の設定

  • AWS IoTからDynamoDBにデータを書き込む場合、標準では下図のように「payload」キーに”humidity”や”light”などのキーがネストされて計測値が記録されます。「[3] IoT.kyoto VIS ユーザー設定」で「AWS IoT連携」にチェックを入れることで”humidity”や”light”などのキーを指定してグラフを描画することができます

データフォーマット(例)

{
  "thingName": "device001",
  "timestamp": "1450505098624",
  "payload": {
    "humidity": 40.64,
    "light": 487.52,
    "temperature": 29.9,
    "thingName": " device001"
  }
}

image


[1] DynamoDB構築手順

1. AWSにサインインします

  • 左上のオレンジの立方体のアイコンをクリックしてください

  • [DynamoDB]のコンソールをクリックして開いてください

image

2. リージョンを確認します

  • 特に他のリージョンを選ぶ理由がない場合は[アジアパシフィック(東京)]を選択してください

image

3. DynamoDB のコンソール画面で[デーブルの作成] をクリックしてください

image

4. テーブル名に任意の名前をつけてください

image

 
5. プライマリキーのパーティションキーに任意の名前をつけてください

  • データ型はIoTデバイスが出力する値に合わせて「文字列」または「数値」を選んでください

  • IoTデバイスの特定に分かりやすい名前を付けてください

image

6. [ソートキーの追加]のチェックボックスをクリックしてチェックを入れてください

image

7. プライマリキーのソートキーに任意の名前をつけてください

  • 時間の特定に分かりやすい名前を付けてください

  • データ型はIoTデバイスが出力する値に合わせて「文字列」または「数値」を選んでください

image

8. テーブル設定の[デフォルト設定の使用]のチェックボックスをクリックしてチェックを外します

image

9. プロビジョニングされたキャパシティの[読み込み容量ユニット]と[書き込み容量ユニット]のテーブル数を設定してください

  • IoTデバイス2~3個までなら「読み込み容量ユニット」が5テーブル、「書き込み容量ユニット」が5テーブルで足ります

image

10. [作成]をクリックしてテーブル作成は完了です

image

[2] IAM Access Keyを取得する

1. Identity and Access Management(IAM)コンソールを開いてください

image

2. [ユーザー]をクリックして開き、[新規ユーザーの作成]をクリックし、任意の名前でユーザーを作成します

  • [ユーザーごとにアクセスキーを生成]のチェックボックスにチェックが入っているかどうかを確認してください
  • [作成]をクリックしてユーザーを作成します

image
image

3. [ユーザーのセキュリティ認証情報を非表示]をクリックして ID と Key を表示させます

  • 表示されたアクセスキーID とシークレットアクセスキーを控えておいてください([認証情報のダウンロード]をクリックして保存してもよい)

  • [閉じる]をクリックして終了します

image

4. ユーザーの中から、作成したユーザー名をクリックします

image

5. [アクセス許可]をクリックして開き、[ポリシーのアタッチ]をクリックします

image

6. [AmazonDynamoDBReadOnlyAccess]のチェックボックスにチェックをいれ、[ポリシーのアタッチ]をクリックして、IAM の登録は完了です

  • IAMでReadOnlyAccessに設定することで、DynamoDBからデータを取得することが許可されます

image

[3] IoT.kyoto VIS ユーザー設定

1. メールアドレスとパスワードを入力し、[ログイン]をクリックしてください

image

下記エラーメッセージが表示されますので、[OK]をクリックします
err.PNG

2. [ユーザー設定]をクリックします

image
 
3. ユーザー情報設定を変更することができます

  • メールアドレスには、IoTデバイスから取得した計測値が閾値を超えた場合に通知メールが届きます

  • 通知用メールアドレス欄が空欄の場合、ログインIDのメールアドレスに通知されます

image

 
4. AWSアクセス設定をします

  • AWSのアクセスキーIDとシークレットアクセスキーとリージョンのコードを入力してください

image

 
リージョンのコードは下図を参照にしてください。(2016/03/10時点)
最新のリージョンはリージョンとアベイラビリティーゾーンをご確認ください。

リージョンコード リージョン名
us-east-1 US East (N. Virginia)
us-west-2 米国西部(オレゴン)
us-west-1 米国西部(北カリフォルニア)
eu-west-1 欧州(アイルランド)
eu-central-1 欧州(フランクフルト)
ap-southeast-1 アジアパシフィック(シンガポール)
ap-northeast-1 アジアパシフィック(東京)
ap-southeast-2 アジアパシフィック(シドニー)
ap-northeast-2 アジアパシフィック (ソウル)
sa-east-1 南米(サンパウロ)

5. dynamoDBテーブル設定をします

  • AWSのDynamoDBで作成したテーブルの情報を入力します

[AWS>DynamoDB>テーブル]

  • DynamoDBのテーブル設定は、AWSにログイン→DynamoDBのコンソール画面からテーブルを開く→[項目]から確認できます

image

6. テーブル名を入力してください

image

7. パーティションキーを入力後、StringかNumberかを選択してください

image
 
8. ソートキー(タイムスタンプ)を入力後、StringかNumberかを選択してください

image

9. タイムスタンプのフォーマットは下図6種類があります(UTCはJSTに自動変換されます)。
ソートキーに合わせて設定してください

image

10.グラフ表示数を選択してください。可能なグラフ表示数は最大3個までです

image

  • グラフ表示数を3個に選択した場合

会議室センサータグ2.PNG

11. グラフアイコンを選択してください

  • アイコンを適用させたいグラフを選択し、アイコン選択からグラフアイコンを選んでください
  • 選択したグラフはグラフ画面でグラフタイトルの横に表示されます

image

12. AWS IoTを使用の場合は、[AWS IoT連携]のチェックボックスにチェックを入れてください

image

13. [更新]をクリックしてユーザー設定を完了させてください

image

[4] IoT.kyoto VIS グラフ設定

1. [グラフ]をクリックしてください

image
 
2. [パーティションキー]をクリックして、計測したいパーティションキーを選択してください

image

3. DynamoDBにパーティションキーを追加した場合は、反映されるまでに10分程かかるの場合があるので、早く表示したい場合はパーティションキーを直接入力して[追加]をクリックしてください
追加した後、2の手順と同じようにパーティションキーを選択してください。

image

4.[表示対象キー]を選択して、計測したい表示対象キーを選択してください

image

5.グラフ表示させたい[表示対象キー]がない場合は、[表示対象キー手入力]をクリックしてから入力し、[追加]をクリックしてください
追加した後、4の手順と同じように表示対象キーを選択してください。
image

6. ギアマークを選択して[グラフ設定]を表示させてください

image

7. [グラフ設定]では、[グラフ更新間隔(1~600秒)]、[グラフ1閾値]、[グラフ2閾値]、[グラフ3閾値]、[リアルタイムグラフ描画幅]の編集が出来ます

  • 設定した閾値を超えた場合もしくは下回った場合、通知メールが送信されます
  • 閾値は有効にするか無効にするかをチェックボックスをクリックして選択してください
    image

8.[リアルタイムグラフ描画幅]はグラフの横軸を設定します

  • [グラフ更新間隔]に応じて選択できる[リアルタイムグラフ描画幅]が変わります

image

9.グラフ設定の編集が終わったら、[OK]をクリックして、編集を終了してください

image

10. レンジ設定を自動か手動に設定するかを、チェックボックスをクリックすると、選択可能になります

  • 手動に設定する場合、グラフの縦軸の最小値と最大値を入力してレンジを設定してください
  • レンジ設定を手動にすることによって、最小値と最大値が固定されたグラフが表示されます

image

12. レンジ設定を自動に設定した場合、最小値と最大値が取得した計測値の大きさによって変動します

image

13. グラフタイトルを記入し[保存]をクリックすることで、複数のパーティションキーを区別しやすくすることが出来ます

image

 
14.リアルタイムグラフの計測中に設定した閾値を超えた場合、異常履歴に発生日時の記録が残ります。[異常履歴]をクリックすることで確認することができます

image

 
15. 異常履歴の[発生日時]をクリックし、[OK]をクリックすると、画面をスクロールした一番下の右下のグラフに異常が発生した日時前後のグラフが表示されます

image

image

 
16. 日時指定を入力することで、指定した範囲のグラフを表示することができます

image

 
17. [日付]の入力欄をクリックするとカレンダーが表示されますので、指定したい日付を選択してください

image

18.時刻の書式は、ユーザー設定に登録した通りの書式で入力してください

image

19.設定した日付・時刻の以前、以降か前後かを選択してください

image

20.日時設定に間違いがなければ、[送信]をクリックしてください

image

21.右側に指定した範囲のグラフが表示されます

image