技術情報
Sigfox CallbackとIBM Watson IoT連携 (with Node-RED)
2018.10.25
Sigfox Callbackには、Custom Callback以外にAWS IoT、AWS Kinesis、Microsoft Azure Event hub、Microsoft Azure IoT hub、IBM Watson IoT Platformへの連携が用意されています。
ここでは、IBM Watson IoT Platformとの連携方法を記載します。
大まかな流れは、下記の通りとなります。
- IBM Watson IoT PlatformでSigfoxクラウド連携用のAPIキーを生成
- SigfoxクラウドでCallback設定
- 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/)を開き、[リソースの作成]ボタンをクリックします。
2.カタログでは、"Internet of Things Platform Starter"を選択してください。
3.Internet of Things Platform Starterアプリケーションの初期設定では、アプリ名(今回はSigfox2Watson)を入力してください。デプロイする地域はアプリの豊富さからも米国南部を選びました。
4.アプリの立ち上がりには数分かかります。
Watson IoT PlatformでAPIキーを作成
左上のメニューアイコンをクリックし、[ダッシュボード]を選択すると作成されたアプリケーションおよびサービスの一覧が表示されます。
Cloud Foundryサービスの一覧にある[アプリ名]-iotf-serviceという名前のものがWatson IoT Platformとなります。名前部分をクリックするとサービス画面が表示されます。
1.[起動]ボタンをクリックします。
2.IBM Watson IoT Platformが立ち上がります。
左上のメニューアイコンから、[アプリ]メニューをクリックします。
3.右上の[+ APIキーの作成]ボタンをクリックします。
4.APIキーの情報として説明文を入力し、[次へ]ボタンをクリック
5.権限設定では、"標準アプリケーション"を選択して、[キーの作成]ボタンをクリックしてください。
6.APIキーが生成されます。このAPIキーは、SigfoxクラウドとのCallback設定で使いますのでコピーしておきましょう。
Sigfoxクラウドの設定
Sigfoxクラウドでは、IBM Watson IoT Platformと連携したいDEVICE TYPEを選択し、左メニューのCALLBACKSから、[New]ボタンをクリックします。複数のCallbackパターンがリスト表示されているので、"IBM Watson IoT Platform"を選択します。
Sigfox:Callback設定(Watson IoT Platform)
Watson IoT PlatformとのCallbackで必要な設定は、API KeyとAuth Tokenです。この2つは、上述のWatson IoT Platformで作成したAPIキー情報からコピー&ペーストしてください。
あとは、CallbackするJSON bodyを定義します。今回は、デバイスIDと受信時刻、データペイロードを送りますので、下記JSON文を入力してください。
{ "device": "{device}", "time": {time}, "data": "{data}" }
最後に、[OK]ボタンをクリックすると終了です。これで、SigfoxデバイスからのデータがIBM Watson IoT Platformに転送されるようになりました。
Watson IoT Platform側でデバイスメニューを確認します。Sigfoxクラウドで1つのデバイスタイプに対し、複数のデバイスを登録していた場合も、各デバイスからデータが送信され始めると、自動的にWatson IoT Platfrom側のデバイスが追加されます。
Node-REDで確認
Node-REDで、Sigfoxクラウドから送られたメッセージ(JSON)が本当に転送されてきているかを確認します。
1.IBM Cloudのダッシュボードに戻り、Cloud Foundryアプリケーションリストにある"Sigfox2Watson"を選択してください。
2.Sigfox2Watsonアプリ画面が表示されるので、"アプリURLにアクセス"をクリックします。
3.Node-REDの初期設定となりますが、必要な設定は、Node-REDの認証ユーザ設定のみですので、UsernameとPasswordを入力して、[Next]ボタンを押していき、設定を終わらせてください。
4.下図、Node-RED画面が表示されるので、"Go to your Node-RED flow editor"ボタンをクリックしてください。
5.既にサンプルのNodeが出来上がっています。デプロイ後、画面右上のデバッグボタン()をクリックすると、データフローが表示されます。
payload部分を確認すると、確かにデバイスIDと受信時刻、データペイロードが受け取れていることがわかります。
この後は、Node-REDを使って、ストレージへの蓄積やEメール、Twitterへの転送が可能になります。
Sigfox IoTデバイスとNode-REDの拡張機能例を以下に記載します。