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

  • 2020 年 4 月 27 日
  • 筆記

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所示。

iot-architecture.png

2. 開發環境

2.1硬體需求

開發電腦、運行win7及以上作業系統

野火開發板STM32F429IG、數據線

Jlink下載器、網線、USB轉串口

2.2軟體需求

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

串口工具(QCOM-V1.6)

實名認證的華為雲帳號

SDK源碼

3.接入物聯網平台流程

根據設備中的接入地址,可以將接入物聯網平台分為兩種模式:

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

  • 通過設備發放服務接入物聯網平台模式

兩種接入方式的對比:

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

 

direct_connect_mode.png

 

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

BS_connect_mode.png

4. 直接接入實例 //bbs.huaweicloud.com/blogs/143511

 

5. 經BS接入實例

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

               

zh-cn_bs_process.png

 

設備發放服務資訊參考下表

zh-cn_bs_operate_001.png

5.1平台側開發

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

進入設備發放平台

在物聯網平台選擇「設備發放」,公測期間需要申請公測許可權,可在設備發放頁面選擇申請公測許可權並填寫相關資訊,申請許可權通過後,點擊「進入設備發放服務」。

zh-cn_bs_cloud_001.png

導入產品

在設備發放服務頁面選擇「產品導入」->從產品中心導入->選擇最後一個源機固定端

zh-cn_bs_cloud_002.pngzh-cn_bs_cloud_003.png

設備導入

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

zh-cn_bs_cloud_005.png

配置發放策略

在設備發放服務頁面選擇「發放策略」->點擊「設備名稱篩選」->添加實例->在添加實例配置框內填寫關鍵字,關鍵字為設備導入中的設備名稱、選擇發放區域、點擊「確定」。

發放設備

選擇「設備倉庫」->選擇「發放設備」->彈出對話框點擊「確定」->立即啟動

 

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

zh-cn_bs_cloud_013.png

5.2設備側開發

設備側開發前準備

l  下載SDK源碼

l  獲取接入資訊(進入物聯網平台,在「設備發放 > 設備引導對接資訊」頁面查看「接入資訊」中的「MQTT接入方式」)

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

上傳源碼到linux平台

源碼目錄如下

 

zh-cn_dmp_device_001.png

修改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

zh-cn_dmp_device_002.png

運行Huawei_LiteOS.elf

zh-cn_dmp_device_003.png

5.3調測

在設備發放服務中選擇「設備倉庫」,查看設備的引導狀態為「引導成功」

zh-cn_bs_test_004.png

登錄設備管理服務,選擇「設備管理」,進入設備管理服務

zh-cn_bs_test_005.png

點擊下圖左下角圖標,選擇設備-所有設備,可以看到設備狀態為「在線」

zh-cn_bs_test_001.pngzh-cn_bs_test_002.png點擊設備名稱,進入設備詳情頁面

zh-cn_bs_test_003.png

到此調測完成。

添加華為IoT小助手(微訊號:huawei-iot,回復「部落格園」)獲取更多LiteOS課程。