Gateway and sub equipment development practice
ゲートウェイおよびサブデバイス開発の実践 (Java)
IoT (Internet of Things) の多くのシナリオでは、端末デバイス自体にインターネット接続の能力がない場合があります。その場合、データをどのようにクラウドへ送信すればよいのでしょうか。
IoT Platform は、デバイスの MQTT 直接接続をサポートするとともに、デバイスをゲートウェイに接続する方法もサポートしています。サブデバイスはゲートウェイの配下デバイスとして、ゲートウェイエージェントを介して IoT Platform にアクセスします。
このときゲートウェイデバイスは、ID 三要素を持って IoT Platform との MQTT 接続を確立し、データの送受信を行うだけでなく、サブデバイスの管理も担います。具体的には以下の機能が含まれます。
⢠ゲートウェイがサブデバイスのネットワークトポロジー関係を追加する
⢠サブデバイスがゲートウェイの MQTT 接続チャンネルを多重化してオンラインになる
⢠ゲートウェイがサブデバイスのデータをクラウドに上報する
⢠ゲートウェイが指示を受信し、サブデバイスに転送する
⢠ゲートウェイがサブデバイスのオフラインを上報する
⢠ゲートウェイがサブデバイスのネットワークトポロジー関係を削除する
ゲートウェイとサブデバイス間の通信プロトコルはローカルネットワークにより決定され、HTTP、MQTT、ZigBee、Modbus、BLE、OPC-UA などが使用できます。この部分のロジックはゲートウェイで実装され、IoT SDK にはこの機能は含まれていません。
1. ゲートウェイプロダクトの作成
ゲートウェイプロダクトを作成する際は、ノードタイプとして「ゲートウェイ」を選択する必要があります。ゲートウェイとは、サブデバイスをマウントできる直接接続デバイスのことです。ゲートウェイはサブデバイスを管理し、サブデバイスとのトポロジー関係を維持し、そのトポロジー関係をクラウドに同期します。
2. ゲートウェイデバイスのオンライン
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)
オンラインになったゲートウェイはコンソールで確認でき、デバイスステータスがオンラインとなります。
3. ネットワークトポロジー関係の追加
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewayAddSubDevice(
DeviceInfo,//サブデバイス ID
SubDeviceConnectListener)
4. サブデバイスのオンライン
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDeviceLogin(
DeviceInfo,//サブデバイス ID
ISubDeviceActionListener)
サブデバイスが参照する公式ウェブサイトへのアクセス情報
5. サブデバイスからのデータ上報
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDevicePublish(
Topic,//サブデバイストピック
Data,//データ
DeviceInfo,//サブデバイス ID
ISubDeviceActionListener)
6. サブデバイスのトピックサブスクリプション
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDeviceSubscribe(
Topic,//サブデバイスサブスクリプショントピック
DeviceInfo,//サブデバイス ID
ISubDeviceActionListener)
7. サブデバイスのオフライン
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDeviceLogout(
DeviceInfo,//サブデバイス ID
ISubDeviceActionListener)
8. サブデバイスのネットワークトポロジーの削除
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewayDeleteSubDevice(
DeviceInfo,//サブデバイス ID
ISubDeviceRemoveListener)
IoT (Internet of Things) の多くのシナリオでは、端末デバイス自体にインターネット接続の能力がない場合があります。その場合、データをどのようにクラウドへ送信すればよいのでしょうか。
IoT Platform は、デバイスの MQTT 直接接続をサポートするとともに、デバイスをゲートウェイに接続する方法もサポートしています。サブデバイスはゲートウェイの配下デバイスとして、ゲートウェイエージェントを介して IoT Platform にアクセスします。
このときゲートウェイデバイスは、ID 三要素を持って IoT Platform との MQTT 接続を確立し、データの送受信を行うだけでなく、サブデバイスの管理も担います。具体的には以下の機能が含まれます。
⢠ゲートウェイがサブデバイスのネットワークトポロジー関係を追加する
⢠サブデバイスがゲートウェイの MQTT 接続チャンネルを多重化してオンラインになる
⢠ゲートウェイがサブデバイスのデータをクラウドに上報する
⢠ゲートウェイが指示を受信し、サブデバイスに転送する
⢠ゲートウェイがサブデバイスのオフラインを上報する
⢠ゲートウェイがサブデバイスのネットワークトポロジー関係を削除する
ゲートウェイとサブデバイス間の通信プロトコルはローカルネットワークにより決定され、HTTP、MQTT、ZigBee、Modbus、BLE、OPC-UA などが使用できます。この部分のロジックはゲートウェイで実装され、IoT SDK にはこの機能は含まれていません。
1. ゲートウェイプロダクトの作成
ゲートウェイプロダクトを作成する際は、ノードタイプとして「ゲートウェイ」を選択する必要があります。ゲートウェイとは、サブデバイスをマウントできる直接接続デバイスのことです。ゲートウェイはサブデバイスを管理し、サブデバイスとのトポロジー関係を維持し、そのトポロジー関係をクラウドに同期します。
2. ゲートウェイデバイスのオンライン
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)
オンラインになったゲートウェイはコンソールで確認でき、デバイスステータスがオンラインとなります。
3. ネットワークトポロジー関係の追加
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewayAddSubDevice(
DeviceInfo,//サブデバイス ID
SubDeviceConnectListener)
4. サブデバイスのオンライン
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDeviceLogin(
DeviceInfo,//サブデバイス ID
ISubDeviceActionListener)
サブデバイスが参照する公式ウェブサイトへのアクセス情報
5. サブデバイスからのデータ上報
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDevicePublish(
Topic,//サブデバイストピック
Data,//データ
DeviceInfo,//サブデバイス ID
ISubDeviceActionListener)
6. サブデバイスのトピックサブスクリプション
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDeviceSubscribe(
Topic,//サブデバイスサブスクリプショントピック
DeviceInfo,//サブデバイス ID
ISubDeviceActionListener)
7. サブデバイスのオフライン
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewaySubDeviceLogout(
DeviceInfo,//サブデバイス ID
ISubDeviceActionListener)
8. サブデバイスのネットワークトポロジーの削除
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo. productKey = productKey;
deviceInfo. deviceName = deviceName;
deviceInfo. deviceSecret = deviceSecret;
LinkKit.getInstance().getGateway().gatewayDeleteSubDevice(
DeviceInfo,//サブデバイス ID
ISubDeviceRemoveListener)
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
