LoginSignup
0
0

More than 3 years have passed since last update.

ゲートウェイとサブデバイスのシナリオを使用してIoTデバイスをクラウドに接続

Posted at

今回は、IoTデバイスをクラウドに接続するためのゲートウェイとサブデバイスのシナリオを見ていきます。

本ブログは英語版からの翻訳です。オリジナルはこちらからご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。

image.png

多くのIoTシナリオでは、端末機器自体がインターネットにアクセスすることはありません。では、データをクラウドに移行するにはどうすればいいのだろうか、と疑問に思うかもしれません。

クラウドのIoTプラットフォームは、MQTTと呼ばれる特殊なプロトコルを使用したデバイス上での直接接続をサポートしています。

興味深いことに、この種の接続プロトコルは、ゲートウェイのサブデバイスとして機能するようにデバイスをゲートウェイにマウントすることもサポートしており、ゲートウェイのプロキシがデバイスをIoTプラットフォームに接続することができます。その後、ゲートウェイデバイス自体がIoTゲートウェイデバイスとして機能し、IoTプラットフォームへのMQTT接続を確立してデータを送受信します。さらに、このデバイスはサブデバイスの管理も担当しています。このように、このすべては、したがって、以下の操作も含みます。

  • ゲートウェイは、サブデバイスのネットワーク・トポロジ・リレーションシップを追加します。
  • サブデバイスはゲートウェイのMQTT接続チャネルを再利用して接続を実装します。
  • ゲートウェイはサブデバイスのデータをクラウドに報告します。
  • ゲートウェイは指令を受信し、サブデバイスに転送します。
  • ゲートウェイはサブデバイスの切断を報告します。
  • ゲートウェイは、サブデバイスのネットワークトポロジ関係を削除します。

また、ローカルネットワークに応じて、ゲートウェイとサブデバイス間の通信プロトコルは、HTTP、MQTT、ZigBeeModbusBLEOPC-UAなどがあります。このロジックは、ゲートウェイによって実装されます。しかし、これらの接続機能はIoT SDKでは提供できません。

さて、上で説明したシナリオ、具体的にはゲートウェイとサブデバイスのシナリオを設定する方法を見てみましょう。そのためには、以下の手順に従う必要があります。

ネットワーク製品の作成

ネットワーク製品を作成するには、ノードタイプを選択する必要があります(このチュートリアルではゲートウェイとします)。ゲートウェイは、サブデバイスを管理し、サブデバイスに存在するトポロジカルな関係を維持し、これらのトポロジカルな関係をクラウドに同期させることができます。

image.png

参考までに、ゲートウェイとそのサブデバイス間に存在するトポロジカルな関係を下図に示します。

image.png

ゲートウェイを接続

以下のパラメータを設定することで、ゲートウェイ装置を接続することができます。

LinkKitInitParams params = new LinkKitInitParams();

DeviceInfo gatewayInfo = new DeviceInfo();
gatewayInfo.productKey = gateway.productKey;
gatewayInfo.deviceName = gateway.deviceName;
gatewayInfo.deviceSecret = gateway.deviceSecret;

params.deviceInfo = gatewayInfo;
LinkKit.getInstance().init(params, ILinkKitConnectListener)

ゲートウェイデバイスが接続されると、コンソールに "Online "のステータスで表示されます。

image.png

ネットワーク トポロジの追加

以下のパラメータを設定して、ネットワークトポロジを追加することができます。

DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.productKey = productKey;
deviceInfo.deviceName = deviceName;
deviceInfo.deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewayAddSubDevice(
    deviceInfo, // the ID of the sub-device
    SubDeviceConnectListener)

代わりにコンソールで行うことができます。

image.png

サブデバイスを接続する

以下のパラメータを設定することで、サブデバイスを接続することができます。

DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.productKey = productKey;
deviceInfo.deviceName = deviceName;
deviceInfo.deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDeviceLogin(
    deviceInfo,  // the ID of the sub-device
    ISubDeviceActionListener)

代わりにコンソールで行うことができます。

image.png

そして、サブデバイスの接続情報をコンソール上で確認することができます。

image.png

サブデバイスのデータを報告する

以下のパラメータを設定することで、サブデバイスのデータをレポートすることができます。

DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.productKey = productKey;
deviceInfo.deviceName = deviceName;
deviceInfo.deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDevicePublish(
    topic, // sub-device topic
    data, // the data
    deviceInfo, // the ID of the sub-device
    ISubDeviceActionListener)

代わりにコンソールを使用することができます。

image.png

サブデバイスにトピックを購読させる

以下のパラメータを設定することで、サブデバイスにトピックを購読させることができます。

DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.productKey = productKey;
deviceInfo.deviceName = deviceName;
deviceInfo.deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDeviceSubscribe(
    topic, // sub-device subscription topic
    deviceInfo, // the ID of the sub-device
    ISubDeviceActionListener)

サブデバイスの接続を解除する

DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.productKey = productKey;
deviceInfo.deviceName = deviceName;
deviceInfo.deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDeviceLogout(
    deviceInfo, // the ID of the sub-device
    ISubDeviceActionListener)

サブデバイスのネットワークトポロジの削除

DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.productKey = productKey;
deviceInfo.deviceName = deviceName;
deviceInfo.deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewayDeleteSubDevice(
    deviceInfo, // the ID of the sub-device
    ISubDeviceRemoveListener)

アリババクラウドは日本に2つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
アリババクラウドジャパン公式ページ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0