技術實踐丨手把手教你使用MQTT方式對接華為IoT平台 華為雲開發者社區


摘要:本文主要講述使用MQTT方式對接華為雲IoT平台的具體過程。

使用的方案:目標板為STM32L431BearPI(帶E53擴展板); TCPIP功能由開發板的ESP8266提供;MQTT使用Paho-Client-Embeded;IoT對接接口采用V5版本接口;Demo選擇target的MQTTdemo。

整個開發分為兩個部分:雲端開發、設備側開發。雲端開發包括創建產品、創建設備;設備側開發包括根據方案配置功能、編譯燒錄、調試。

雲端開發

創建產品模型

產品模型其實就是用戶設備的抽象。用編程術語來解釋就是產品模型是Class,設備是對象。關於產品模型的介紹以及如何創建產品模型可以參考創建產品

本文最后創建的產品模型如下:

設備屬性包括:溫度、濕度、光照強度、LED狀態、Motor狀態。設備命令包括兩條:控制LED ON/OFF,控制Motor ON/OFF。

創建設備

當產品模型創建完畢之后,我們可以創建基於該產品模型的設備。設備-->注冊設備。根據對話框填寫對應的信息。本文為了方便創建的設備標識為demoTest,秘鑰為012345678(該設備已經刪除,請勿連接)。結果如下:

注冊成功之后如下:

至此,我們已經注冊了端側設備,並可以在我們的設備-->所有設備中看到我們新注冊的設備。

設備端開發

設備端的開發主要包括配置工程、編譯燒錄、調試幾個步驟。下文基於此逐一進行介紹。

工程配置

由於SDK是一個全棧的軟件,包含所有的代碼,因此我們需要告知編譯器哪些文件需要編譯、怎么編譯這些文件,這個工作主要是由menuconfig完成。關於工程配置指導可以參考工程配置示范

進入到target/STM32L431_BearPi目錄下,輸入menuconfig(macos或者linux輸入menuconfig.py)即可進入到配置界面。

確認進入SDK的配置。

開發板的串口以及DEMO選擇

設置AT串口波特率和模組匹配;設置設備ID和秘鑰,其和在IoT平台上創建設備時候的設置一致。

TCPIP配置

在Network下,選擇TCPIP功能,並設置esp8266模式,並設置熱點的SSID和PWD。

配置SSL

配置MBEDTLS的主要原因是,IoT平台生成MQTT的三元組的時候需要使用到HMAC算法。使能TLS並選擇mbedtls並配置為CERT模式。

配置MQTT協議

在Network菜單下使能MQTT。此處配置的MQTT為標准MQTT協議。

配置IoT MQTT接入服務

在OC菜單下,使能OC MQTT(可以選擇關閉OC COAP以及OC LWM2M)。

此處我們配置的為MQTT 接入IOT的流程;沒有使能標准DEMO是因為我們使用target下的demo.

輸入Q並保存退出,會發現我們剛才的配置會保存在.config文件中。

再輸入genconfig(genconfig.py)會生成或者更新iot_config.h文件。Makefile依據.config文件選擇哪些組件編譯;編譯器會根據iot_config.h文件決定怎么編譯這個組件。

至此我們對於工程的配置已經完成。

編譯燒錄調試

編譯

功能源碼采用的是Makefile進行組織,理論上你有Make工具以及對應的交叉編譯器都可以進行編譯。本文使用的是AC6公司的SW4ST這個工具(基於Eclipse的一款工具)。其使用可以參考SW4ST使用

在SW4ST的菜單Project-->Clean下勾選清除后編譯即可編譯,並可以在Console下看到編譯結果。

如果出現FLASH溢出行為,可以將不需要的組件(stime shell)通過配置禁用;或者在Makefile中修改優化等級從-O0 -g修改為-Os。

燒錄

在SW4ST的菜單中Run-->Debug Configurations。

創建一個Ac6 STM32Debugging(使用的stlink)。

只需要保證MCU的型號一致即可。

對於BearPI而言,還需要設置重啟模式,設置為軟模式即可。

點擊apply並debug,可以看到燒錄完畢並進入調試界面。

調試

進入debug頁面之后,我們可以像其他的IDE一樣step into/step over/step out/run等調試。

同時可以接入串口,設置正確的波特率,會看到系統的輸出信息。(wifi連接上並獲取IP,向IoT平台訂閱主題成功)。

聯合調試

設備在線並上報信息

當端側顯示連接OK時候,我們在IoT平台可以看到對應的設備應該已經在線,並接收到對應數據。

IoT平台下發命令

在命令中選擇同步命令下發,可以觀測到端側設備可以接收到相關的命令。

至此,我們將設備端和IoT平台的數據交互通道打通。

 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM