1. 程式人生 > >使用移遠BC28 模組對接阿里雲 MQTT

使用移遠BC28 模組對接阿里雲 MQTT

        MQTT,作為目前物聯網的最主要的協議之一,受到各大雲平臺的青睞,諸如機智雲,百度雲,騰訊雲,阿里雲等,均支援裝置使用MQTT方式接入平臺。為了方便裝置的接入,各大平臺,都開源了各種程式語言版本的sdk(具體情況可參看各個平臺的說明及文件)。協議再牛逼,也離不開通訊技術的支援,隨著物聯網的發展,無線通訊模組的事業也逐漸進入一個小高潮。最近比較火技術當屬牛逼(NB)技術了。本文主要講述如何使用移遠的BC28模組的MQTT特性接入阿里雲。

        阿里雲以卓越的科技能力助力各行各業數字化轉型,為全球客戶提供領先的雲端計算、大資料、人工智慧服務,以及定製化行業解決方案。本小節介紹如何在阿里雲平臺建立產品、裝置。登入阿里雲平臺(

https://www.aliyun.com/),註冊新賬號或登陸已有賬號。在產品目錄下面選擇物聯網子目錄,然後點選物聯網平臺,進入物聯網平臺介面,如下圖

進入物聯網平臺之後,點選管理控制檯,進入產品管理介面,在產品管理介面下點選“建立產品”按鈕,彈出建立產品子對話方塊,根據提示選擇或輸入相關資訊,點選確定按鈕,完成產品建立,如下圖所示:

                                      

完成產品建立之後,需要在該產品下新增裝置。點選裝置管理選項,進入裝置管理子頁面,點選“新增裝置”按鈕,彈出新增裝置對話方塊,在產品下拉框中選擇相應的產品,輸入裝置名稱,完成新增裝置操作,如下圖

所示: 

                                       

裝置新增完成之後,點選檢視,檢視裝置詳細資訊如下圖所示: 

完成測試裝置建立工作之後,可檢視該裝置的“三元組資訊”。 “三元組資訊”包括:

在產品管理介面,單擊產品後面檢視按鈕,檢視單個產品資訊,點選訊息通訊,進入訊息通訊子介面。在需要的修改許可權的TOPIC後面單擊編輯按鈕,彈出定義TOPIC類對話方塊,在對話方塊中選擇相應的許可權,如下圖所示。 

  • ProductKey  表示產品型別, 一類產品 ProductKey 相同;
  • DeviceName 表示裝置名稱, 同一類產品中 DeviceName
    各不相同;
  • DeviceSecret 表示單個裝置工作金鑰,該引數使用者儲存不宜公開。

                                      

 平臺驗證

本小節,介紹使用MQTT命令接入阿里雲平臺,按照下述小節,完成阿里裝置資訊配置、MQTT的連線、訂閱與釋出功能

通過上述介紹,在阿里雲平臺建立的產品、裝置,獲取到如下資訊:

  • Product Key          a1uv6K0BsSI
  • Device Name        test
  • Device Secret       bCRTTFehsV8IBLIOjGqtEHCsmDIIkysa

// 檢查注網狀態。

AT+CGATT?

+CGATT: 1                  // 注網成功

OK

// 按照獲取的產品、裝置資訊,配置阿里雲裝置資訊。

AT+QMTCFG="aliauth",0,"a1uv6K0BsSI","test","bCRTTFehsV8IBLIOjGqtEHCsmDIIkysa"

OK

配置過裝置資訊之後,發起MQTT連線請求到阿里雲平臺。

// 按照產品建立提供的連結,開啟MQTT服務。

AT+QMTOPEN=0,"iot-as-mqtt.cn-shanghai.aliyuncs.com",1883

OK

+QMTOPEN: 0,0        // 開啟服務成功。

// 傳送MQTT連線請求

AT+QMTCONN=0,“clientExample”

OK

+QMTCONN: 0,0        // 連線成功。

MQTT連線成功之後,發起訂閱topic請求。

// 傳送訂閱請求。

AT+QMTSUB=0,1,"/a1uv6K0BsSI/test/get",0

OK

+QMTSUB: 0,1,0,0            // 訂閱成功。

MQTT訂閱成功後,可以接收到下行推送訊息。

// 向topic釋出訊息。

AT+QMTPUB=0,0,0,0,"/a1uv6K0BsSI/test/get"

>This is test data, hello   // 輸入資料。按CTRL+Z結束

OK

+QMTPUB: 0,1,0,0            // 釋出訊息成功。

// 收到訊息

+QMTRECV: 0,0," /a1uv6K0BsSI/test/get ",This is test data, hello

// 斷開MQTT連線。

AT+QMTDISC=0

OK

+QMTDISC: 0,