Full link development practice from device end to cloud end business system
1. エンタープライズ IoT プラットフォーム開発の実践
この記事を読むことで、以下のスキルを習得できます。
1. デバイスが MQTT プロトコルで Alibaba Cloud 上で購入した IoT エンタープライズインスタンスと双方向接続を確立し、デバイスが収集したデータをレポートするとともに、クラウドから発行される指示をリッスンする
2. レポートされたデータがルールエンジンの設定を通じてリアルタイムに指定データベースに保存される。コーディングは不要
3. レポートされたデータがルールエンジンの設定を通じてリアルタイムにビジネスサーバに転送される。AMQP プロトコル SDK が必要
4. ビジネスサーバが IoT Platform の API を呼び出し、デバイス側に制御コマンドを送信する
2. エンタープライズインスタンスの作成
まず、IoT Platform コンソール ( https://iot.console.aliyun.com ) にログインし、[インスタンスの購入] をクリックしてエンタープライズインスタンスを作成します。無料テスト用のパブリックインスタンスも利用できます。
次に、購入ページで実際のビジネス要件に応じて、リージョン、インスタンスタイプ、デバイス数、メッセージの上り / 下り TPS、ルールエンジン TPS などのパラメーターを選択します。[今すぐ購入] をクリックし、決済が正常に完了すると、エンタープライズインスタンスが作成されていることを確認できます。
数分後、エンタープライズインスタンスの作成が完了します。エンタープライズインスタンスに入ると、現在の仕様パラメーター、デバイスアクセスポイント情報、AMQP サブスクリプションアクセスポイント情報、およびクラウド API 呼び出しアクセスポイント情報を確認できます。以下のとおりです。
3. プロダクトの作成とデバイスの登録
エンタープライズインスタンスのデバイス管理ページで、まず「ホーム温度コントローラー」プロダクトを作成します。データ通信は JSON フォーマットで、認証方式はデバイスシークレットキーです。
プロダクトの機能定義ページで、温度と湿度の 2 つのプロパティを追加します。詳細は以下のとおりです。
最後に、デバイス管理ページでホームサーモスタットプロダクトに基づいて物理デバイスを登録し、デバイス ID 認証の 3 要素を取得します。以下のとおりです。
4. デバイスの接続とデータのレポート
デバイス ID 認証の 3 要素を取得したら、MQTT プロトコルでサブスクライブ済みのエンタープライズインスタンスに接続できます。デバイス側のアプリケーションロジックは下図のとおりです。
シミュレーションスクリプトを開始すると、デバイスがオンラインになり、物理モデルデータで最新の温度と湿度の値を確認できます。
モニタリングと運用保守のログサービスでは、デバイスがレポートしたデータのログも確認できます。以下のとおりです。
プログラミングなしでデバイスシミュレーターを使用してデバイスの動作をシミュレートすることもできます。
5. データベースへのデータ保存
まず、Table Storage インスタンス「IoTDataStore」を作成し、deviceName とタイムスタンプをプライマリキーとするデータテーブル「iot_Data」を作成します。以下のとおりです。
IoT エンタープライズインスタンスで、クラウドプロダクトフロー内にルールエンジンを作成し、データ処理 SQL を記述して、フローの送信先を前述のデータベーステーブルに設定します。
データソースを設定します。
データ送信先を設定します。
解決ルールを作成し、データフローを Table Storage 用に転送するスクリプト編集インターフェイスを開きます。
デバイスがデータをレポートすると、iot_Data データテーブルにリアルタイムで保存されたデータを確認できます。以下のとおりです。
エンタープライズインスタンスのログサービスでは、完全なフローログを確認でき、データリンクの例外のトラブルシューティングに役立ちます。以下のとおりです。
6. ビジネスサーバでのリアルタイムデータ受信
IoT シナリオの一部のデータは、ビジネスシステムでリアルタイムに処理する必要があります。サーバ側で AMQP モードをサブスクライブして、デバイスからレポートされるデータをリアルタイムで受信できます。
まず、エンタープライズインスタンスのサーバサブスクリプションに新しいコンスーマーグループを作成し、特定タイプのメッセージを受信するように設定します。以下のとおりです。
次に、クラウドプロダクトフローに解決ルールを作成し、フローの送信先を前述のサーバサブスクリプションコンスーマーグループに設定します。
最後に、ビジネスサーバ上で Alibaba Cloud アカウントの AccessKey を使用して IoT エンタープライズインスタンスとの AMQP 接続を確立するプログラムを作成します。リファレンスコードは以下のとおりです。
AMQP コールバックで受信したビジネスデータを処理します。リファレンスコードは以下のとおりです。
private static MessageListener messageListener = new MessageListener() {
@Override
public void onMessage(Message message) {
try {
//If you want to process the received message in a time-consuming way, please do it asynchronously to ensure that there is no time-consuming logic.
byte[] body = message.getBody(byte[].class);
String content = new String(body);
String topic = message.getStringProperty("topic");
String messageId = message.getStringProperty("messageId");
String tag = message.getStringProperty("tag");
logger. info("receive message"
+ ",n topic = " + topic
+ ",n messageId = " + messageId
+ ",n tag = " + tag
+ ",n content = " + content
+"n");
System.out.println();
} catch (Exception e) {
e.printStackTrace();
}
}
};
この記事を読むことで、以下のスキルを習得できます。
1. デバイスが MQTT プロトコルで Alibaba Cloud 上で購入した IoT エンタープライズインスタンスと双方向接続を確立し、デバイスが収集したデータをレポートするとともに、クラウドから発行される指示をリッスンする
2. レポートされたデータがルールエンジンの設定を通じてリアルタイムに指定データベースに保存される。コーディングは不要
3. レポートされたデータがルールエンジンの設定を通じてリアルタイムにビジネスサーバに転送される。AMQP プロトコル SDK が必要
4. ビジネスサーバが IoT Platform の API を呼び出し、デバイス側に制御コマンドを送信する
2. エンタープライズインスタンスの作成
まず、IoT Platform コンソール ( https://iot.console.aliyun.com ) にログインし、[インスタンスの購入] をクリックしてエンタープライズインスタンスを作成します。無料テスト用のパブリックインスタンスも利用できます。
次に、購入ページで実際のビジネス要件に応じて、リージョン、インスタンスタイプ、デバイス数、メッセージの上り / 下り TPS、ルールエンジン TPS などのパラメーターを選択します。[今すぐ購入] をクリックし、決済が正常に完了すると、エンタープライズインスタンスが作成されていることを確認できます。
数分後、エンタープライズインスタンスの作成が完了します。エンタープライズインスタンスに入ると、現在の仕様パラメーター、デバイスアクセスポイント情報、AMQP サブスクリプションアクセスポイント情報、およびクラウド API 呼び出しアクセスポイント情報を確認できます。以下のとおりです。
3. プロダクトの作成とデバイスの登録
エンタープライズインスタンスのデバイス管理ページで、まず「ホーム温度コントローラー」プロダクトを作成します。データ通信は JSON フォーマットで、認証方式はデバイスシークレットキーです。
プロダクトの機能定義ページで、温度と湿度の 2 つのプロパティを追加します。詳細は以下のとおりです。
最後に、デバイス管理ページでホームサーモスタットプロダクトに基づいて物理デバイスを登録し、デバイス ID 認証の 3 要素を取得します。以下のとおりです。
4. デバイスの接続とデータのレポート
デバイス ID 認証の 3 要素を取得したら、MQTT プロトコルでサブスクライブ済みのエンタープライズインスタンスに接続できます。デバイス側のアプリケーションロジックは下図のとおりです。
シミュレーションスクリプトを開始すると、デバイスがオンラインになり、物理モデルデータで最新の温度と湿度の値を確認できます。
モニタリングと運用保守のログサービスでは、デバイスがレポートしたデータのログも確認できます。以下のとおりです。
プログラミングなしでデバイスシミュレーターを使用してデバイスの動作をシミュレートすることもできます。
5. データベースへのデータ保存
まず、Table Storage インスタンス「IoTDataStore」を作成し、deviceName とタイムスタンプをプライマリキーとするデータテーブル「iot_Data」を作成します。以下のとおりです。
IoT エンタープライズインスタンスで、クラウドプロダクトフロー内にルールエンジンを作成し、データ処理 SQL を記述して、フローの送信先を前述のデータベーステーブルに設定します。
データソースを設定します。
データ送信先を設定します。
解決ルールを作成し、データフローを Table Storage 用に転送するスクリプト編集インターフェイスを開きます。
デバイスがデータをレポートすると、iot_Data データテーブルにリアルタイムで保存されたデータを確認できます。以下のとおりです。
エンタープライズインスタンスのログサービスでは、完全なフローログを確認でき、データリンクの例外のトラブルシューティングに役立ちます。以下のとおりです。
6. ビジネスサーバでのリアルタイムデータ受信
IoT シナリオの一部のデータは、ビジネスシステムでリアルタイムに処理する必要があります。サーバ側で AMQP モードをサブスクライブして、デバイスからレポートされるデータをリアルタイムで受信できます。
まず、エンタープライズインスタンスのサーバサブスクリプションに新しいコンスーマーグループを作成し、特定タイプのメッセージを受信するように設定します。以下のとおりです。
次に、クラウドプロダクトフローに解決ルールを作成し、フローの送信先を前述のサーバサブスクリプションコンスーマーグループに設定します。
最後に、ビジネスサーバ上で Alibaba Cloud アカウントの AccessKey を使用して IoT エンタープライズインスタンスとの AMQP 接続を確立するプログラムを作成します。リファレンスコードは以下のとおりです。
AMQP コールバックで受信したビジネスデータを処理します。リファレンスコードは以下のとおりです。
private static MessageListener messageListener = new MessageListener() {
@Override
public void onMessage(Message message) {
try {
//If you want to process the received message in a time-consuming way, please do it asynchronously to ensure that there is no time-consuming logic.
byte[] body = message.getBody(byte[].class);
String content = new String(body);
String topic = message.getStringProperty("topic");
String messageId = message.getStringProperty("messageId");
String tag = message.getStringProperty("tag");
logger. info("receive message"
+ ",n topic = " + topic
+ ",n messageId = " + messageId
+ ",n tag = " + tag
+ ",n content = " + content
+"n");
System.out.println();
} catch (Exception e) {
e.printStackTrace();
}
}
};
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
