Sigfox CallbackとIBM Watson IoT連携 (with Node-RED)

技術情報

Sigfox Callbackには、Custom Callback以外にAWS IoT、AWS Kinesis、Microsoft Azure Event hub、Microsoft Azure IoT hub、IBM Watson IoT Platformへの連携が用意されています。
ここでは、IBM Watson IoT Platformとの連携方法を記載します。

tech-181025-1.png

大まかな流れは、下記の通りとなります。
1. IBM Watson IoT PlatformでSigfoxクラウド連携用のAPIキーを生成
2. SigfoxクラウドでCallback設定
3. Node-REDでデータ確認

IBM Watson IoT Platformの設定

Internet of Things Platform Starterの立ち上げ

"Internet of Things Platform Starter"は、BluemixでNode-REDを使用してInternet of Things Platformアプリケーションを立ち上げることができるスタータキットとなっています。IBM Cloudのアカウントが必要ですが、ライト・アカウントとして、クレジットカード不要で、期間無制限でWatson含めた多数のAPIとサービスが無料で使えるアカウントが用意されています。
https://www.ibm.com/cloud-computing/jp/ja/lite-account/
こちらから、アカウント作成をしたうえで、次に進んでください。

1.Bluemixコンソール(https://console.bluemix.net/)を開き、[リソースの作成]ボタンをクリックします。

tech-181025-2.png

2.カタログでは、"Internet of Things Platform Starter"を選択してください。

tech-181025-3.png

3.Internet of Things Platform Starterアプリケーションの初期設定では、アプリ名(今回はSigfox2Watson)を入力してください。デプロイする地域はアプリの豊富さからも米国南部を選びました。

tech-181025-4.png

4.アプリの立ち上がりには数分かかります。

tech-181025-5.png

Watson IoT PlatformでAPIキーを作成

左上のメニューアイコンをクリックし、[ダッシュボード]を選択すると作成されたアプリケーションおよびサービスの一覧が表示されます。

tech-181025-6.png

Cloud Foundryサービスの一覧にある[アプリ名]-iotf-serviceという名前のものがWatson IoT Platformとなります。名前部分をクリックするとサービス画面が表示されます。

1.[起動]ボタンをクリックします。

tech-181025-7.png

2.IBM Watson IoT Platformが立ち上がります。
左上のメニューアイコンから、[アプリ]メニューをクリックします。

tech-181025-8.png

3.右上の[+ APIキーの作成]ボタンをクリックします。

tech-181025-9.png

4.APIキーの情報として説明文を入力し、[次へ]ボタンをクリック

tech-181025-10.png

5.権限設定では、"標準アプリケーション"を選択して、[キーの作成]ボタンをクリックしてください。

tech-181025-11.png

6.APIキーが生成されます。このAPIキーは、SigfoxクラウドとのCallback設定で使いますのでコピーしておきましょう。

tech-181025-12.png

Sigfoxクラウドの設定

Sigfoxクラウドでは、IBM Watson IoT Platformと連携したいDEVICE TYPEを選択し、左メニューのCALLBACKSから、[New]ボタンをクリックします。複数のCallbackパターンがリスト表示されているので、"IBM Watson IoT Platform"を選択します。

tech-181025-13.png

Sigfox: Callback設定(Watson IoT Platform)

Watson IoT PlatformとのCallbackで必要な設定は、API KeyAuth Tokenです。この2つは、上述のWatson IoT Platformで作成したAPIキー情報からコピー&ペーストしてください。

tech-181025-14.png

あとは、CallbackするJSON bodyを定義します。今回は、デバイスIDと受信時刻、データペイロードを送りますので、下記JSON文を入力してください。

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

最後に、[OK]ボタンをクリックすると終了です。これで、SigfoxデバイスからのデータがIBM Watson IoT Platformに転送されるようになりました。
Watson IoT Platform側でデバイスメニューを確認します。Sigfoxクラウドで1つのデバイスタイプに対し、複数のデバイスを登録していた場合も、各デバイスからデータが送信され始めると、自動的にWatson IoT Platfrom側のデバイスが追加されます。

tech-181025-15.png

Node-REDで確認

Node-REDで、Sigfoxクラウドから送られたメッセージ(JSON)が本当に転送されてきているかを確認します。

1.IBM Cloudのダッシュボードに戻り、Cloud Foundryアプリケーションリストにある"Sigfox2Watson"を選択してください。

tech-181025-16.png

2.Sigfox2Watsonアプリ画面が表示されるので、"アプリURLにアクセス"をクリックします。

tech-181025-17.png

3.Node-REDの初期設定となりますが、必要な設定は、Node-REDの認証ユーザ設定のみですので、UsernameとPasswordを入力して、[Next]ボタンを押していき、設定を終わらせてください。

tech-181025-18.png

4.下図、Node-RED画面が表示されるので、"Go to your Node-RED flow editor"ボタンをクリックしてください。

tech-181025-19.png

5.既にサンプルのNodeが出来上がっています。デプロイ後、画面右上のデバッグボタン(image.png)をクリックすると、データフローが表示されます。

tech-181025-20.png

payload部分を確認すると、確かにデバイスIDと受信時刻、データペイロードが受け取れていることがわかります。

tech-181025-21.png

この後は、Node-REDを使って、ストレージへの蓄積やEメール、Twitterへの転送が可能になります。

Sigfox IoTデバイスとNode-REDの拡張機能例を以下に記載します。