OpenHarmony3.0如何輕鬆連線華為雲IoT裝置接入平臺?

2022-09-06 18:02:08
摘要:本文主要介紹基於OpenHarmony 3.0版本來對接華為雲IoT裝置接入IoTDA,以小熊派BearPi-HM_Nano開發板為例,使用huaweicloud_iot_link SDK對接華為雲物聯網平臺的簡單流程。

本文分享自華為雲社群《OpenHarmony3.0如何輕鬆連線華為雲IoT裝置接入平臺》,作者:華為IoT雲服務 。

萬物互聯的全場景、全智慧時代,使得人均持有裝置量不斷攀升,裝置和場景的多樣性,使應用開發變得更加複雜、應用入口更加豐富。當下依託OpenHarmony框架,搭建萬物智聯底座,重構物聯網格局,是當下熱門的物聯網開發方式之一,那OpenHarmony3.0如何連線an class="nolink">華為雲IoT裝置接入平臺呢?注意事項又有哪些呢?

本文主要介紹基於OpenHarmony 3.0版本來對接華為雲IoT裝置接入IoTDA,以小熊派BearPi-HM_Nano開發板為例,使用huaweicloud_iot_link SDK對接華為雲物聯網平臺的簡單流程。

前提條件

  • 已註冊華為雲官方帳號。未註冊可單擊註冊頁面完成註冊。
  • 已完成實名制認證。未完成可在華為雲上單擊實名認證完成認證,否則無法使用裝置接入功能。
  • 已開通裝置接入服務。未開通則存取裝置接入服務,單擊「管理控制檯」後開通該服務。

硬體環境準備

BearPi-HM_Nano開發板、Type-C傳輸線、PC。

軟體環境準備

參考連結單擊這裡

圖1 軟體環境建立步驟

說明:

(1)如使用DevEco Device Tool參與偵錯的需要安裝Windows環境。

(2)獲取原始碼:如果不使用Docker方式,強烈建議採用獲取方式一。

(3)在安裝開發板中的環境的安裝gcc_riscv32步驟時,強烈建議直接下載gcc_riscv32映象,否則可能出現某些外掛下載或安裝失敗,具體操作如下圖2所示。

須知:

開原始碼量較大,下載時間可能較長,需預留好充足時間。

圖2 直接下載gcc_riscv32映象

一、建立產品

1.登入管理控制檯,單擊左側導航欄「產品」,單擊頁面右上角的「建立產品」。

2.根據頁面提示填寫引數,然後單擊「確認」,完成產品的建立。

圖3 建立產品

二、開發產品模型

  1. 找到新增的產品,單擊「產品」進入產品介面。
  2. 在產品詳情「模型定義」頁面,直接上傳模型檔案BearPi_Agriculture.zip。

說明:

在產品列表中,單擊對應的產品,進入產品詳情頁。您可以檢視產品ID、產品名稱、裝置型別、資料格式、廠商名稱、所屬資源空間、協定型別等產品基本資訊。其中產品ID(product Id)是物聯網平臺自動生成的,其餘資訊均是由使用者建立產品時自定義。

產品建立成功後,您可以單擊「刪除」刪除不再使用的產品。刪除產品後,該產品下的產品模型、編解碼外掛等資源將被清空,請謹慎操作。

三、註冊裝置

  1. 存取裝置接入服務,單擊「管理控制檯」進入裝置接入控制檯。
  2. 在左側導航欄選擇「 裝置 > 所有裝置」,單擊右上角「註冊裝置」,按照如下表格填寫引數後,單擊「確定」。

圖4 註冊單個裝置

圖5 獲取裝置金鑰

說明:

裝置註冊成功後,請妥善保管好裝置ID和金鑰,用於裝置接入平臺認證。

若金鑰丟失,只能通過重置金鑰生成新的金鑰,無法找回註冊裝置時生成的金鑰。

使用者可在裝置列表刪除不再使用的裝置。刪除裝置不支援撤回,請謹慎操作。

四、Huaweicloud_iotlink SDK使用

  1. 下載原始碼:oh3.0_hwcloud_iotlink-master.zip。
  2. 將上述原始碼直接拷貝到OpenHarmony原始碼的third-party檔案目錄下,此處需要注意的是OpenHarmony和Huaweicloud_iotlink SDK共同具備的三方庫直接使用OpenHarmony的庫檔案,如CJSON和mbedtls。
  3. 在OpenHarmony 3.0原始碼device\bearpi\bearpi_hm_nano\app\BUILD.gn中新增如下程式碼,根據#是否註釋來決定具體編譯demo的選擇。
 # "//third_party/hwcloud_iotlink/demos/test_iotlink:test_iotlink",  "//third_party/hwcloud_iotlink/demos/mqtt_tiny_v5_agriculture_demo:mqtt_tiny_v5_agriculture_demo",

圖6 demo的選擇

步驟說明:

  • 圖6中1為單元測試程式碼,可以根據修改test_main.c檔案中最後一行程式碼中,APP_FEATURE_INIT()中的入口函數,來進行不同的測試用例的執行,分別測試OSAL層不同的元件適配,包括任務、互斥鎖、號誌、佇列、以及SDK本身佇列等一系列驗證,部分內容可以對比BearPi-HM_Nano開發板的官方樣例程式碼進行對比驗證程式結果的正確性,具體如圖7。
  • 圖6中2為使用MQTT對接華為雲的demo,看一下該demo的BUILD.gn檔案,具體如圖8所示,其中A區域包含開發板硬體和wifi相關的庫檔案,B區域包括MQTT對接華為雲必須的一些庫檔案,如cJson,mqtt相關、osal相關以及設定庫檔案,C區域表示編譯該檔案時需要編譯hwcloud_iotlink庫,編譯是會按照指定路徑找到該檔案所必要的庫以及C檔案進行編譯。

圖7 單元測試

圖8 程式碼編譯檔案

圖9 demo的主函數檔案

步驟說明:

圖9中A區域表示MQTT對接華為雲所必須的一些庫檔案以及dtls的庫檔案,入口函數IoTMainTaskEntry()中務必先呼叫link_main_task_entry()函數,來確保osal的安裝以及其他設定的初始化。

  1. 設定引數。

圖10 引數修改

注意:

如果需要對接上雲需要根據自己的裝置修改配網資訊,wifi熱點賬號以及密碼以及自己在雲端註冊的裝置ID和裝置祕鑰,裝置僅支援2.4G頻段的wifi。

五、裝置接入平臺

程式碼燒錄到裝置後重啟裝置(首次使用需重啟兩次,第一次燒錄時可能需要設定一下內部資訊),第二次裝置重啟之後可以正常對接華為雲。

登入平臺可以看見資料上報的具體資訊,也可以進行命令下發等操作控制裝置,具體如下圖11-13。

圖11 資料上報

圖12 命令下發

圖13 紀錄檔資訊

總結:

傳統的終端作業系統主要是面向單端,基於 OpenHarmony 開源專案開發的系統似乎天生是面向萬物互聯的,可以執行在大大小小的各種智慧終端上。熟悉使用OpenHarmony和華為雲IoT平臺結合是物聯網開發者的必經之路。

 

點選關注,第一時間瞭解華為雲新鮮技術~