Posted at

Sigfox CallbackとAWS IoT連携

Sigfox Callbackには、Custom Callback以外にAWS IoT、AWS Kinesis、Microsoft Azure Event hub、Microsoft Azure IoT hub、IBM Watson IoT Platformへの連携が用意されています。

ここでは、AWS IoTとの連携方法を記載します。


Sigfox Callback設定とAWS IoTの設定

image.png

まずは、Sigfoxクラウドで、Callback設定画面に移動し、「AWS IoT」を選択します。

image.png

下図の画面になります。後ほど、AWS IoT側の設定で必要になるExternal Idをコピーしたうえで、[Launch Stack]ボタンをクリックします。

image.png

AWSコンソールが立ち上がり、CloudFormationの画面に移るので、そのまま[Next]をクリックします。

image.png

スタックの詳細の指定画面になります。AWSAccountIdはご自身のAWSアカウントIDExternalIdは、先ほどSigfoxクラウドのCallback設定でコピーしておいたExternalIdを、Regionには、ご自身のリージョンを入力してください。リージョンを調べる場合は、こちらから探してください。アジアパシフィック(東京)の場合は、「ap-northeast-1」となります。

image.png

TopicNameは、AWS IoTにpublishするトピック名となります。

[次へ]ボタンをクリックすると、オプションの設定画面になりますので、そのまま[次へ]ボタンをクリックすると、確認画面になります。

☑AWS CloudFormation によって IAM リソースが作成される場合があることを承認します。

にチェックを入れて、[作成]ボタンクリックで、スタックが作成されます。

作成されたスタックを開き、「出力」を確認します。

image.png

ここで、ARNRoleTopicをコピーしておき、SigfoxクラウドのCallback設定画面に戻り、ARN RoleとTopicに貼り付けます。RegionはAWS IoT側で設定したリージョンと同じものを選びます。

image.png

Json Bodyには、AWS IoTにCallbackするデータをJSON形式で入力します。今回は、下記のようなJSONを送ってみます。


sigfox_awsiot.json

{

"device":"{device}",
"time":{time},
"data":"{data}"
}

[OK]ボタンをクリックし、Callback設定を完了させます。これで、SigfoxクラウドからAWS IoTへのCallbackが完了しました。


DynamoDBにデータを送ってみる

image.png

SigfoxクラウドからのデータをDynamoDBに保存していきます。

AWSのサービス一覧から「DynamoDB」を選択します。

image.png

DynamoDBのダッシュボードから「テーブルの作成」ボタンをクリックし、テーブル名とプライマリーキーを設定します。絶対ではないですが、deviceとtimeをキーにしておきます。

テーブルの作成が完了するとDynamoDBのテーブルメニューにテーブル名が表示されます。

image.png


DynamoDBにデータを受け渡すためのRoleを設定

image.png

DBテーブルを用意しただけでは、データが受けわされてないので、受け渡し用の設定を行います。

AWSサービス一覧から「IoT Core」を選択し、左メニューのACTをクリックし、[ルールの作成]を行います。

image.png

ルールの作成画面では、AWS IoT (CloudFormation)で設定したデータハブからデータを取得し、そのあと、どうするかを定義します。トピックフィルターでは、CloudFormationで設定したTopic名(今回は"sigfox")を入力。属性は、とりあえず、全部ということで、""を入力します。

image.png

[アクションの追加]ボタンをクリックし、
DynamoDBテーブルにメッセージを挿入するを選択。

image.png

先程作成したテーブル名など、テーブルの設定を行い
[アクションの追加]*ボタンをクリックします。(IAMロール名も適当に作っておいてください)

最後に、[ルールの作成]ボタンをクリックすると、ルールが一つ出来上がります。

image.png

DynamoDBのテーブルを確認すると、Sigfox Callbackで設定したJSONにあわせた項目が挿入されていることが確認できます。

image.png

Sigfox Japan KCCS