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