Soracom

Users

ドキュメント
Home ドキュメント SORACOM Beam そのほかのサービス / サーバーに送信する

Google IoT Core 互換サービス (ClearBlade IoT Core) と接続する

SORACOM Beam を使用して、MQTT プロトコルで Google IoT Core 互換サービス (ClearBlade IoT Core) と接続します。

操作を始める前に準備が必要です (クリックして確認してください)

(1) SORACOM のアカウントを作成して IoT SIM を申し込む / デバイスを購入する

MQTT を使用できるデバイスと、そのデバイスで利用できる IoT SIM を用意します。

例:

SORACOM アカウントの作成方法、IoT SIM の申し込み方法、およびデバイスの購入方法について詳しくは、SORACOM の利用を始める を参照してください。

(2) ClearBlade アカウントと ClearBlade のプロジェクトを用意する

プロジェクト ID を確認してください。これ以降、${project_id} (例: sample-project) と表記します。

準備完了

ステップ 1: ClearBlade IoT Core を準備する

Registry を作成する

  • すでに作成済みの Registry も利用できます。
  • ClearBlade IoT Core の操作について詳しくは、Creating registries and devices を参照してください。
  1. ClearBlade Cloud Console にアクセスして、[+ADD REGISTRY][Create Registry] の順にクリックします。

    「Create a registry」画面が表示されます。

  2. 以下の項目を設定します。

    項目説明
    [Registry properties][Registry ID]任意の Registry ID を入力します。これ以降、${registry_id} (例: sample) と表記します。(*1)
    [Registry properties][Region]リージョンを選択します。これ以降、${region} (例: asia-east1) と表記します。(*1)
    [Cloud Pub/Sub topics][Select a Cloud Pub/Sub topic]Google Cloud Pub/Sub のトピックを選択します。Topic を作成するには、Google Cloud Pub/Sub のトピック画面 を利用します。
    • (*1) 作成後は変更できません。

  3. [SHOW ADVANCED OPTIONS] をクリックします。

  4. 以下の項目を設定します。

    項目説明
    [Protocols][MQTT]チェックを入れます。
    [Protocols][HTTP]チェックを外します。

  5. [CREATE] をクリックします。

秘密鍵 / 公開鍵のペアを作成する

ClearBlade IoT Core にデバイスを作成するために、秘密鍵 / 公開鍵のペアを作成します。Beam では、鍵の暗号署名アルゴリズムとして、RS256 と ES256 に対応しています。以下は、openssl コマンドを利用して RS256 の秘密鍵 / 公開鍵を作成する例です。なお、この後の手順で、公開鍵 (例: rsa_public.pem) は ClearBlade IoT Core にアップロードし、秘密鍵 (例: rsa_private.pem) は、SORACOM にアップロードします。

  1. 秘密鍵を作成します。

    $ openssl genpkey -algorithm RSA -out rsa_private.pem -pkeyopt rsa_keygen_bits:2048
    
    ....................................................................................................................+++++
    .............................................................+++++
    

    秘密鍵 (例: rsa_prvate.pem) が作成されます。

  2. 公開鍵を作成します。

    $ openssl rsa -in rsa_private.pem -pubout -out rsa_public.pem
    
    writing RSA key
    

    秘密鍵に対応する公開鍵 (例: rsa_public.pem) が作成されます。

公開鍵を ClearBlade IoT Core にアップロードしてデバイスを作成する

  1. ClearBlade Cloud Console にアクセスして、デバイスを作成する Registry をクリックします。

  2. [Devices][+] の順にクリックします。

  3. [Device ID] に任意のデバイス ID を入力します。

    デバイス ID は、これ以降、${device_id} (例: beam-device-01) と表記します。

  4. [COMMUNICATION, LOGGING, AUTHENTICATION] をクリックします。

  5. [Authentication (optional)] の以下の項目を設定します。

    項目説明
    [Input method]「Enter manually」を選択します。
    [Public key format]秘密鍵 / 公開鍵のペアを作成する で作成した公開鍵の暗号署名アルゴリズム (例: RS256) を選択します。
    [Public key value]秘密鍵 / 公開鍵のペアを作成する で作成した公開鍵 (例: rsa_public.pem) の内容を貼り付けます。

  6. [SUBMIT] をクリックします。

ステップ 2: SORACOM Beam をセットアップする

Beam の MQTT エントリポイントを設定します。

認証情報ストアに Google Cloud IoT Core 認証情報を登録する

Beam から ClearBlade IoT Core に作成したデバイスにアクセスするために、秘密鍵 / 公開鍵のペアを作成する で作成した秘密鍵を、ユーザーコンソールの認証情報ストアに登録します。認証情報ストアの「認証情報を登録」画面の表示方法については、認証情報を登録する を参照してください。

認証情報は、以下のように登録します。

