国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MQTT自定義透傳_DTU連接阿里云

這篇具有很好參考價值的文章主要介紹了MQTT自定義透傳_DTU連接阿里云。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

阿里云物聯(lián)網(wǎng)平臺定義的標(biāo)準(zhǔn)數(shù)據(jù)格式為Alink JSON。對于低配置且資源受限或者對網(wǎng)絡(luò)流量有要求的設(shè)備,不適合直接構(gòu)造JSON數(shù)據(jù)與物聯(lián)網(wǎng)平臺通信,可將原數(shù)據(jù)透傳到物聯(lián)網(wǎng)平臺。物聯(lián)網(wǎng)平臺提供數(shù)據(jù)解析功能,可以根據(jù)您提交的腳本,將數(shù)據(jù)在設(shè)備自定義格式和JSON格式之間轉(zhuǎn)換。

自定義透傳適合的場景為采用廉價單片機、功能比較弱的DTU方案,這些DTU對json這種格式解析可能比較費勁。

一、新建產(chǎn)品

1.新建產(chǎn)品

我們選擇“自定義品類”,節(jié)點類型為“直連設(shè)備”,最重要的是數(shù)據(jù)格式一定要選擇“透傳/自定義”。

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?2.添加功能

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?3.編寫解析腳本

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?

var COMMAND_REPORT = 0x00;
var COMMAND_SET = 0x01;
var ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'; //標(biāo)準(zhǔn)ALink JSON格式topic, 設(shè)備 上傳屬性數(shù)據(jù)到 云端
var ALINK_PROP_SET_METHOD = 'thing.service.property.set'; //標(biāo)準(zhǔn)ALink JSON格式topic, 云端 下發(fā)屬性控制指令 到設(shè)備端

/**
 * 將設(shè)備自定義topic數(shù)據(jù)轉(zhuǎn)換為json格式數(shù)據(jù), 設(shè)備上報數(shù)據(jù)到物聯(lián)網(wǎng)平臺時調(diào)用
 * 入?yún)ⅲ簍opic   string 設(shè)備上報消息的topic
 * 入?yún)ⅲ簉awData byte[]數(shù)組 不能為空
 * 出參:jsonObj JSON對象 不能為空
 */
function transformPayload(topic, rawData) {
	var jsonObj = {};
	return jsonObj;
}   

/**
 * 將設(shè)備的自定義格式數(shù)據(jù)轉(zhuǎn)換為Alink協(xié)議的數(shù)據(jù),設(shè)備上報數(shù)據(jù)到物聯(lián)網(wǎng)平臺時調(diào)用
 * 入?yún)ⅲ篵ytes byte[]數(shù)組 不能為空
 * 出參:jsonMap Alink JSON對象 不能為空
 */
function rawDataToProtocol(bytes) {
	var uint8Array = new Uint8Array(bytes.length);
	for (var i = 0; i < bytes.length; i++) {
		uint8Array[i] = bytes[i] & 0xff;
	}
	var dataView = new DataView(uint8Array.buffer, 0);
	var jsonMap = new Object();
	var fHead = uint8Array[0];
	if (fHead == COMMAND_REPORT) {
		jsonMap['method'] = ALINK_PROP_REPORT_METHOD;
		jsonMap['version'] = '1.0';
		jsonMap['id'] = '' + dataView.getInt32(1);
		var params = {};
		params['LightVolt'] = dataView.getInt32(5);
		params['PowerSwitch'] = uint8Array[9];
		jsonMap['params'] = params;
	}
	return jsonMap;
}

/**
 *  將Alink協(xié)議的數(shù)據(jù)轉(zhuǎn)換為設(shè)備能識別的格式數(shù)據(jù),物聯(lián)網(wǎng)平臺給設(shè)備下發(fā)數(shù)據(jù)時調(diào)用
 *  入?yún)ⅲ簀son Alink JSON對象  不能為空
 *  出參:payloadArray byte[]數(shù)組      不能為空
 *
 */
