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