1. 程式人生 > >漫談LiteOS-端雲互通元件-MQTT開發指南(下)

漫談LiteOS-端雲互通元件-MQTT開發指南(下)

1.介紹

SDK簡介

Agent Tiny是部署在具備廣域網能力、對功耗/儲存/計算資源有苛刻限制的終端裝置上的輕量級互聯互通中介軟體,您只需呼叫API介面,便可實現裝置快速接入到物聯網平臺以及資料上報和命令接收等功能。

Agent Tiny SDK是Huawei Agent Tiny軟體開發工具包(Software Development Kit),通過Agent Tiny SDK端雲互通元件,簡單快速地實現與華為物聯網平臺安全可靠連線,可以大大減少開發週期,快速構建IoT產品。端雲互通元件可以採用MQTT、CoAP和LWM2W協議接入物聯網平臺。Agent Tiny SDK全景圖如圖1所示。

2. 開發環境

2.1硬體需求

開發計算機、執行win7及以上作業系統

野火開發板STM32F429IG、資料線

Jlink下載器、網線、USB轉串列埠

2.2軟體需求

IDE(包括GCC編譯器、JDK執行環境、make工具、Jlink驅動、Eclipse)

串列埠工具(QCOM-V1.6)

實名認證的華為雲賬號

SDK原始碼

3.接入物聯網平臺流程

根據裝置中的接入地址,可以將接入物聯網平臺分為兩種模式:

  • 直接接入物聯網平臺模式

  • 通過裝置發放服務接入物聯網平臺模式

兩種接入方式的對比:

  • 直接接入物聯網平臺示意圖

 

 

  • 通過裝置發放服務接入物聯網憑條示意圖

4. 直接接入例項 https://bbs.huaweicloud.com/blogs/143511

 

5. 經BS接入例項

本章節以LINUX平臺通過乙太網經BS接入物聯網平臺為例,詳細講述接入流程。總體操作流程參考下圖.

               

 

裝置發放服務資訊參考下表

5.1平臺側開發

進入物聯網平臺,選擇裝置發放->進入裝置發放服務。根據上圖,依次在裝置發放服務中產品匯入->裝置匯入->發放策略->發放裝置。裝置匯入成功後,記住裝置標識(nodeid),裝置id(deviceid)和金鑰(password),這三個資訊主要用於對接華為雲時的裝置鑑權。具體操作參考如下。

進入裝置發放平臺

在物聯網平臺選擇“裝置發放”,公測期間需要申請公測許可權,可在裝置發放頁面選擇申請公測許可權並填寫相關資訊,申請許可權通過後,點選“進入裝置發放服務”。

匯入產品

在裝置發放服務頁面選擇“產品匯入”->從產品中心匯入->選擇最後一個源機固定端

裝置匯入

裝置發放服務頁面選擇“裝置匯入”->點選頁面右上角“單個匯入”->彈出匯入裝置基本資訊配置,產品資訊選擇上一步匯入的產品、設定裝置標識碼、裝置名稱、訪問方式選擇“域名”

配置發放策略

在裝置發放服務頁面選擇“發放策略”->點選“裝置名稱篩選”->新增例項->在新增例項配置框內填寫關鍵字,關鍵字為裝置匯入中的裝置名稱、選擇發放區域、點選“確定”。

發放裝置

選擇“裝置倉庫”->選擇“發放裝置”->彈出對話方塊點選“確定”->立即啟動

 

啟動後,發放狀態為已發放

5.2裝置側開發

裝置側開發前準備

l  下載SDK原始碼。

l  獲取接入資訊(進入物聯網平臺,在“裝置發放 > 裝置引導對接資訊”頁面檢視“接入資訊”中的“MQTT接入方式”)

l  Linux平臺(準備好GCC編譯環境以及Make工具)

上傳原始碼到linux平臺

原始碼目錄如下

 

修改mk檔案

參考如下內容,修改targets/LINUX/GCC/config.mk

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17     CONFIG_OS_TYPE := "linux"         CONFIG_ARCH_CPU_TYPE := "x86-64"     CONFIG_SHELL_ENABLE := n     CONFIG_STIMER_ENABLE := y     CONFIG_DRIVER_ENABLE := n     CONFIG_AT_ENABLE     := n     CONFIG_CJSON_ENABLE := y     CONFIG_TCPIP_ENABLE := y     CONFIG_TCPIP_TYPE := "linux_socket"     CONFIG_DTLS_ENABLE   := y     CONFIG_DTLS_TYPE     := "mbedtls_cert"     CONFIG_MQTT_ENABLE   := y     CONFIG_MQTT_TYPE     := "paho_mqtt"     CONFIG_OC_MQTT_ENABLE := y     CONFIG_OC_MQTT_TYPE   := "soft"     CONFIG_DEMO_ENABLE := y     CONFIG_DEMO_TYPE   := "oc_tls_mqtt_bs_demo"### 產品邏輯 ###

修改接入資訊

修改demos/oc_tls_mqtt_bs_demo.c的對接資訊

1 2 3 4     #define BS_SERVER_ADDRESS           "iot-bs.cn-north-4.myhuaweicloud.com"  //裝置發放服務提供的MQTT對接地址         #define BS_SERVER_PORT              "8883"              //裝置發放服務提供的MQTT對接埠     #define DEMO_WITH_BOOTSTRAP_NODEID      "mqtt_test_001"            //裝置發放時匯入裝置的裝置標識碼     #define DEMO_WITH_BOOTSTRAP_PASSWORD     "ecc8dca5dfe4686bc71b"    //裝置發放時匯入裝置成功後提供的金鑰

make編譯生成Huawei_LiteOS.elf

執行Huawei_LiteOS.elf

5.3調測

在裝置發放服務中選擇“裝置倉庫”,檢視裝置的引導狀態為“引導成功”

登入裝置管理服務,選擇“裝置管理”,進入裝置管理服務

點選下圖左下角圖示,選擇裝置-所有裝置,可以看到裝置狀態為“線上”

點選裝置名稱,進入裝置詳情頁面

到此調測完成。

新增華為IoT小助手(微訊號:huawei-iot,回覆“部落格園”)獲取更多LiteOS課程。

&n