function protocolToRawData(json) {
        var method = json['method'];
        var id = json['id'];
        var version = json['version'];
        var payloadArray = [];
        if (method == ALINK_PROP_SET_METHOD)
        {
            var params = json['params'];
            var prop_int32 = params['LightVolt'];
            var prop_bool = params['PowerSwitch'];
            //按照自定義協(xié)議格式拼接 rawdata
            payloadArray = payloadArray.concat(buffer_uint8(COMMAND_SET));
            payloadArray = payloadArray.concat(buffer_int32(parseInt(id)));
            payloadArray = payloadArray.concat(buffer_int32(parseInt(prop_int32)));
            payloadArray = payloadArray.concat(buffer_uint8(prop_bool));
        }
        return payloadArray;
    }

//以下是部分輔助函數(shù)
function buffer_uint8(value) {
    var uint8Array = new Uint8Array(1);
    var dv = new DataView(uint8Array.buffer, 0);
    dv.setUint8(0, value);
    return [].slice.call(uint8Array);
}
function buffer_int16(value) {
    var uint8Array = new Uint8Array(2);
    var dv = new DataView(uint8Array.buffer, 0);
    dv.setInt16(0, value);
    return [].slice.call(uint8Array);
}
function buffer_int32(value) {
    var uint8Array = new Uint8Array(4);
    var dv = new DataView(uint8Array.buffer, 0);
    dv.setInt32(0, value);
    return [].slice.call(uint8Array);
}
function buffer_float32(value) {
    var uint8Array = new Uint8Array(4);
    var dv = new DataView(uint8Array.buffer, 0);
    dv.setFloat32(0, value);
    return [].slice.call(uint8Array);
}

// 以下為腳本模版,您可以基于以下模版進行腳本編寫

/**
 * 將設(shè)備自定義topic數(shù)據(jù)轉(zhuǎn)換為json格式數(shù)據(jù), 設(shè)備上報數(shù)據(jù)到物聯(lián)網(wǎng)平臺時調(diào)用
 * 入?yún)ⅲ簍opic   string 設(shè)備上報消息的topic
 * 入?yún)ⅲ簉awData byte[]數(shù)組 不能為空
 * 出參:jsonObj JSON對象 不能為空
 */
/* function transformPayload(topic, rawData) {
    var jsonObj = {};
    return jsonObj;
} */

/**
 * 將設(shè)備的自定義格式數(shù)據(jù)轉(zhuǎn)換為Alink協(xié)議的數(shù)據(jù),設(shè)備上報數(shù)據(jù)到物聯(lián)網(wǎng)平臺時調(diào)用
 * 入?yún)ⅲ簉awData byte[]數(shù)組 不能為空
 * 出參:jsonObj Alink JSON對象 不能為空
 */
/* function rawDataToProtocol(rawData) {
    var jsonObj = {};
    return jsonObj;
} */

/**
 *  將Alink協(xié)議的數(shù)據(jù)轉(zhuǎn)換為設(shè)備能識別的格式數(shù)據(jù),物聯(lián)網(wǎng)平臺給設(shè)備下發(fā)數(shù)據(jù)時調(diào)用
 *  入?yún)ⅲ簀sonObj Alink JSON對象  不能為空
 *  出參:rawData byte[]數(shù)組      不能為空
 *
 */
/* function protocolToRawData(jsonObj) {
    var rawdata = [];
    return rawdata;
}
 */

二、配置dtu

如下圖所示記錄好平臺的如下幾個連接參數(shù)

ProductKey

DeviceName

DeviceSecret

mqttHostUrl

port

訂閱Topic

發(fā)布Topic

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)??

我們要用到的topic為物模型通信Topic,打開產(chǎn)品詳情,并選擇Topic類列表-物模型通信Topic,我們需要的是下面紅框內(nèi)的這兩個topic

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?

配置DUT三要素及通信參數(shù)

按如下次序操作設(shè)置DTU,并將上面記錄的通信參數(shù)對應(yīng)填入。

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?

三、測試上傳

