【摘要】 本文介紹使用野火開發板通過Agent Tiny SDK的端雲互通組件,使用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)
3.接入物聯網平台流程
根據設備中的接入地址,可以將接入物聯網平台分為兩種模式:
-
直接接入物聯網平台模式
-
通過設備發放服務接入物聯網平台模式
兩種接入方式的對比:
-
直接接入物聯網平台示意圖
- 通過設備發放服務接入物聯網憑條示意圖
4.直接接入實例
下面以野火STM32F429IG開發板通過以太網直接接入物聯網平台為例,詳細講述接入流程。總體操作流程參考下圖。
說明:野火STM32F429IG開發板的詳細資料可以從http://www.firebbs.cn/forum.php下載。
產品模型參考
設備信息參考
4.1平台側開發
進入開發中心,根據上圖,依次在開發中心中新建項目->新建產品->定義產品模型->注冊設備。
新建項目
選擇開發者中心並進入。
點擊“我的項目”中“+”,創建自己的項目。
輸入項目信息后點擊“確定”。
點擊“進入項目”。
新建產品
選擇產品開發新建產品,即可跳轉到產品模型定義界面。
選擇自定義產品方式創建產品。
補全產品的各類信息,點擊“創建”,提示創建成功后點擊“確定”,前往產品開發。
定義產品模型
選擇新建服務,開始添加產品的相關特性
給產品定義一個屬性:batteryLevel,用於設備向平台上報,定義為int型,最大值設置為100,訪問模式RWE全部勾選,完成后點擊確定;
給產品增加一個命令:cmd,設置下發命令屬性名稱:ioswitch,用於平台向設備發送命令,定義為int型,最大值99。通過上報和下發,構成了我們演示的上行和下行通道。
添加完后保存:
創建設備
創建了產品模型之后,我們需要根據模型創建具體的設備。點擊設備管理->添加真實設備,即可進入添加設備界面。
進入界面之后,選擇我們剛才建立的產品模型“sdk_test_001”,進行設備創建。
設備標識(nodeid)是識別該設備的唯一標識符,要求唯一,此處為示范,用戶使用時以實際命名為准。
此處注意,確認之后自動生成產品設備ID(deviceid)及密鑰(password),請記錄下設備標識(nodeid)、設備ID(deviceid)及密鑰(password),這三個信息主要用於對接華為雲時的設備鑒權。
創建完畢之后,即可在設備管理中看到剛剛創建的設備,此時設備狀態為離線。
到此為止,平台側開發完畢。
4.2設備側開發
設備側開發前准備
說明:SDK采用的是GCC+MakeFile模式,用戶可以根據自己的IDE開發環境靈活適配。
修改mk文件
集成開發環境搭建好后,修改targets\STM32F429IGTx_FIRE\config.mk
1 CONFIG_OS_TYPE := "liteos" 2 CONFIG_ARCH_CPU_TYPE := "armv7-m" 3 CONFIG_SHELL_ENABLE := y 4 CONFIG_STIMER_ENABLE := y 5 CONFIG_DRIVER_ENABLE := y 6 CONFIG_AT_ENABLE := y 7 CONFIG_CJSON_ENABLE := y 8 CONFIG_TCPIP_ENABLE := y 9 CONFIG_TCPIP_TYPE := "lwip_socket" 10 CONFIG_DTLS_ENABLE := y 11 CONFIG_DTLS_TYPE := "mbedtls_cert" 12 CONFIG_MQTT_ENABLE := y 13 CONFIG_MQTT_TYPE := "paho_mqtt" 14 CONFIG_OC_MQTT_ENABLE := y 15 CONFIG_OC_MQTT_TYPE := "soft" 16 CONFIG_DEMO_ENABLE := y 17 CONFIG_DEMO_TYPE := "oc_tls_mqtt_demo" ### 產品邏輯 ###
修改接入信息
參考如下內容,修改demos/oc_tls_mqtt_demo.c
1 #define DEFAULT_LIFETIME 10 2 #define DEFAULT_SERVER_IPV4 "49.4.93.24" //物聯網平台MQTT接入地址 3 #define DEFAULT_SERVER_PORT "8883" //物聯網平台MQTT接入端口 4 #define CN_MQTT_EP_NOTEID "device_001" //平台側新建的設備標識碼 5 #define CN_MQTT_EP_DEVICEID "c4ef0d27-8ea5-41aa-837f-361cff947601" //平台側設備創建成功后提供的設備ID 6 #define CN_MQTT_EP_PASSWD "314483483108d92db143" //平台側設備創建成功后提供的密鑰
編譯運行
修改完成,編譯然后debug。
4.3調測
通過串口工具,可以看到設備已經和物聯網平台建立連接。
登錄開發平台->“sdk_test_098”項目 ->設備管理,可以看到我們的設備已經上線,點擊調試產品,可以進入我們平台的設備調試界面。
可以看到所創建的設備已經上報的數據
輸入ioswitch值88,點擊“發送”。
在串口工具可以看到接收到的命令
到此調測完成。
作者:星辰27