SORACOM Developers

Documents

SORACOM Beam を使用して IBM IoT Foundation と接続する

はじめに

ここでは、SORACOM Beam(以降、Beam) を使用して、IBM 社から提供される IBM Internet of Things Foundation(以降、IoT Foundation) と連携します。

IoT Foundation とは

IBM 社の Web サイト(*1)によると、IoT Foundation とは「すべてのモノの IBM IoTのハブです。これは、接続されたデバイスのライブ・データおよび履歴データにアプリがアクセスできるように、それらのデバイスをセットアップおよび管理できる場所です。」と説明されています。
IoT の機能をフルマネージドサービスで提供し、デバイスおよびアプリケーションの接続には MQTT プロトコルが使用されています。また、プラットフォーム・サービス (PaaS) である IBM Bluemix のサービスとして提供されており、収集されたデバイスのデータを IBM Bluemix のアプリケーションから連携することが可能です。

(*1) IBM 社の Web サイト
https://internetofthings.ibmcloud.com/
http://www.ibm.com/cloud-computing/bluemix/internet-of-things/

Beam とは

Beam は SORACOM Air の SIM を使用したデバイスからのデータ・アップロード時にクラウド側でデータ処理を行うためのプロキシーサービスです。

Beam概要

Beam を使用することで、以下が可能となります。

当連携ガイドでは、以下のような構成でIoT FoundationとBeamを連携します。

連携

機密性の高い情報を IoT デバイスから送受信するには暗号化処理が必要となります。その一方で、IoT デバイスの限られたリソースでは暗号化処理が難しい場合もあります。そのような場合に暗号化処理を SORACOM プラットフォームのリソースにオフロードすることができます。

また、Beam を使用した IoT デバイスからのデータアップロードの場合は、3G/LTE 閉域網を通じて Beam のエンドポイントまでデータが送信されますので、平文のままであってもデータは Beam まで安全に届けられます。Beam から先のサーバーは Beam によって暗号化された通信経路によって安全にデータを送信することができます。 IoT Foundation は MQTTS に対応しているため、上記のようにセキュアに IoT Foundation に接続することが可能になります。

当ガイドでは、MQTT クライアント (Publisher、Subscriber) として PC を使用します。PC は、USB ドングル(USBデータ通信端末)などを使用して、SORACOM Air の SIM による通信を行っていることを前提としています。


ステップ1:Bluemix に登録し、IoT Foundation の準備をする

Bluemix へのログインと IoT Foundation サービスの追加

以下のアドレスから、Bluemix にログインします。
https://console.ng.bluemix.net/

トップメニューからダッシュボードを選択します。
ダッシュボード

ダッシュボードから「サービスまたはAPIの使用」をクリックします。
サービスまたはAPIの使用

カテゴリ「モノのインターネット」から「Internet of Things」の「詳細の表示」をクリックします。
詳細の表示

右側の選択項目はデフォルトのまま(アプリ:「アンバインドのまま」、選択済みプラン:「無料」)として、「使用」をクリックします。
使用

以下のように、IoT Foundation の管理画面が表示されますので、「Launch dashboard」を選択します。
Launch_dashboard

ダッシュボードが表示されます。
このダッシュボードは、組織ID が付与されています。この組織に他の Bluemixユーザーを招待し、共有することができます。
ダッシュボード


IoT Foundation サービスへのデバイスの追加

IoT Foundation では、接続するデバイスを事前に登録します。デバイスは登録時に発行された Token(パスワード)を含めて、IoT Foundation サーバーと接続します。
IoT Foundation のダッシュボードから「デバイス」→「デバイスの追加」をクリックします。 デバイスの追加

デバイスを登録します。
デバイスタイプは、デバイス管理のためにデバイスを分類する属性(グループ)として使用します。任意のものでかまいません。ここでは PC とします。

デバイス・タイプの作成をクリックします。
デバイス・タイプ

デバイス・タイプを入力し、「次へ」を選択します。
デバイス・タイプ

デバイス・タイプの属性、およびモデルは任意のものを選択し、デバイス・タイプを作成します。
作成したデバイス・タイプを選択して、「次へ」を選択します。 デバイス・タイプ

次にデバイスIDを入力します。
デバイスIDは、デバイスを一意に識別するものです。MAC アドレスなど、一意になるものを使用してください。

「セキュリティ」では、「次へ」を選択し、認証トークンを生成します。
次に表示される「要約」画面で、入力した内容を確認して、「追加」をクリックします。

組織ID、認証トークンなどのデバイス資格情報が表示されるので、メモしてください。
(IoT Foundation への接続に必要となります。)

参照用(Subscribe用)の API キーの取得

IoT Foundation では、Subscribe 用に API キーが必要となります。
ダッシュボードから「アクセス」→「API キー」→「API キーの生成」からAPI キーを生成してください。 APIキー
API キーが生成されますので、メモしてください。

以上で、「ステップ1:Bluemix に登録し、IoT Foundation の準備をする」は完了です。
続いて、SORACOM Beam の設定を行います。

ステップ2:SORACOM Beam の設定

ここでは、Beam の設定を行います。デバイスからBeam に送信されたデータを暗号化し IoT Foundation に送信します。 Beam