項目説明
[認証情報 ID]認証情報を識別するために任意の名前を入力します。例: Google-Cloud-IoT-Core-credential
[種別]「Google Cloud IoT Core 認証情報」を選択します。
[PROJECT ID]${project_id} (例: sample-project) を入力します。
[REGION]${region} (例: asia-east1) を入力します。
[REGISTRY ID]${registry_id} (例: sample) を入力します。
[DEVICE ID]${device_id} (例: beam-device-01) を入力します。
[ALGORITHM]秘密鍵 / 公開鍵のペアを作成する で作成した秘密鍵 / 公開鍵の暗号署名アルゴリズム (例: RS256) を選択します。
[PRIVATE KEY]秘密鍵 / 公開鍵のペアを作成する で作成した秘密鍵 (例: rsa_private.pem) の内容を貼り付けます。

Beam の MQTT エントリポイントを設定する

Beam の設定はグループに対して行います

ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。

  1. SIM グループ画面で [SORACOM Beam 設定] をクリックします。

    SIM グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。

  2. [+設定を追加する][MQTT エントリポイント] の順にクリックします。

  3. 以下の項目を設定します。

    項目説明
    [設定名]MQTT エントリポイントを識別するために任意の文字列を入力します。
    スイッチクリックして「有効」にします。
    [転送先][種別]「Google Cloud IoT Core」を選択します。
    [転送先][ホスト名]転送先の FQDN (Fully Qualified Domain Name) を入力します。例: asia-east1-mqtt.clearblade.com。ClearBlade IoT Core の MQTT のホスト名については、Retargeting devices を参照してください。
    [転送先][ポート番号]転送先のポート番号を入力します。例: 8883
    [認証情報]認証情報ストアに Google Cloud IoT Core 認証情報を登録する で登録した Google Cloud IoT Core 認証情報を選択します。
    [IMSI 付与]オフにします。
    [プラットフォームバージョン]プラットフォームバージョン 201912 を選択します。詳しくは、プラットフォームバージョン 201509201912 の違い を参照してください。

  4. [保存] をクリックします。

  5. IoT SIM が所属するグループを切り替えます。

    IoT SIM の Beam の設定が完了しました。

ステップ 3: Beam を使用して ClearBlade IoT Core にデータを送信する

ここでは、オープンソースとして提供されている MQTT メッセージブローカーである mosquitto-clients の mosquitto_pub を使用して Publish します。

mosquitto-clients のインストール

mosquitto-clients は、サイト からダウンロードおよびインストールしてください。

なお、Raspberry Pi の場合は、以下のコマンドでインストールできます。

$ sudo apt install mosquitto-clients
  1. 上記 SIM グループに所属する IoT SIM を利用するデバイスで、以下のコマンドを実行します。

    デバイス ID が beam-device-01 の場合の例:

    $ mosquitto_pub -d -h beam.soracom.io -t /devices/beam-device-01/events -m "Hello, World"
    
    Client (null) sending CONNECT
    Client (null) received CONNACK (0)
    Client (null) sending PUBLISH (d0, q0, r0, m1, '/devices/beam-device-01/events', ... (12 bytes))
    Client (null) sending DISCONNECT
    

    データが Beam に送信され、ClearBlade IoT Core に転送されます。次に、データが送信されていることを確認します。

  2. ClearBlade Cloud Console にアクセスして、Registry の Telemetry Pub/Sub Topics をクリックします。

    Google Cloud Pub/Sub のトピックが表示されます。

  3. サブスクリプションをクリックします。

  4. [メッセージ][PULL] の順にクリックします。

    送信したデータが表示されます。

ステップ 4: ClearBlade IoT Core からのデータをデバイスで受信する

  1. 上記 SIM グループに所属する IoT SIM を利用するデバイスで、以下のコマンドを実行します。

    デバイス ID が beam-device-01 の場合の例:

    $ mosquitto_sub -d -h beam.soracom.io -t /devices/beam-device-01/commands/#
    
    Client (null) sending CONNECT
    Client (null) received CONNACK (0)
    Client (null) sending SUBSCRIBE (Mid: 1, Topic: /devices/beam-device-01/commands/#, QoS: 0, Options: 0x00)
    Client (null) received SUBACK
    Subscribed (mid: 1): 0
    
  2. ClearBlade Cloud Console にアクセスして、デバイスを作成した Registry をクリックします。

  3. [Devices] → データを送信するデバイス (手順 1 で指定したデバイス ID) の順にクリックします。

  4. [][Send command] の順にクリックします。

  5. [Format] で「Text」を選択し、[Command data] に「Hello!」を入力して、[SEND COMMAND] をクリックします。

    デバイスでメッセージが受信されます。

    Client (null) received PUBLISH (d0, q0, r0, m0, '/devices/beam-device-01/commands', ... (6 bytes))
    Hello!
    

デバイスでは、メッセージを受信していないときに以下のように繰り返し表示されます。

Client (null) sending PINGREQ
Client (null) received PINGRESP
Client (null) sending PINGREQ
Client (null) received PINGRESP
    :