【IoT】0基礎玩轉華為IoT學習分享
這次有幸收到了邀請參加華為2021HDC大會, 這次旅途真是受益匪淺,認識了許多華為的技術大牛,一起討論了好多東西,也學到了很多,我將繼續努力虛心學習,不負眾望,沖沖沖~
同時也面基了咱美美噠IoT小助手小姐姐
線上線下一起學習華為云IoT? 場景體驗+動手實驗【HDC2021】0基礎玩轉華為云IoT:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=117766
1.你的職業/工作內容是什么?
我現在是一名高校大三的小萌新,計算機科學與技術專業,現任華為云HERO聯盟盟主,華為云·云享專家,華為云IoT云享專家,華為云優秀學生代表,華為鯤鵬論壇外部版主、學院團總支委員會委員,學院網絡工作室架構師,華為云優秀云創貢獻官,華為云2020年度人物-校園之星,我特別喜歡分享,就像前面老師們說的開源精神,雖然我擁有的并不多,但我很樂意分享,我會把我學到的知識呀經驗呀,總結起來說給其他小伙伴們聽,一起交流一起進步,三個臭皮匠頂個諸葛亮嘛
2. 你擅長哪些技術/語言/領域?
比較喜歡和研究云計算、大數據、物聯網、人工智能、算法、數據結構、操作系統、編譯原理、計算機組成原理、計算機體系結構、計算機網絡這一塊知識,熟悉相關的物聯網方面知識,熟悉華為海思Hi3861產品
3.?????因何參與本次活動:獎品/知識/技能/體驗/其他?
參加這次活動,主要是為了能夠提高自己的專業知識,掌握一技之長,同時通過小實踐來增加對華為云IoT產品的熟悉和使用技巧,好分享給學校里喜歡的同學們一起研究,同時也為接下來的比賽增加點思路和開發能力,同時通過這次活動也讓我認識了許多小伙伴和技術大牛們,超開心,真的是受益匪淺,學有所成
4. ?? 是否第一次使用華為云IoT產品?體驗如何
已經有數不清多少次使用華為云IoT產品了,哈哈哈,參加過好多次IoT的活動和體驗,而且也成功拿到了3個華為云IoT的微認證了,就差HCIA-IoT(瘋狂暗示小助手,嘿嘿嘿)每次都收獲滿滿,學到很多超有用的干貨,還有一些有意思的訓練營,就比如前久的HCIA-IoT訓練營,成績也蠻不錯,差點就抽到HCIA考試券了,有點小遺憾;使用華為云IoT產品有超詳細的說明文檔,但是有時候會有一點瑣碎,就是在解決一個問題時得找好多個文檔感覺有點麻煩,不過慢慢的都在變的越來越好了,而且還有超詳細的學習路線,超贊~
5.?????在體驗過程中遇到了哪些問題?如何解決的?6.?????在操作過程中有哪些小技巧可以分享給大家?
就是在第一關場景體驗那里,三個設備注冊完成,查看設備列表,顯示的是未激活狀態,但是截圖要求是在線狀態,我覺得這個小問題有點意思,留給讀者思考的空間,讓我想到了我以前常用的一個軟件來解決——華為設備模擬器HubSimulator.jar
下載鏈接給大家:https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/internet-wisdom-lamp/HubSimulator.jar
嘿嘿嘿,于是我翻箱底,找見了它,連接模擬設備后不就激活了嘛,不就是在線狀態了嘛,這也是操作過程中的小技巧可以分享給大家,理論存在實踐開始:
①服務IP:進入“服務列表”-> “物聯網”->“設備接入IoTDA”,在左側欄選擇“總覽”,復制使用MQTT/MQTTS接入信息的域名。
②設備ID:配置智慧路燈應用,注冊設備成功后返回的設備Id
③設備密鑰:配置智慧路燈應用,注冊設備成功后返回的密鑰配置好以上參數后,點擊“建立連接”按鈕。
嘿嘿嘿,連接成功,完美解決,而且這個還是中文版的還是熟悉的操作,熟悉的配方,所以接下來的步驟都輕車熟路,三下五除二,搞定~
7.??? ?對華為云IoT的產品/活動/其他 有何建議?
無論是活動還是產品,都很贊,有超詳細的教程,有豐富多彩的活動,和小獎品,還有沙箱小實踐,都是很不錯的學習機會,學練結合的方式超贊,而且還有那么多的干貨,超贊啊,受益匪淺,超詳細的學習路線,唯一就是學習微認證(基于物聯網平臺的自販機銷量分析)里的視頻,感覺聲音聽著特別難受,聲音處理的很不清晰,而且有點尖銳,很刺耳,感覺不是很好
其他IoT相關產品使用或體驗總結&技術干貨分享
華為云IoT應用側開發
為了降低應用側的開發難度、提升應用側開發效率,物聯網平臺向應用側開放了 API。開發者可以調用開放的 API,快速集成物聯網平臺的功能,如產品管理、設備管理、訂閱管理、設備
命令、規則管理等功能。
應用側需先通過 IAM 服務鑒權,獲取 Token 后,方可實現相關產品管理、設備管理等功能。
如何調用 API
華為云物聯網平臺提供多樣的北向 Restful API 接口給應用開發者,方便應用開發者能夠基于平臺提供的能力快速開發出物聯網應用。
構造請求
請求 URI 由如下部分組成:
{URI-scheme} :// {Endpoint} / {resource-path} ? {query-string}
盡管請求 URI 包含在請求消息頭中,但大多數語言或框架都要求您從請求消息中單獨傳遞它,所以在此單獨強調。
URI-scheme:表示用于傳輸請求的協議,當前所有 API 均采用 HTTPS 協議。
Endpoint:指定承載 REST 服務端點的服務器域名或 IP,不同服務不同區域的 Endpoint 不同,您可以從地區和終端節點中獲取。例如物聯網平臺在“華北-北京四”區域的 Endpoint 為
“iotda.cn-north-4.myhuaweicloud.com”。
resource-path:資源路徑,也即 API 訪問路徑。從具體 API 的 URI 模塊獲取,例如“查詢產品”API 的 resource-path 為“/v5/iot/{project_id}/products/{product_id}”。
query-string:查詢參數,是可選部分,并不是每個 API 都有查詢參數。查詢參數前面需要帶一個“?”,形式為“參數名=參數取值”,例如“limit=10”,表示查詢不超過 10 條數據。
例如您需要在物聯網平臺獲取在“華北-北京四”區域下的指定產品信息,則需使用“華北-北京四”區域的 Endpoint(iotda.cn-north-4.myhuaweicloud.com),并在查詢產品的 URI 部分找到 resource-path(/v5/iot/{project_id}/products/{product_id}),拼接起來如下所示。
https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id}
請求方法
HTTP 請求方法(也稱為操作或動詞),它告訴服務你正在請求什么類型的操作。
GET:請求服務器返回指定資源。
PUT:請求服務器更新指定資源。
POST:請求服務器新增資源或執行特殊操作。
DELETE:請求服務器刪除指定資源,如刪除對象等。
HEAD:請求服務器資源頭部。
PATCH:請求服務器更新資源的部分內容。當資源不存在的時候,PATCH 可能會去創建一個
新的資源。
在查詢產品的 URI 部分,您可以看到其請求方法為“GET”,則其請求為:
GET https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id}
請求消息頭
附加請求頭字段,如指定的 URI 和 HTTP 方法所要求的字段。例如定義消息體類型的請求頭“Content-Type”,請求鑒權信息等。
如下公共消息頭需要添加到請求中。
Content-Type:消息體的類型(格式),必選,默認取值為“application/json”,有其他取值時會在具體接口中專門說明。
X-Auth-Token:用戶 Token。當使用 Token 方式認證時,必須填充該字段,可通過調用獲取用戶 Token 接口獲取,接口返回的響應消息頭中“X-Subject-Token”就是需要獲取的用戶Token。
對于查詢產品接口,由于需要認證,所以需要添加“Content-Type”和“X-Auth-Token”到頭域,添加消息頭后的請求如下所示。
GET https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id} Content-Type: application/json X-Auth-Token:******
請求消息體
請求消息體通常以結構化格式發出,與請求消息頭中 Content-type 對應,傳遞除請求消息頭之外的內容。若請求消息體中參數支持中文,則中文字符必須為 UTF-8 編碼。
每個接口的請求消息體內容不同,也并不是每個接口都需要有請求消息體(或者說消息體為空),GET、DELETE 操作類型的接口就不需要消息體,消息體具體內容需要根據具體接口而
定。
對于創建產品接口,您可以從接口的請求部分看到所需的請求參數及參數說明。將消息體加入后的請求如下所示,加粗的斜體字段需要根據實際值填寫,如:其中 name 為產品名稱,device_type 為設備類型,protocol_type 為設備使用的協議類型。
POST https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/abab***cdcd/products Content-Type: application/json X-Auth-Token: ******** { "name" : "Thermometer", "device_type" : "Thermometer", "protocol_type" : "MQTT", "data_format" : "binary", "manufacturer_name" : "ABC", "industry" : "smartCity", "description" : "this is a thermometer produced by Huawei", "service_capabilities" : [ { "service_type" : "temperature", "service_id" : "temperature", "description" : "temperature", "properties" : [ { "unit" : "centigrade", "min" : "1", "method" : "R", "max" : "100", "data_type" : "decimal", "description" : "force", "step" : 0.1, "enum_list" : [ "string" ], "required" : true, "property_name" : "temperature", "max_length" : 100 } ], "commands" : [ { "command_name" : "reboot", "responses" : [ { "response_name" : "ACK", "paras" : [ { "unit" : "km/h", "min" : "1", "max" : "100", "para_name" : "force", "data_type" : "string", "description" : "force", "step" : 0.1, "enum_list" : [ "string" ], "required" : false, "max_length" : 100 } ] } ], "paras" : [ { "unit" : "km/h", "min" : "1", "max" : "100", "para_name" : "force", "data_type" : "string", "description" : "force", "step" : 0.1, "enum_list" : [ "string" ], "required" : false, "max_length" : 100 } ] } ], "option" : "Mandatory" } ], "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka" }
認證鑒權
調用接口有如下兩種認證方式,您可以選擇其中一種進行認證鑒權。
Token 認證:通過 Token 認證通用請求。
AK/SK 認證:通過 AK(Access Key ID)/SK(Secret Access Key)加密調用請求。
Token 認證:
Token 是服務端生成的一串字符串,作為客戶端進行請求的一個令牌。第一次登錄后,服務器生成一個 Token 并將此 Token 返回給客戶端,以后客戶端只需帶上這個 Token 前來請求數據即可,無需再次帶上用戶名和密碼。Token 有效期是 24 小時,從客戶端獲取開始算起(24 小時是相對時間),需要使用同一個 Token 鑒權時,建議緩存起來使用,避免頻繁調用。在 Token 過期前,務必刷新 Token 或重新獲取 Token,否則 Token 過期后會在服務端鑒權失敗。
如果您獲取 Token 多次,以最新的為準,前面的 Token 會被覆蓋并失效。Token 在計算機系統中代表令牌(臨時)的意思,擁有 Token 就代表擁有某種權限。Token認證就是在調用 API 的時候將 Token 加到請求消息頭,從而通過身份認證,獲得操作 API 的權限。
調用獲取 IAM 用戶 Token(使用密碼)接口獲取 Token,調用樣例如下:
POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } }
注:“username”即 IAM 用戶名、“password”即登錄華為云密碼、“domainname”即賬號名,“projectname”項目。
接口返回的響應消息頭中“X-Subject-Token”就是需要獲取的用戶 Token。獲取 Token 后,再調用其他接口時,您需要在請求消息頭中添加“X-Auth-Token”,其值為獲取到的 Token。例如 Token 值為“ABCDEFJ....”,則調用接口時將“X-Auth-Token: ABCDEFJ....”加到請求消息頭即可,如下所示。
GET https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id} Content-Type: application/json X-Auth-Token: ABCDEFJ....
AK/SK 認證:
AK/SK 簽名認證方式僅支持消息體大小 12M 以內,12M 以上的請求請使用 Token 認證。
AK/SK 認證就是使用 AK/SK 對請求進行簽名,在請求時將簽名信息添加到消息頭,從而通過身份認證。
AK(Access Key ID):訪問密鑰 ID。與私有訪問密鑰關聯的唯一標識符;訪問密鑰 ID 和私有訪問密鑰一起使用,對請求進行加密簽名。
SK(Secret Access Key):與訪問密鑰 ID 結合使用的密鑰,對請求進行加密簽名,可標識發送方,并防止請求被修改。
使用 AK/SK 認證時,您可以基于簽名算法使用 AK/SK 對請求進行簽名,也可以使用專門的簽名 SDK 對請求進行簽名。
簽名 SDK 只提供簽名功能,與服務提供的 SDK 不同,使用時請注意
返回結果
狀態碼:
請求發送以后,您會收到響應,包含狀態碼、響應消息頭和消息體。
狀態碼是一組從 1xx 到 5xx 的數字代碼,狀態碼表示了請求響應的狀態,完整的狀態碼列表請參見狀態碼。
對于創建產品接口,如果調用后返回狀態碼為“201”,則表示請求成功。
響應消息頭:
對應請求消息頭,響應同樣也有消息頭,如“Content-type”等。
對于創建產品接口,平臺會返回“Content-type”、Date 等消息頭。
響應消息體:
響應消息體通常以結構化格式返回,與響應消息頭中 Content-type 對應,傳遞除響應消息頭之外的內容。
華為云IoT開發者社區
提供 IoT開發所需要的開發者平臺、API/SDK參考、開發指南、代碼樣例、開發工具、視頻課程等各類資源
助力開發者快速完成物聯網產品與解決方案的開發
【活動合集】>>??IoT 社區活動實時更新,參與0門檻,回帖就有獎,來贏萬元大獎!
【干貨合集】>>??從入門、實戰到落地,華為“端邊云”IoT全棧開發實戰指南!
【資源匯總】>>??IoT 開發者社區,專家直播、免費資源、課程、實驗、認證,你要的通通有!
【交流求助】>>??IoT 論壇,問題求助、交流吐槽、分享學習,專家在線等你!
華為云IoT,從聯接使能、數據使能、生態使能三個維度,提供端邊云一體協同的全場景物聯網云服務,持續構建萬物互聯的智能世界。
聯接使能:通過LiteOS、IoT邊緣、設備接入管理、全球SIM聯接等服務,覆蓋端側開發、邊云接入、流量管理等環節,使能萬物極簡接入,上電即上云;
數據使能:IoT數據分析服務,以高性能的孿生建模能力構建IoT數字孿生,進一步釋放IoT數據潛力;
生態使能:IoT Stage,以標準物模型為核心,面向伙伴提供一站式的體驗、設計、集成平臺,加速伙伴商業變現。
華為云IoT聚焦物聯網基礎設施建設,聯合伙伴,共筑產業繁榮,以聯合創新的行業物聯網解決方案,加速千行百業的智能升級。
API IoT 設備接入 IoTDA
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。