摘要:本文主要介紹基于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 建立産品
二、開發産品模型
- 找到新增的産品,單擊“産品”進入産品界面。
- 在産品詳情“模型定義”頁面,直接上傳模型檔案BearPi_Agriculture.zip。
說明:
在産品清單中,單擊對應的産品,進入産品詳情頁。您可以檢視産品ID、産品名稱、裝置類型、資料格式、廠商名稱、所屬資源空間、協定類型等産品基本資訊。其中産品ID(product Id)是物聯網平台自動生成的,其餘資訊均是由使用者建立産品時自定義。
産品建立成功後,您可以單擊“删除”删除不再使用的産品。删除産品後,該産品下的産品模型、編解碼插件等資源将被清空,請謹慎操作。
三、注冊裝置
- 通路裝置接入服務,單擊“管理控制台”進入裝置接入控制台。
- 在左側導航欄選擇“ 裝置 > 所有裝置”,單擊右上角“注冊裝置”,按照如下表格填寫參數後,單擊“确定”。
圖4 注冊單個裝置
圖5 擷取裝置密鑰
說明:
裝置注冊成功後,請妥善保管好裝置ID和密鑰,用于裝置接入平台認證。
若密鑰丢失,隻能通過重置密鑰生成新的密鑰,無法找回注冊裝置時生成的密鑰。
使用者可在裝置清單删除不再使用的裝置。删除裝置不支援撤回,請謹慎操作。
四、Huaweicloud_iotlink SDK使用
- 下載下傳源碼:oh3.0_hwcloud_iotlink-master.zip。
- 将上述源碼直接拷貝到OpenHarmony源碼的third-party檔案目錄下,此處需要注意的是OpenHarmony和Huaweicloud_iotlink SDK共同具備的三方庫直接使用OpenHarmony的庫檔案,如CJSON和mbedtls。
- 在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的安裝以及其他配置的初始化。
- 設定參數。
圖10 參數修改
注意:
如果需要對接上雲需要根據自己的裝置修改配網資訊,wifi熱點賬号以及密碼以及自己在雲端注冊的裝置ID和裝置秘鑰,裝置僅支援2.4G頻段的wifi。
五、裝置接入平台
代碼燒錄到裝置後重新開機裝置(首次使用需重新開機兩次,第一次燒錄時可能需要配置一下内部資訊),第二次裝置重新開機之後可以正常對接華為雲。
登入平台可以看見資料上報的具體資訊,也可以進行指令下發等操作控制裝置,具體如下圖11-13。
圖11 資料上報
圖12 指令下發
圖13 日志資訊
總結:
傳統的終端作業系統主要是面向單端,基于 OpenHarmony 開源項目開發的系統似乎天生是面向萬物互聯的,可以運作在大大小小的各種智能終端上。熟悉使用OpenHarmony和華為雲IoT平台結合是物聯網開發者的必經之路。
點選關注,第一時間了解華為雲新鮮技術~