華為云平臺(tái)提供強(qiáng)大的云服務(wù),其中包括對(duì)MQTT(Message Queuing Telemetry Transport)協(xié)議的支持。MQTT是一種輕量級(jí)通信協(xié)議,在物聯(lián)網(wǎng)(IoT)領(lǐng)域廣泛應(yīng)用,用于實(shí)現(xiàn)設(shè)備間可靠的數(shù)據(jù)傳輸和通信。本教程將逐步介紹如何使用華為云提供的MQTT服務(wù),包括創(chuàng)建MQTT實(shí)例、設(shè)備接入、消息發(fā)布和訂閱等關(guān)鍵步驟。
如需阿里云、百度云、騰訊云、OneNET及EMQX平臺(tái)的MQTT設(shè)備連接與通信視頻教程,請(qǐng)點(diǎn)擊:《MQTT設(shè)備連接與通訊+LoRaWAN網(wǎng)關(guān)產(chǎn)品快速入門(mén)教程》
一、華為云開(kāi)通MQTT服務(wù)
首先,完成注冊(cè)并進(jìn)行實(shí)名認(rèn)證。接下來(lái),我們進(jìn)入[產(chǎn)品]→[物聯(lián)網(wǎng)IoT]→[設(shè)備接入]頁(yè)面,選擇[管理控制臺(tái)],即可進(jìn)入華為云物聯(lián)網(wǎng)平臺(tái)。
進(jìn)入控制臺(tái)后,在[IoTDA實(shí)例]下根據(jù)實(shí)際情況選擇服務(wù)套餐。教程中選擇[開(kāi)通免費(fèi)單元]。
創(chuàng)建成功后刷新頁(yè)面,即可看到[設(shè)備接入]欄下可以開(kāi)始創(chuàng)建設(shè)備。
首先,在[總覽]下,您可以查看[接入信息],點(diǎn)擊即可獲取MQTT通信的接入地址和端口號(hào)。
在[接入信息]下的[相關(guān)文檔]中,您可以直接快速訪問(wèn)華為云的相關(guān)手冊(cè)。
如有任何疑問(wèn),可以通過(guò)[相關(guān)文檔]進(jìn)行查詢。
接下來(lái),返回設(shè)備[接入頁(yè)面],進(jìn)入[產(chǎn)品]頁(yè)面,在右上角點(diǎn)擊[創(chuàng)建產(chǎn)品],開(kāi)始創(chuàng)建即將接入設(shè)備的信息。
在這里,選擇剛剛創(chuàng)建的資源空間作為[所屬資源空間]。根據(jù)實(shí)際情況填寫(xiě)[產(chǎn)品名稱],可任意設(shè)置。[協(xié)議類型]選擇[MQTT]。[數(shù)據(jù)格式]選擇[JSON]。[廠家名稱]和[設(shè)備類型]可以根據(jù)實(shí)際情況填寫(xiě)。
完成后,點(diǎn)擊確認(rèn)即可。
接下來(lái),進(jìn)入[設(shè)備]→[所有設(shè)備],點(diǎn)擊注冊(cè)設(shè)備。
在[所屬資源空間]和[所屬產(chǎn)品]中選擇剛剛創(chuàng)建的選項(xiàng)。在[產(chǎn)品標(biāo)識(shí)碼]中隨意填寫(xiě)一個(gè)值,只需確保在一個(gè)產(chǎn)品內(nèi)不重復(fù)即可。[設(shè)備認(rèn)證類型]中可以選擇[密鑰]或[證書(shū)]兩種方式,根據(jù)實(shí)際情況進(jìn)行選擇。教程中選擇了[密鑰]認(rèn)證,確認(rèn)其他信息無(wú)誤后,點(diǎn)擊確定。接下來(lái)會(huì)出現(xiàn)創(chuàng)建成功的提示。
請(qǐng)注意,如果是自動(dòng)生成的密鑰,請(qǐng)務(wù)必保存好。密鑰僅能查看一次。
確認(rèn)密鑰保存成功后,點(diǎn)擊[保存并關(guān)閉],即可看到設(shè)備列表成功添加了我們剛剛創(chuàng)建的產(chǎn)品。點(diǎn)擊詳情,進(jìn)入產(chǎn)品詳情頁(yè)面。
在該頁(yè)面上,您可以獲取與產(chǎn)品相關(guān)的信息。
至此,我們已成功開(kāi)通了華為云的MQTT服務(wù),并成功創(chuàng)建了設(shè)備。
二、獲取MQTT通訊要素
開(kāi)始模擬MQTT通信之前,需要獲取幾個(gè)通信所需的參數(shù)。首先,讓我們進(jìn)入剛剛創(chuàng)建的產(chǎn)品頁(yè)面。
進(jìn)入Topic管理頁(yè)面。
在這里,我們可以找到華為云預(yù)設(shè)的一些[系統(tǒng)預(yù)置Topic]。根據(jù)需求選擇相應(yīng)的Topic使用即可。
接下來(lái),我們需要獲取“Client ID”、“Username”和“Password”。可以使用一個(gè)工具來(lái)直接生成這些參數(shù)。在[總覽]→[接入信息]→[相關(guān)文檔/資源]中,點(diǎn)擊[泛協(xié)議接入]進(jìn)入幫助文檔。
在文檔中,選擇任意一個(gè)設(shè)備接入的實(shí)例。
找到[連接鑒權(quán)]下的一個(gè)在線工具,直接點(diǎn)擊即可。在工具中填寫(xiě)我們注冊(cè)設(shè)備的[設(shè)備ID]和[密鑰],即可生成連接所需的信息(ClientId、Username、Password)。
至此,我們已獲取到所有通信所需的參數(shù)。
三、產(chǎn)品接入使用MQTT上報(bào)數(shù)據(jù)
在本教程中,我們使用串口服務(wù)器NB144設(shè)備模擬實(shí)際通信情境。您可以根據(jù)實(shí)際情況選擇設(shè)備或使用軟件進(jìn)行模擬。關(guān)于產(chǎn)品的使用方法,請(qǐng)參考相關(guān)視頻或查閱相關(guān)手冊(cè)??梢栽诋a(chǎn)品的相關(guān)軟件中找到所需的工具。現(xiàn)在,我們開(kāi)始模擬真實(shí)的通信過(guò)程,打開(kāi)NB144的上位機(jī)軟件。
首先,將產(chǎn)品的網(wǎng)絡(luò)參數(shù)中的[IP地址類型]修改為[動(dòng)態(tài)IP]。
進(jìn)入端口1設(shè)置,將工作模式修改為[MQTT客戶端]模式,選擇標(biāo)準(zhǔn)的[華為云]作為平臺(tái)。
然后依次填入[目標(biāo)IP]、[目標(biāo)端口]、[Client ID]、[Device name]和[Device secret]。訂閱和發(fā)布根據(jù)實(shí)際情況填寫(xiě)。在教程中,我們選擇一個(gè)系統(tǒng)發(fā)布主題進(jìn)行數(shù)據(jù)傳輸,訂閱主題留空。
保存并重新啟動(dòng)后,稍作等待,您將可以在華為云平臺(tái)的后臺(tái)看到設(shè)備成功接入。
至此,我們成功將產(chǎn)品通過(guò)MQTT接入華為云。接下來(lái),使用任意的串口調(diào)試工具模擬設(shè)備數(shù)據(jù)上報(bào)功能。
在本教程中,我們使用了XCOM工具,打開(kāi)工具,確認(rèn)串口參數(shù)是否正確,然后[打開(kāi)串口]。
上報(bào)數(shù)據(jù)的規(guī)則,請(qǐng)查閱相關(guān)手冊(cè)。由于篇幅限制,不展開(kāi)講解。直接發(fā)送數(shù)據(jù)上報(bào),然后在產(chǎn)品的[設(shè)備影子]頁(yè)面下,即可看到剛才上報(bào)的數(shù)據(jù)。
到這里,我們已成功連接到華為云的MQTT平臺(tái),并實(shí)現(xiàn)了數(shù)據(jù)上報(bào)功能。