SigfoxデバイスからDynamoDBに書き込む

概要

Sigfoxに対応したオプテックス社製ドライコンタクトコンバーター(SORACOMコンソールから購入可能)を用いて、下記のような流れで接点データをDynamoDBに保存してIoT.kyoto VISで可視化します。
スクリーンショット 2017-09-11 22.33.23.png

本コンテンツの前提

Sigfoxハンズオン ドライコンタクトコンバーター編

上記が完了していること。

Sigfoxハンズオン SORACOM Funnel AWS IoTの利用編

【重要】上記手順中で「AWS IoT カスタムエンドポイント」「アクセスキーID」「シークレットアクセスキー」を入力する箇所がありますが、当ページの手順で作成しますのでその値を入力して下さい。

IAMキーの作成

下表のアクセス権をもつIAMキーを作成します。画面キャプチャ中のテキストは作業内容とは一致していませんので説明文をよく読んでください。

ユーザー名 アクセス権 使用箇所
sigfox-vis – AmazonDynamoDBReadOnlyAccess
– AWSIoTDataAccess
SORACOM FunnelからAWS IoTへのパブリッシュ
IoT.kyoto VISからDynamoDBの読み出し
  • AWSにサインインする
  • Identity and Access Management(IAM)コンソールを開く
    ※ 英語画面で説明するので日本語表示になっている場合は、画面左下の言語選択を「English」に変更する
    AWS Management Console 2017-02-05 15-21-17.png

  • sigfox-vis」という名前でProgrammatic accessユーザーを作成する
    IAM Management Console 2017-02-05 15-25-26.png

IAM Management Console 2017-02-05 15-27-19.png

  • [Attach existing policies directly]をクリックし、[dynamo]で検索して、[AmazonDynamoDBReadOnlyAccess]にチェックを入れる
  • 同様に[iot]で検索して、[AWSIoTDataAccess]にチェックを入れる
  • [Next: Review]をクリックする
    IAM Management Console 2017-02-05 15-36-54.png

  • [AmazonDynamoDBReadOnlyAccess]と[AWSIoTDataAccess]が表示されていることを確認して[Create user]をクリックする
    IAM Management Console 2017-02-05 15-38-24.png

  • 認証情報の書かれたCSVをダウンロードし、[Close]をクリックする
    IAM Management Console 2017-02-05 15-41-43.png

DynamoDBのテーブル作成

  • DynamoDBコンソールを開く
    7ba6beb1-cd92-4431-bac3-ebb9b5f793f8.png

  • リージョンが「Asia Pacific (Tokyo)」でない場合は変更する
    4bd6b0f2-3593-3b10-1839-62f3c2f13173.png

  • [Create table]をクリックする
    ed90be9a-8c72-8032-26eb-78bc959573a5.png

  • [Table name]に[sigfox_handson]を入力する

  • [Partition key]に[id]を入力する
  • [Add sort key]にチェックを入れ、[timestamp]を入力する
  • [Create]をクリックする
    スクリーンショット 2017-09-11 17.12.36.png

AWS IoTの設定

デバイスからAWS IoTにデータを送信する場合、通常はThingとPolicyを証明書に紐付け、デバイスに証明書をインストールする必要がありますが、SORACOM Funnel経由の場合はIAMキーを用いてトピックをパブリッシュしますので、Thing・Policy・証明書の設定が不要です。AWS IoTより先の処理を定義するRuleのみ設定します。

  • AWS IoTコンソールを開く(画面キャプチャ省略)
  • リージョンが「Asia Pacific (Tokyo)」でない場合は変更する(画面キャプチャ省略)
  • [Get started]をクリックする(下図は表示されない場合もある)
    スクリーンショット 2017-09-11 17.23.40.png

  • [Rules] -> [Create rule](または[Create])の順にクリックする(下図と異なる場合がある)
    スクリーンショット 2017-09-11 17.31.08.png

  • [Name]に[Sigfox_handson]を入力する

  • [Attribute]に payloads.usr_channel, payloads.usr_value を入力する
    ※ ここでチャネルと値だけを抜き出している
  • [Topic filter]に sigfox_dcc/# を入力する
    ※ トピック名「sigfox_dcc/{device_id}」で送られてくるのでフィルターする
    スクリーンショット 2017-09-11 17.44.16.png

  • [Add action]をクリックする
    スクリーンショット 2017-09-11 17.59.05.png

  • [Insert a message into a DynamoDB table]を選択し、スクロールして[Configure action]をクリックする
    スクリーンショット 2017-09-11 18.01.50.png

  • [Table name]で[Sigfox_handson]を選択する

  • [Hash key value]に${topic(2)}を入力する
  • [Range key value]に${timestamp}を入力する
    ※ 今回は手順の制約で(デバイス側ではなく)AWS IoT側で生成したタイムスタンプを使用する
  • [Write message data to this column]にpayloadを入力する
  • [Create a new role]をクリックする
    スクリーンショット 2017-09-11 18.05.57.png

  • sigfox_handson_yyyymmddと入力し[Create a new role]をクリックする
    スクリーンショット 2017-09-11 18.10.56.png

  • 先ほど作成したロールを選択し[Add action]をクリックする
    スクリーンショット 2017-09-11 18.13.46.png

  • 下図のようになっていることを確認して[Create rule]をクリックする
    スクリーンショット 2017-09-11 18.31.20.png

  • Webブラウザをリロードしてルールが有効(ENABLED)になっていることを確認する
    スクリーンショット 2017-09-11 18.51.25.png

  • [Test]をクリックし[Subscription topic]にsigfox_dcc/#を入力する

  • [Subscribe to topc]をクリックする
    スクリーンショット 2017-09-12 11.24.22.png

  • データが受信できてることを確認する
    スクリーンショット 2017-09-12 11.01.26.png

  • 歯車マークをクリックするとカスタムエンドポイントが表示されるので控えておく(次章で使用)
    68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f38303339322f61613063343732332d643832322d353832372d303631612d3961346333626339383535372e706e67.png

SORACOM Funnelの設定

SORACOM Funnelの設定中の下記の設定に当手順中で作成した値を入力して下さい。

  • 転送先 URL
  • 前章で控えたカスタムエンドポイントを入力する(下図)
    console-soracom-funnel-sigfox.png

  • 認証情報の登録

  • IAMユーザー作成時にダウンロードしたCSVを参照し、新規で認証情報を登録する(下図)
    cred.png

DynamoDBへのレコード書き込み確認

  • DynamoDBコンソールを開く(画面キャプチャ省略)
  • リージョンが「Asia Pacific (Tokyo)」でない場合は変更する(画面キャプチャ省略)
  • [Tables] -> [sigfox_handson] -> [Items]の順にクリックする
  • 下図のようにレコードが記録されていることを確かめる
    スクリーンショット 2017-09-11 18.56.14.png

IoT.kyoto VISの設定

vis

サインアップ

https://vis.iot.kyotoにアクセスし、「新規登録」をクリックします。登録にはメールアドレスが必要ですが、登録時にメールが受信できる必要はありません。(パスワードリマインド時のみ受信できる必要があります)

設定

IoT.kyoto VIS公式マニュアルの3~4章を参照してください。
AWSアクセス設定には、先ほど作成したIAMキー(ダウンロードしたCSV参照)を使用します。
DynamoDBテーブル設定は下図の通りです。「AWS IoT連携」はONにしてください
スクリーンショット 2017-09-12 08.59.51.png