Cloud data analysis capability of IoT platform

1. 全体的な技術構成

IoT シナリオでは、多数のセンサーがバイナリデータまたは独自プロトコル形式のデータストリームを収集しており、デバイス側には構造化 JSON に変換する能力がありません。このような場合、IoT Platform のクラウドカスタマイズデータ解析機能を利用して、Modbus、電力プロトコル、Hex データ、独自プロトコルを構造化 JSON に変換し、業務システムに連携できます。

データフローの経路

メッセージの変換

2. IoT Platform の開発

メッセージ通信トピック

Hex 変換スクリプト設定

生データ:0x035e8192fd0000000d0000001b00000a8c

データサービス形式:

image.png

スクリプト設定

スクリプト全文

/**

*デバイスのカスタムトピックデータを JSON 形式に変換します。デバイスが IoT Platform にデータをレポートする際に呼び出されます

*入力パラメーター:topic 文字列、デバイスがレポートするメッセージのトピック

*入力パラメーター:rawData バイト配列、空にすることはできません

*出力パラメーター:jsonObj JSON オブジェクト、空にすることはできません

*/

function transformPayload(topic, rawData) {

var jsonObj = {}

//Raw hex data: 0x035e8192fd0000000d0000001b00000a8c

/*

{

"heartbeat": 15,

"id": 1585549855,

"steps": 2700,

"speed": 56

}

*/

if (topic.endsWith('/user/update')) {

var uint8Array = new Uint8Array(rawData.length);

for (var i = 0; i < rawData.length; i++) {

uint8Array[i] = rawData[i] & 0xff;

}

var dataView = new DataView(uint8Array.buffer, 0);



var fHead = uint8Array[0]; // コマンド

if (fHead == 0x03) {

//

jsonObj['id'] = dataView.getInt32(1);

// ハートビート

jsonObj['heartbeat'] = dataView.getInt32(5);

// 速度

jsonObj['speed'] = dataView.getInt32(9);

// 総歩数

jsonObj['steps'] = dataView.getInt32(13);

}

}

return jsonObj;

}

3. デバイス開発

デバイスが Hex 生データをレポート

// メッセージトピックに _sn=default ID を付与

const topic = '/aiDerw9823s/dn308/user/update'+'?_ sn=default';

// 生データ

var payloadArray = [ 3, 94, 129, 169, 59, 0, 0, 0, 23, 0, 0, 0, 79, 0, 0, 30, 220 ];

var payload = new Buffer(payloadArray);

// トピックにデータを公開

client. publish(topic, payload);

4. 共同デバッグログ

デバイスがレポートする元の Hex データ

スクリプト変換後のログ

業務メッセージのログ

メッセージの詳細(トピックとペイロード)

Related Articles

Explore More Special Offers

  1. 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

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.