先發(fā)一個初始數(shù)據(jù)000320f2e30000000001(注意使用十六進制發(fā)送)

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?阿里云狀態(tài)變更

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?上報一條新的000320f2e30000000500

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?狀態(tài)立即更新

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?

四、測試下發(fā)

找到監(jiān)控運維,在線調(diào)試,我們在屬性調(diào)試內(nèi)設(shè)置好屬性數(shù)據(jù)然后點擊“設(shè)置”下發(fā)一條指令

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?

設(shè)備端收到的數(shù)據(jù)如下(注意:記得選擇十六進制顯示不然是亂碼)

阿里云tcp下發(fā)指令dtu,物聯(lián)網(wǎng),阿里云,云計算,物聯(lián)網(wǎng)

?本文參考自:dtu阿里云自定義透傳 (openluat.com)文章來源地址http://www.zghlxwxcb.cn/news/detail-779848.html

到了這里,關(guān)于MQTT自定義透傳_DTU連接阿里云的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【MQTT】MQTT協(xié)議與指令下發(fā);MQTT與Kafka比較

    相關(guān)文章: (一)MQTT協(xié)議與指令下發(fā);MQTT與Kafka比較 (二)用MQTT在Spring Boot項目中實現(xiàn)異步消息通信 詳細講講MQTT協(xié)議 當(dāng)涉及到 物聯(lián)網(wǎng) 和 設(shè)備通信 時,MQTT(Message Queuing Telemetry Transport)是一種輕量級、開放、靈活的協(xié)議。MQTT最初是為低帶寬、不穩(wěn)定網(wǎng)絡(luò)環(huán)境下的傳感器

    2024年02月02日
    瀏覽(13)
  • DTU和MQTT網(wǎng)關(guān)優(yōu)缺點

    DTU和MQTT網(wǎng)關(guān)優(yōu)缺點

    目前市面上有兩種設(shè)備實現(xiàn)Modbus轉(zhuǎn)MQTT網(wǎng)關(guān)。網(wǎng)關(guān)式、DTU式。 鋇錸技術(shù)網(wǎng)關(guān)內(nèi)部進行轉(zhuǎn)換 網(wǎng)關(guān)式 優(yōu)點: 1、通訊模塊和MCU分開,通訊模塊只做通訊功能,協(xié)議轉(zhuǎn)換有單獨主控MCU,“硬轉(zhuǎn)換”; 2、數(shù)據(jù)點是通過映射到主控ARM芯片,配置更方便,點表多更加無壓力; 3、網(wǎng)關(guān)式,

    2024年02月07日
    瀏覽(22)
  • MQTT.fx1.7連接阿里云mqtt

    MQTT.fx1.7連接阿里云mqtt

    1. 登錄進入阿里云mqtt控制臺 阿里云登錄 - 歡迎登錄阿里云,安全穩(wěn)定的云計算服務(wù)平臺 2. 進入自己的實例,左側(cè)菜單有產(chǎn)品和設(shè)備選項 ? 3. 創(chuàng)建產(chǎn)品 ==》 創(chuàng)建設(shè)備 【過程相對清晰,略過】 4. 進入設(shè)備列表頁,點擊具體設(shè)備,查看詳情 5. 如下圖,有個mqtt連接參數(shù),點開后

    2024年02月16日
    瀏覽(22)
  • ESP32無法連接阿里云,MQTT通訊失敗

    ESP32無法連接阿里云,MQTT通訊失敗

    小白一枚,最近在學(xué)習(xí)物聯(lián)網(wǎng),不曾想倒在門檻上。 找了個ESP32控制小燈的教程,根據(jù)教程一步一步做的,可最后就是無法激活阿里云設(shè)備,云端運行日志不停刷460代碼,MQTT消息和設(shè)備信息對不上,找不到原因。 懇請大佬幫忙解惑。 ? ? ? ? 代碼: #include WiFi.h #include PubS

    2024年02月06日
    瀏覽(14)
  • java連接mqtt(tcp、ssl單雙向)

    mqtt服務(wù)器的選擇與安裝 emqx擁有界面,可視化比較好,但是windows下安裝有問題,后面采用虛擬機安裝沒問題 mosquitto:windows下安裝簡單,使用也簡單,但是功能比較單一,只能通過命令操作,無界面 2.mosquitto的安裝: windows下搭建mqtt服務(wù)器 3.java相關(guān)坐標(biāo) 4.創(chuàng)建客戶端:發(fā)布客

    2024年04月29日
    瀏覽(233)
  • ESP8266連接阿里云通過MQTT上報狀態(tài)屬性

    ESP8266連接阿里云通過MQTT上報狀態(tài)屬性

    1、新建一個產(chǎn)品 2、添加物模型,物模型用于顯示上報的消息的 編輯草稿,也就是添加屬性 ?可以選擇標(biāo)準(zhǔn)的和自定義的,我這里選擇自定義的 設(shè)置物模型功能 我這里添加了兩個,完成后發(fā)布上線 3、到設(shè)備中添加設(shè)備,用于ESP8266連接 ?添加成功后,可以看到 ?我這里多添

    2023年04月09日
    瀏覽(88)
  • MQTT連接阿里云物聯(lián)網(wǎng)上報物模型數(shù)據(jù)

    MQTT連接阿里云物聯(lián)網(wǎng)上報物模型數(shù)據(jù)

    目錄 1. 創(chuàng)建產(chǎn)品(物聯(lián)網(wǎng)平臺 - 產(chǎn)品 - 創(chuàng)建產(chǎn)品) 2. 為產(chǎn)品添加設(shè)備 3. 添加物模型 4. mqtt.fx連接測試 5. 調(diào)試物模型 6. 使用mqtt.fx上報溫度數(shù)據(jù) ?我這里再新建一個名為 \\\"Test01\\\" 的產(chǎn)品作為演示 選擇 \\\"添加自定義功能\\\" 添加 溫度 屬性: 創(chuàng)建好后,點擊 發(fā)布上線 MQTT.fx是一款基

    2024年04月12日
    瀏覽(24)
  • ESP-01S燒錄MQTT固件連接阿里云

    ESP-01S燒錄MQTT固件連接阿里云

    用到的所有燒錄攻擊和固件都放百度云鏈接了 提取碼:qwlo 淘寶上10塊錢左右一個CH340C下載燒錄器ESP8266的就可以了。 連接好硬件打開ESPFlashDownloadTool_v3.6.2.2.exe軟件(記得放到英文目錄下不然可能打不開) ?選擇第一個 ? ?com口選擇你自己的,波特率115200,然后點start,等待下

    2024年02月01日
    瀏覽(18)
  • Android MQTT連接阿里云使用Json解析數(shù)據(jù)

    Android MQTT連接阿里云使用Json解析數(shù)據(jù)

    這里有兩種方法: 這里先介紹第一種方法: 切換到Android 目錄: 按照如下圖,添加依賴即可: 第二種方法: 打開Android Studio 然后切換到Android 目錄找到Lib文件夾,將MQTT的JAR包復(fù)制進去即可。 然后點擊project目錄然后將MQTT JAR包導(dǎo)進去 添加完成之后作為庫導(dǎo)入工程中 在MainA

    2024年02月03日
    瀏覽(20)
  • esp8266(MQTT固件)+串口助手連接阿里云服務(wù)測試

    esp8266(MQTT固件)+串口助手連接阿里云服務(wù)測試

    esp8266燒錄MQTT固件 阿里云創(chuàng)建產(chǎn)品步驟 登錄阿里云,沒有阿里云賬號的需自行注冊。 創(chuàng)建產(chǎn)品 在物聯(lián)網(wǎng)平臺下,點擊 設(shè)備管理 - 產(chǎn)品 -創(chuàng)建產(chǎn)品 產(chǎn)品名稱根據(jù)自身需求填寫,選擇自定義品類,選擇直連設(shè)備,連網(wǎng)方式選wifi,數(shù)據(jù)格式選JSON格式(配置可根據(jù)自己需求選擇)

    2023年04月08日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包