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の設定

tech-181011-1.png

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

tech-181011-2.png

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

tech-181011-3.png

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

tech-181011-4.png

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

tech-181011-5.png

TopicNameは、AWS IoTにpublishするトピック名となります。
[次へ]ボタンをクリックすると、オプションの設定画面になりますので、そのまま[次へ]ボタンをクリックすると、確認画面になります。
☑AWS CloudFormation によって IAM リソースが作成される場合があることを承認します。
にチェックを入れて、[作成]ボタンクリックで、スタックが作成されます。
作成されたスタックを開き、「出力」を確認します。

tech-181011-6.png

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

tech-181011-7.png

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

sigfox_awsiot.json
{ "device":"{device}", "time":{time}, "data":"{data}" } 

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

DynamoDBにデータを送ってみる

tech-181011-8.png

SigfoxクラウドからのデータをDynamoDBに保存していきます。
AWSのサービス一覧から「DynamoDB」を選択します。

tech-181011-9.png

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

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

tech-181011-10.png

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

tech-181011-11.png

DBテーブルを用意しただけでは、データが受けわされてないので、受け渡し用の設定を行います。
AWSサービス一覧から「IoT Core」を選択し、左メニューのACTをクリックし、[ルールの作成]を行います。

tech-181011-12.png

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

tech-181011-13.png

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

tech-181011-14.png

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

tech-181011-15.png

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

tech-181011-16.png