摘要:使用開(kāi)發(fā)監(jiān)控大屏平臺(tái),即物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái)。在應(yīng)用編輯器中,搭建實(shí)時(shí)氣象數(shù)據(jù)監(jiān)控面板。設(shè)置完成后,該文字組件將顯示氣象監(jiān)測(cè)設(shè)備上報(bào)的溫度值。
?
本實(shí)踐案例中使用LoRa氣象監(jiān)測(cè)設(shè)備監(jiān)測(cè)氣象信息,上報(bào)溫度、濕度、大氣壓、經(jīng)度、緯度等數(shù)據(jù),并使用IoT Studio平臺(tái)搭建監(jiān)控大屏,展示氣象監(jiān)測(cè)設(shè)備最新上報(bào)的數(shù)據(jù)和歷史數(shù)據(jù)曲線圖。
本案例的架構(gòu)圖如下。
?
實(shí)現(xiàn)過(guò)程:
購(gòu)買LoRa網(wǎng)關(guān)和LoRa氣象監(jiān)測(cè)設(shè)備硬件。
購(gòu)買已通過(guò)Link WAN認(rèn)證的產(chǎn)品(內(nèi)置Link WAN密鑰),可訪問(wèn)廣域物聯(lián)網(wǎng)或阿里云IoT元器件館。
使用LoRa設(shè)備之前,您需在物聯(lián)網(wǎng)絡(luò)管理平臺(tái)上配置LoRa網(wǎng)關(guān),搭建物聯(lián)網(wǎng)所需的網(wǎng)絡(luò)服務(wù)。
已開(kāi)通物聯(lián)網(wǎng)絡(luò)管理平臺(tái)。
如下圖所示。
稍等片刻之后,網(wǎng)關(guān)狀態(tài)顯示為在線,則表示網(wǎng)關(guān)連網(wǎng)上線成功。
將憑證授權(quán)給自己后,在物聯(lián)網(wǎng)平臺(tái)上使用該憑證創(chuàng)建連網(wǎng)方式為L(zhǎng)oRaWAN的產(chǎn)品。
配置LoRa網(wǎng)關(guān)后,您需要在物聯(lián)網(wǎng)平臺(tái)上創(chuàng)建LoRa產(chǎn)品和設(shè)備,定義物模型,編寫、提交LoRa設(shè)備的數(shù)據(jù)解析腳本。
參數(shù) | 說(shuō)明 |
---|---|
產(chǎn)品名稱 | 自定義產(chǎn)品名稱。 |
所屬品類 | 選擇為自定義品類。 |
節(jié)點(diǎn)類型 | 選擇直連設(shè)備。 |
連網(wǎng)方式 | 選擇為L(zhǎng)oRaWAN。 |
入網(wǎng)憑證 | 選擇您在物聯(lián)網(wǎng)絡(luò)平臺(tái)中創(chuàng)建并已授權(quán)的入網(wǎng)憑證。 |
數(shù)據(jù)格式 | 選擇為透?jìng)?自定義。 |
認(rèn)證方式 | 選擇為設(shè)備密鑰。 |
設(shè)備的DevEUI和PIN Code,請(qǐng)?jiān)谀脑O(shè)備標(biāo)簽上查看。
按照設(shè)備上的標(biāo)識(shí),為設(shè)備連接天線、GPS天線、電池或電源。
設(shè)備上電約2分鐘后,在物聯(lián)網(wǎng)平臺(tái)控制臺(tái)對(duì)應(yīng)的實(shí)例下的設(shè)備頁(yè)的設(shè)備列表中,該設(shè)備的狀態(tài)會(huì)顯示為在線。
物模型是將物理空間中的實(shí)體進(jìn)行數(shù)字化,并在云端構(gòu)建該實(shí)體的數(shù)據(jù)模型。在物聯(lián)網(wǎng)平臺(tái)中,定義物模型即定義產(chǎn)品功能(包括屬性、事件、服務(wù))。完成功能定義后,系統(tǒng)將自動(dòng)生成該產(chǎn)品的物模型。本示例中,氣象監(jiān)測(cè)設(shè)備上報(bào)溫度、濕度、氣壓、地理位置坐標(biāo)等信息。因此,先在物聯(lián)網(wǎng)平臺(tái)上,為這些信息定義數(shù)據(jù)模型,即定義對(duì)應(yīng)的屬性。
屬性名 | 標(biāo)識(shí)符 | 類型 | 取值范圍 | 步長(zhǎng) | 單位 | 讀寫類型 |
---|---|---|---|---|---|---|
溫度 | Temperature | double | -99~100 | 0.01 | ℃ | 讀寫 |
濕度 | Humidity | double | 1~100 | 0.01 | % | 讀寫 |
大氣壓 | Atmosphere | float | 550 ~1060 | 0.01 | hPa | 讀寫 |
經(jīng)度 | Longitude | double | -180~180 | 0.01 | ° | 讀寫 |
緯度 | Latitude | double | -90~90 | 0.01 | ° | 讀寫 |
海拔 | Altitude | float | 0~9999 | 0.01 | m | 讀寫 |
X加速度 | Acceleration_X | float | -1000~1000 | 0.01 | mg | 讀寫 |
Y加速度 | Acceleration_Y | float | -1000~1000 | 0.01 | mg | 讀寫 |
Z加速度 | Acceleration_Z | float | -1000~1000 | 0.01 | mg | 讀寫 |
運(yùn)行速度 | Speed | float | -10000 ~10000 | 0.01 | Km/h | 讀寫 |
電池電壓 | Battery_voltage | float | 0~100000 | 0.01 | V | 讀寫 |
氣體阻力 | Gas_resistance | float | -10000 ~10000 | 0.01 | 無(wú) | 讀寫 |
新增物模型的詳細(xì)操作說(shuō)明,請(qǐng)參見(jiàn)單個(gè)添加物模型。
本示例中,LoRa設(shè)備上報(bào)的數(shù)據(jù)是二進(jìn)制格式,如01880537A5109D5A00846C
。其中 1、2 字節(jié)為數(shù)據(jù)標(biāo)識(shí)碼01 88
;3、4、5字節(jié)為海拔數(shù)據(jù)altitude:339m
;6、7、8字節(jié)為緯度數(shù)據(jù)latitude:34.1925
;9、10、11字節(jié)為經(jīng)度數(shù)據(jù)longitude:108.8858
。
阿里云物聯(lián)網(wǎng)平臺(tái)的標(biāo)準(zhǔn)數(shù)據(jù)格式為Alink JSON格式,不能直接使用二進(jìn)制數(shù)據(jù)進(jìn)行業(yè)務(wù)處理;并且物聯(lián)網(wǎng)平臺(tái)下發(fā)的數(shù)據(jù)也是Alink JSON格式。您需要根據(jù)您的設(shè)備數(shù)據(jù)格式和定義的物模型,編寫數(shù)據(jù)解析腳本,提交到物聯(lián)網(wǎng)平臺(tái),以供物聯(lián)網(wǎng)平臺(tái)調(diào)用來(lái)解析上下行數(shù)據(jù)。
說(shuō)明?腳本代碼中屬性的標(biāo)識(shí)符必須與定義物模型時(shí)定義的一致。
詳細(xì)的數(shù)據(jù)解析腳本編寫指導(dǎo),請(qǐng)參見(jiàn)LoRaWAN設(shè)備數(shù)據(jù)解析。
本示例的數(shù)據(jù)解析腳本如下:
// var COMMAND_REPORT = 02;// var COMMAND_SET = 01;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";var ALINK_VERSION = "1.1";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 = {}; // var fHead = uint8Array[0]; // 第0個(gè)BYTE為上報(bào)協(xié)議。// if (fHead == COMMAND_REPORT) { jsonMap["method"] = ALINK_PROP_REPORT_METHOD; //ALink JSON格式 - 屬性上報(bào)。 jsonMap["version"] = ALINK_VERSION; //ALink JSON格式 - 協(xié)議版本號(hào)固定字段。 jsonMap["id"] = "" + 12345; //ALink JSON格式 - 標(biāo)示該次請(qǐng)求id值。 var params = {}; switch (dataView.getInt16(0)) { case 0x0267: params["Temperature"] = Math.floor(dataView.getInt16(2) * 0.1 * 10) / 10;//保留兩位小數(shù)。 params["Humidity"] = Math.floor(100 * dataView.getUint8(6) * 0.01 / 2 * 10) / 10; params["Atmosphere"] = Math.floor(dataView.getInt16(9) * 0.1 * 10) / 10; break; case 0x0188: var buffer = new Uint8Array(4); buffer[0] = 0; buffer[1] = uint8Array[2]; buffer[2] = uint8Array[3]; buffer[3] = uint8Array[4]; var latitude = new DataView(buffer.buffer, 0); params["Latitude"] = Math.floor(latitude.getInt32(0) * 0.0001 * 10000) / 10000; buffer[0] = 0; buffer[1] = uint8Array[5]; buffer[2] = uint8Array[6]; buffer[3] = uint8Array[7]; var longitude = new DataView(buffer.buffer, 0); params["Longitude"] = Math.floor(longitude.getInt32(0) * 0.0001 * 10000) / 10000; buffer[0] = 0; buffer[1] = uint8Array[8]; buffer[2] = uint8Array[9]; buffer[3] = uint8Array[10]; var altitude = new DataView(buffer.buffer, 0); params["Altitude"] = Math.floor(altitude.getInt32(0) * 0.01 * 100) / 100; break; case 0x0371: params["Acceleration_X"] = dataView.getInt16(2); params["Acceleration_Y"] = dataView.getInt16(4); params["Acceleration_Z"] = dataView.getInt16(6); break; case 0x0702: params["Battery_voltage"] = dataView.getInt16(2)/10; params["Speed"] = Math.floor(dataView.getInt16(6) * 0.01 * 100) / 100; break; case 0x0902: params["Gas_resistance"] = dataView.getInt16(2); break; } jsonMap["params"] = params; //ALink JSON 格式 - params 標(biāo)準(zhǔn)字段 } return jsonMap; } function protocolToRawData(bytes) { var method = json["method"]; var id = json["id"]; var version = json["version"]; var payloadArray = []; return payloadArray; }}
01880537A5109D5A00846C
。解析結(jié)果顯示在運(yùn)行結(jié)果欄中。
說(shuō)明?物聯(lián)網(wǎng)平臺(tái)不能調(diào)用草稿狀態(tài)的腳本,只有已提交的腳本才會(huì)被調(diào)用來(lái)解析數(shù)據(jù)。
設(shè)備上報(bào)的屬性數(shù)據(jù)經(jīng)腳本成功解析后,您可以在該設(shè)備的設(shè)備詳情頁(yè)物模型數(shù)據(jù)?>?運(yùn)行狀態(tài)頁(yè)簽下,查看設(shè)備上報(bào)的屬性數(shù)據(jù)。
IoT Studio平臺(tái),即物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái)。您可以使用IoT Studio中的Web應(yīng)用編輯器可搭建監(jiān)控大屏,用于展示設(shè)備上報(bào)的數(shù)據(jù)。
創(chuàng)建成功,自動(dòng)進(jìn)入該項(xiàng)目。
設(shè)置完成后,該文字組件將顯示氣象監(jiān)測(cè)設(shè)備上報(bào)的溫度值。
復(fù)制組件組時(shí),各組件的顯示效果配置和數(shù)據(jù)源配置同時(shí)被復(fù)制。
復(fù)制的組件組所有配置均相同。需先解散組,才能重新配置組件數(shù)據(jù)源等信息。
控制面板效果參考圖如下。
以配置溫度數(shù)據(jù)展示曲線圖為例。
說(shuō)明?如果選中時(shí)間選擇器前的復(fù)選框,表示曲線圖上顯示時(shí)間選擇器。應(yīng)用發(fā)布后,可以設(shè)置時(shí)間,查看對(duì)應(yīng)時(shí)間段的溫度數(shù)據(jù)。
應(yīng)用發(fā)布后,在左側(cè)導(dǎo)航欄中選擇
應(yīng)用設(shè)置,可以開(kāi)啟應(yīng)用Token驗(yàn)證,為應(yīng)用綁定您自己的域名等。
更多Web應(yīng)用可視化開(kāi)發(fā)操作指導(dǎo),請(qǐng)參見(jiàn)Web可視化開(kāi)發(fā)文檔。
?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/123020.html
摘要:致力于建立行業(yè)產(chǎn)品技術(shù)施工等標(biāo)準(zhǔn),為企業(yè)提供行業(yè)信息和技術(shù)交流相關(guān)規(guī)范培訓(xùn)產(chǎn)品服務(wù)展示監(jiān)督檢測(cè)和咨詢服務(wù),維護(hù)會(huì)員單位消費(fèi)者的合法權(quán)益,積極推進(jìn)智能家居行業(yè)的良性可持續(xù)發(fā)展。這是編制并發(fā)布的中國(guó)智能家居生態(tài)發(fā)展白皮書(shū),具有一定的權(quán)威性。 ...
DevEco Studio特性介紹 1 開(kāi)發(fā)平臺(tái)介紹1.1 應(yīng)用開(kāi)發(fā)1.2 設(shè)備開(kāi)發(fā) 2 分布式應(yīng)用開(kāi)發(fā)2.1 UI設(shè)計(jì)Preview2.2 調(diào)試 X 往期文章 1 開(kāi)發(fā)平臺(tái)介紹 鴻蒙開(kāi)發(fā)包含了分布式應(yīng)用開(kāi)發(fā)和分布式設(shè)備開(kāi)發(fā) 1.1 應(yīng)用開(kāi)發(fā) 鴻蒙應(yīng)用是在多設(shè)備運(yùn)行的,同一個(gè)工程可以在多設(shè)備自適應(yīng),根據(jù)設(shè)備選擇交互方式、UI布局,這個(gè)問(wèn)題還在不斷的發(fā)展和完善,需要開(kāi)發(fā)者共同推進(jìn) 鴻蒙應(yīng)用...
摘要:繼續(xù)我們的設(shè)計(jì)模式學(xué)習(xí),有個(gè)好的觀察者可以讓你開(kāi)發(fā)效率大大提高直接進(jìn)入正題,我們用一個(gè)氣象站程序來(lái)模擬此模式。內(nèi)置了觀察者模式的實(shí)現(xiàn)。 繼續(xù)我們的設(shè)計(jì)模式學(xué)習(xí),有個(gè)好的觀察者可以讓你開(kāi)發(fā)效率大大提高 直接進(jìn)入正題,我們用一個(gè)氣象站程序來(lái)模擬此模式。有一個(gè)氣象站程序,能對(duì)濕度,溫度,氣壓進(jìn)行監(jiān)測(cè)并顯示在顯示裝置上面模擬圖如下,此系統(tǒng)中有三個(gè)部分氣象站:獲取實(shí)際氣象數(shù)據(jù)的裝置Weather...
摘要:年末,年即將走進(jìn)尾聲,忙碌了一年準(zhǔn)備給家里人買一份禮物,這些天看了很多產(chǎn)品,最終選定了小米智能手環(huán)。 年末,2021年即將走進(jìn)尾聲,忙碌了一年準(zhǔn)備給家里人買一份禮物...
閱讀 2092·2021-11-15 17:57
閱讀 757·2021-11-11 16:54
閱讀 2606·2021-09-27 13:58
閱讀 4103·2021-09-06 15:00
閱讀 962·2021-09-04 16:45
閱讀 3518·2019-08-30 15:56
閱讀 1795·2019-08-30 15:53
閱讀 1638·2019-08-30 14:12