摘要:實驗?zāi)康耐ㄟ^上位機(jī)向發(fā)送字符串,由解析提取出指定的屬性值,并發(fā)送到云平臺。詳見文檔阿里云開發(fā)板響應(yīng)串口指令阿里云開發(fā)板響應(yīng)串口指令第二個知識點(diǎn),怎么樣將字符串解析出關(guān)鍵屬性值。
摘要:本文介紹使用HaaS510從串口接收數(shù)據(jù),從數(shù)據(jù)中提取所需的屬性值,并發(fā)送到物聯(lián)網(wǎng)平臺的方法。從串口接收到的數(shù)據(jù)格式是JSON格式。
實驗?zāi)康模和ㄟ^上位機(jī)向haas510發(fā)送JSON字符串,由HaaS510解析提取出指定的屬性值,并發(fā)送到云平臺。
硬件:haas510 (2.0版本),USB串口
軟件:win7 x64,vscode
目錄
本實驗將電腦作為上位機(jī),上位機(jī)通過USB串口與HaaS510連接。假如您使用其他微處理器,只要能夠發(fā)送JSON格式的字符串,效果是相同的。實驗的關(guān)鍵知識點(diǎn)有2個。
第一個知識點(diǎn),怎么樣將串口接收到的數(shù)據(jù)轉(zhuǎn)換為字符串。我們知道,串口通信時,是8位8位地接收數(shù)據(jù),相當(dāng)于一個個的8位數(shù)據(jù)的數(shù)組,這個數(shù)組最初并不是字符串,我們可以將其理解為一系列的十六進(jìn)制數(shù)據(jù)。所以我們需要將這些數(shù)據(jù)還原為字符串,然后再解析。
詳見文檔
第二個知識點(diǎn),怎么樣將字符串解析出關(guān)鍵屬性值。這個知識點(diǎn)也通過文檔進(jìn)行了詳細(xì)解釋。
本文直接提供源代碼
var iot = require("iot");var network = require("network");var uart = require("uart");var net = network.openNetWorkClient();/* 設(shè)備三元組信息獲取請參考common目錄下的iot組件說明 */var productKey = "gcCCCCCCu2";var deviceName = "ceCCCCCCC01";var deviceSecret = "eeSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSb3a9";// 構(gòu)建物聯(lián)網(wǎng)連接實例var device;var lightSwitch = 0;//測試解析一個json字符串,這里并沒有解析串口的字符串,而是解析的一個固定數(shù)組的字符串。var json = "{"uid":"123456","beizhu":"5557589","shijian":"20210919"}";var obj = JSON.parse(json); // user uart var serial = uart.open({ id: "UART2" }); var msgbuf = [97, 98, 99, 100]; function ArrayToString(fileData) { var dataString = ""; for (var i = 0; i < fileData.length; i++) { dataString += String.fromCharCode(fileData[i]); } return dataString; }net.on("connect", function () { device = iot.device({ productKey: productKey, deviceName: deviceName, deviceSecret: deviceSecret, region: "cn-shanghai", success: function () { console.log("iot: [success] connect"); }, fail: function () { console.log("iot: [failed] connect"); } });})setInterval(function () { lightSwitch = 1 - lightSwitch; // user uart send data serial.write(msgbuf); //下面顯示解析過的內(nèi)容 console.log(obj); console.log(obj.uid); console.log(obj.beizhu); console.log(obj.shijian);/* 錯誤示范 iot.postProps({ payload: {LightSwitch:"0"} })*//*正確示范,要想發(fā)送屬性,就得使用stringify才行*/ device.postProps( JSON.stringify({ LightSwitch: lightSwitch }) ); }, 5000);// user uart data receive serial.on("data", function(data) { console.log("uart receive data is " + ArrayToString(data)); json = ArrayToString(data); //然后將字符串進(jìn)行解析 obj = JSON.parse(json); //下面發(fā)送幾個關(guān)鍵屬性值json = "{"uid":"123456","beizhu":"5557589","shijian":"20210919"}" device.postProps( JSON.stringify({ uid:obj.uid,beizhu:obj.beizhu,shijian:obj.shijian }) );});
其中關(guān)鍵的代碼是串口接收到數(shù)據(jù)之后,對數(shù)據(jù)進(jìn)行解析的操作。
json = ArrayToString(data); //然后將字符串進(jìn)行解析 obj = JSON.parse(json); //下面發(fā)送幾個關(guān)鍵屬性值json = "{"uid":"123456","beizhu":"5557589","shijian":"20210919"}" device.postProps( JSON.stringify({ uid:obj.uid,beizhu:obj.beizhu,shijian:obj.shijian }) );
首先連接硬件
本實驗提供的源代碼運(yùn)行之后,會有多個實驗效果,如下圖所示。不再一一截屏演示,有興趣的讀者可以查看我寫的其他HaaS510文章。
?本實驗關(guān)注的重點(diǎn)是第5個實驗效果,也就是通過上位機(jī)發(fā)送一個JSON字符串,看HaaS510能否實時解析并將值上報到云端。
?通過電腦向HaaS510的用戶串口發(fā)送數(shù)據(jù)
{"uid":"888888","beizhu":"666666","shijian":"20210920"}
可以觀察到這個數(shù)據(jù)被解析,通過調(diào)試串口也有相應(yīng)的顯示。
?數(shù)據(jù)都上傳到云端了。備注、時間、uid、主燈開關(guān)都相應(yīng)地做出了改變。
?至此,實驗成功。
工作到此處,您就可以使用HaaS510設(shè)計一臺物聯(lián)網(wǎng)設(shè)備了。使用一個MCU編寫功能代碼。將需要上傳到云端的數(shù)據(jù)以JSON格式發(fā)送給HaaS510,就可以實現(xiàn)屬性值的上報功能。怎么樣,簡單吧!
如果您還是沒有將所有的內(nèi)容全部掌握,那么建議您參考作者其他文章。
予人玫瑰,手有余香。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/121483.html
摘要:硬件,串口模塊軟件,串口助理,硬件基本介紹是經(jīng)過阿里云團(tuán)隊認(rèn)證的高性能視覺開發(fā)板。與電腦怎樣連線板子上有兩個接口,如果我們要按照阿里云的官方文檔來跑第一個程序,需要將距離針引腳近的那一個與電腦連接。 摘要:HaaS700是一款帶攝像頭的開發(fā)板,帶有物聯(lián)網(wǎng)功能,可以通過python輕應(yīng)用來開發(fā)...
摘要:背景介紹智能語音助手作為物聯(lián)網(wǎng)領(lǐng)域的一個重要生態(tài)成員,是一種全新的交互方式,它能夠解放雙手,隨時提供服務(wù),無須借助任何按鍵。學(xué)完該案例讓你對智能語音助手有一個全新的認(rèn)識??靵泶蛟炷愕闹悄苷Z音助手吧 1. 背景介紹 智能語音助手作為物聯(lián)網(wǎng)領(lǐng)域的一個重要生態(tài)成員,是一種全新的交互方式,它能夠解...
摘要:除了一些線程調(diào)度和線程模型的調(diào)整,我們還需要進(jìn)行業(yè)務(wù)邏輯上的優(yōu)化,比如縮減高消耗,低反饋的業(yè)務(wù)模塊,降低消耗,限制業(yè)務(wù)邏輯隊列內(nèi)存分配增長空間,避免某些業(yè)務(wù)場景中內(nèi)存持續(xù)增長導(dǎo)致系統(tǒng)奔潰。 1、HaaS RTC背景介紹 HaaS RTC是阿里云IoT聯(lián)合視頻云開發(fā)的IoT設(shè)備端上的實時通...
摘要:一硬件組成用作主控。型號為一塊串口屏用作顯示。型號為轉(zhuǎn)模塊用作調(diào)試。二開發(fā)環(huán)境搭建進(jìn)入官網(wǎng)下載。 一、硬件組成 esp32用作主控。(型號為:esp32_devkitc_v4)一塊串口屏用作顯示。(型號為:TJC3224T024_011)Usb轉(zhuǎn)ttl模塊用作調(diào)試。二、開發(fā)環(huán)境搭建(Ardu...
閱讀 1635·2021-11-22 13:52
閱讀 1464·2021-09-29 09:34
閱讀 2843·2021-09-09 11:40
閱讀 3087·2019-08-30 15:54
閱讀 1318·2019-08-30 15:53
閱讀 1035·2019-08-30 11:01
閱讀 1435·2019-08-29 17:22
閱讀 2011·2019-08-26 10:57