SIM の登録等については、「SORACOM の利用を始める」(https://dev.soracom.io/jp/start/begin_soracom )を参照してください。

以下の URL から SORACOM のコンソールにログインします。
https://console.soracom.io/?coverage_type=jp

グループの作成

Beam は、Air SIM のグループ単位で設定します。そのため、Air SIM を何らかのグループに所属させる必要があります。 今回は、Beam の動作確認をするための専用のグループを作成してそこに SIM を所属させます。
「SIM 管理」画面を開いて、Beam を用いた通信を行う SIM を選択し、[操作] ボタンから [所属グループ変更] を選択します。
Beamグループ

SIM の所属グループを選択するためのダイアログが表示されますので、[新しい所属グループ] ドロップダウンから [新しいグループを作成…] を選択します。

次に、以下のようなグループ作成ダイアログが表示されますので、グループの名称を入力して [グループ作成] ボタンをクリックします。 今回は hello beam というグループ名とします。 Beamグループ

[グループ作成] ボタンを押すと元の [SIM の所属グループ変更] ダイアログに戻ります。 [新しい所属グループ] ドロップボックスが、今作成した hello beam グループになっていることを確認し [グループ変更] ボタンをクリックします。
Beamグループ

Beam の設定

Beam の設定を行います。対象のSIMが含まれるグループをクリックします。
Beam設定

以下のような SORACOM Beam 設定画面が表示されますので、「+」から「MQTT entry point」を選択します。 Beam設定

MQTT entry point で以下のように設定します。
Beam設定

設定内容は以下のとおりです。

上記を入力して、「保存」をクリックします。

ステップ3:Beam を使用して IoT Foudation に接続する

Mosquitto の導入

オープンソースとして提供されている MQTT メッセージブローカーである mosquitto をインストールします。
以下のサイトからダウンロードおよびインストールしてください。
http://mosquitto.org/download/

Beam を使用して IoT Foudation に接続する

いよいよ Beam を使用して IoT Foundation に接続します。
以下の2種類の方法で IoT Foundation に接続します。

【重要】
PC が、USBドングル(USBデータ通信端末)などを使用して、SORACOM Air の SIM による通信ができていることを確認してください。

Beam を使用することなく、デバイス(PC)から直接 IoT Foundation に接続

ターミナル(コマンドプロンプト)を2つ起動し、一方で Publish し、もう一方で Subscribe します。
一方のターミナルから Subscribe のコマンドを実行します。

$mosquitto_sub -i a:k1xxx:PC:abxxxxxx  -h k1xxx.messaging.internetofthings.ibmcloud.com -u "a-k1xxx-xxxxxxxxxx" -P "xxxxxxxxxx"  -t iot-2/type/PC/id/abxxxxxx/evt/test/fmt/json

上記コマンドのオプションとその値は以下の通りです。

もう一方のターミナルから Publish のコマンドを実行します。

$mosquitto_pub -i d:k1xxx:PC:abxxxxxx  -h k1xxx.messaging.internetofthings.ibmcloud.com  -u use-token-auth  -P "ZKxxxxxxxxxx"  -t iot-2/evt/test/fmt/json  -m '{"d":{"name1”:”soracom-beam-test!","name2":100}}'

上記コマンドのオプションとその値は以下の通りです。

以下では、上部のターミナルが Subscriber、下部が Publisher となります。 Publisherからコマンドを2回実行しており、Subscriber では、その2回のメッセージを受け取っています。

subscriber

うまく接続できない場合は、ユーザーID、パスワードを確認してください。
また、大文字、小文字にも注意してください。 -d オプションにより、デバッグメッセージが表示されます。

Beam を経由して IoT Foundation に接続

Beam を経由して、IoT Foundation に接続します。
先ほどと同様にターミナル(コマンドプロンプト)を2つ起動し、一方で Publish し、もう一方で Subscribe します。 Subscribe は先ほどと同様のコマンドを実行します。

$mosquitto_sub -i a:k1xxx:PC:abxxxxxx  -h k1xxx.messaging.internetofthings.ibmcloud.com -u "a-k1xxx-xxxxxxxxxx" -P "xxxxxxxxxx"  -t iot-2/type/PC/id/abxxxxxx/evt/test/fmt/json

Publish では、以下のようにコマンドを変更します。

$mosquitto_pub -i d:k1xxx:PC:abxxxxxx  -h beam.soracom.io -t iot-2/evt/test/fmt/json  -m '{"d":{"name1”:”soracom-beam-test!","name2":100}}'

「ステップ2:SORACOM Beam の設定」で指定したように、以下を変更します。

接続先以外では、クライアントID、トピック、メッセージのみを送信します。

Beamへの送信

Beam の設定により、デバイス(PC)からは、beam.soracom.io を指定していますが、IoT Foundation に転送されています。また、ユーザーID、パスワードを除外していますが、IoT Foundation に Publish できています。
8883ポートを使用し、MQTT から MQTTS への変換も行っています。
PC を Wifi など、SORACOM Air の SIM 以外のネットワークからはアクセスできないとこも確認してください。

以下のことが言えます。

「SORACOM Beam と IBM IoT Foundation を連携する」は以上となります。
ありがとうございました。

Getting Started

SORACOM Air for セルラー

SORACOM Air for LoRaWAN

SORACOM Air for Sigfox

SORACOM Beam

SORACOM Canal/Direct/Door

SORACOM Endorse

SORACOM Funnel

SORACOM Gate

SORACOM Harvest

SORACOM Inventory

SORACOM Junction

サービス機能詳細

Developer Tools

pagetop