技術情報

Sigfox CallbackとAWS IoT連携

2018.10.11

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

img-20181011-technical-01.png

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

img-20181011-technical-02.png

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

img-20181011-technical-03.png

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

img-20181011-technical-04.png

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

img-20181011-technical-05.png

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

img-20181011-technical-06.png

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

img-20181011-technical-07.png

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

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

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

DynamoDBにデータを送ってみる

img-20181011-technical-08.png

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

img-20181011-technical-09.png

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

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

img-20181011-technical-10.png

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

img-20181011-technical-11.png

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

img-20181011-technical-12.png

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

img-20181011-technical-13.png

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

img-20181011-technical-14.png

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

img-20181011-technical-15.png

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

img-20181011-technical-16.png

著者情報

Products and Marketing Department 日比 学

京セラコミュニケーションシステム株式会社(KCCS)よりSigfox社(フランス)に出向中の元自称Sigfoxエバンジェリスト

  • KCCSから追い出され、フランスの片田舎で余生を過ごしています
Twitter:https://twitter.com/ghibi