>[success] **技術支持說明:**
>**1**.一般以自主學習為主
> **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/nb-iot)
> **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解!
<br/>
## **使用MQTT.fx連接MQTT服務器**
* 運行安裝好的MQTT.fx。

###
* 點擊設置按鈕。

###
* 點擊“+”,添加一個連接。

###
* 按圖所示輸入以下配置,然后點擊OK按鈕:
Broker Address:1.15.27.206
Broker Port:1883
Client ID:MQTT\_FX\_Client

###
* 依照前述方法打開PuTTY連接服務器并啟動MQTT服務。

###
* 點擊Connect按鈕,連接MQTT服務。

###
* MQTT服務連接成功,如圖所示。

###
* 選擇Subscribe選項卡,輸入訂閱的主題“topic/pub”,然后點擊Subscribe按鈕,如圖所示。

###
至此,MQTT.fx已經成功訂閱了“topic/pub”這個主題,接下來使用開發板往這個主題發布消息,那么MQTT.fx就會接收到這個消息。
<br/>
## **使用開發板連接MQTT服務器**
**連接調試助手**
* 使用Micro USB線把開發板連接到電腦。
###
* 按如圖紅框所示配置好端口、波特率和數據位等,然后點擊藍色三角形按鈕打開串口,打開成功后,可以額看到綠色的“COMx OPENED...”的提示。

<br/>
**AT指令測試**
* 輸入“AT”指令,確定模塊正常運行。

>[danger] 注意,需要在輸入“AT”之后輸入回車,然后再點擊“發送”按鈕。
###
* 輸入“AT+CGPADDR”指令,獲取IP地址。

>[warning] 移動網絡信號較差時可能會導致IP地址獲取失敗。如果IP地址獲取失敗,可以在移動網絡信號更好的地方或過一小段時間執行執行此命令。
###
* 輸入“AT+CMQTTSTART”,啟動MQTT功能。

###
* 輸入“AT+CMQTTACCQ=0,"CAT1Module",0”,打開MQTT連接。

###
* 輸入“AT+CMQTTCONNECT=0,"tcp://1.15.27.206:1883",60,1”,連接MQTT服務器。

###
* 輸入“AT+CMQTTSUBTOPIC=0,9,1”,訂閱主題并設置主題字符串的長度,接著串口調試助手中會出現一個尖括號。

* 在出現尖括號后,輸入待訂閱的主題“topic/sub”。

>[danger] 注意,這里輸入的結尾無需回車換行。
###
* 輸入“AT+CMQTTSUB=0”,訂閱主題。

###
至此,開發板已經成功訂閱了“topic/pub”這個主題,接下來使用MQTT.fx往這個主題發布消息,那么開發板就會接收到這個消息。
<br/>
## **MQTT.fx主題發布測試**
在確保MQTT.fx和開發板均正確連接到MQTT服務器,并訂閱“topic/pub"這個主題后,執行以下步驟:
* 點擊Publish選項卡,輸入主題“topic/pub”,并且在數據輸入框中輸入“1234567890”,然后點擊Publish按鈕,如圖所示。

###
* 在串口調試助手中可以看到開發板接收到對應的數據,如圖所示。

###
至此,已經實現了從MQTT.fx到開發板的數據數據通信了。
<br/>
## **開發板主題發布測試**
在確保MQTT.fx和開發板均正確連接到MQTT服務器,并訂閱“topic/pub"這個主題后,執行以下步驟:
* 輸入“AT+CMQTTTOPIC=0,9”,設置待發布的主題的字符串長度,接著串口調試助手中會出現一個尖括號。

###
* 在出現一個尖括號后,輸入主題“topic/pub”,如圖所示。

>[danger] 注意,這里輸入的結尾無需回車換行。
###
* 輸入“AT+CMQTTPAYLOAD=0,13”,這是要發布的消息長度,接著串口調試助手中會出現一個尖括號。

###
* 在出現一個尖括號后,輸入“{"value":123}”,如圖所示。

>[danger] 注意,這里輸入的結尾無需回車換行。
###
* 輸入“AT+CMQTTPUB=0,1,60”,向指定的主題發布這個消息。

###
* 在MQTT.fx中可以查看接收到的消息,如圖所示。

###
至此,已經實現了從開發板到MQTT.fx的數據通信了。
<br/>
**退訂主題**
在訂閱主題后,也可以退訂這個主題,退訂步驟如下:
* 輸入“AT+CMQTTUNSUB=0,9,1”,設置需要退訂的主題的長度,接著串口調試助手中會出現一個尖括號。

###
* 在出現一個尖括號后,輸入待退訂的主題“topic/sub”。

>[danger] 注意,這里輸入的結尾無需回車換行。
至此,主題退訂完畢。
<br/>
**關閉MQTT通信**
在不需要MQTT通信時,需要關閉MQTT功能,相關步驟如下:
* 輸入“AT+CMQTTDISC=0,120”,斷開MQTT連接。

###
* 輸入“AT+CMQTTREL=0”,釋放MQTT相關的資源。

###
* 輸入“AT+CMQTTSTOP”,關閉MQTT功能。

###
至此,已經成功關閉MQTT功能了。
<br/>
**查看日志**
MQTT服務器會完成記錄創建MQTT連接,以及訂閱、退訂和發布主題的流程,相關的日志片段如圖所示。

<br/>
**關閉MQTT服務**
在服務器的命令行中輸入Ctrl+C組合鍵,退出MQTT服務,如圖所示。

<br/>
## **相關的AT指令列表**
| AT 指令 | 描述 | 數據格式 | 參數說明 |
| --- | --- | --- | --- |
| AT | 測試模塊是否正常 | AT | 無 |
| AT+CGPADDR | 讀取設備IP地址 | AT+CGPADDR | 無 |
| AT+CMQTTSTART | 啟動MQTT | AT+CMQTTSTART | 無 |
| AT+CMQTTACCQ | 打開MQTT | AT+CMQTTACCQ=0,"ClientID",0 | ClientID |
| AT+CMQTTCONNECT | MQTT連接 | AT+CMQTTCONNECT=0,"server address",60,1 | 服務器地址及端口 |
| AT+CMQTTSUBTOPIC | 訂閱MQTT主題 | AT+CMQTTSUBTOPIC=0,n,1 | 主題長度 |
| AT+CMQTTSUB | 啟動訂閱 | AT+CMQTTSUB=0 | 無 |
| AT+CMQTTUNSUB | 取消訂閱 | AT+CMQTTUNSUB=0,n,1 | 主題長度 |
| AT+CMQTTTOPIC | 設置要發送信息的主題 | AT+CMQTTTOPIC=0,n | 主題長度 |
| AT+CMQTTPAYLOAD | 設置要發送的信息 | AT+CMQTTPAYLOAD=0,n | 數據長度 |
| AT+CMQTTPUB | 啟動消息發布 | AT+CMQTTPUB=0,1,60 | 無 |
| AT+CMQTTDISC | 關閉MQTT連接 | AT+CMQTTDISC=0,120 | 無 |
| AT+CMQTTREL | 釋放MQTT | AT+CMQTTREL=0 | 無 |
| AT+CMQTTSTOP | 停止MQTT服務 | AT+CMQTTSTOP | 無 |
<br/>
<br/>
## **商務合作**
如有以下需求,可掃碼添加管理員好友,注明“**商務合作**”
* 項目定制開發,技術范圍:**NB-IoT**、**CATn(4G)**、**WiFi**、**ZigBee**、**BLE Mesh**以及**STM32**、**嵌入式Linux**等;
* 入駐平臺,成為講師;
* 接項目賺外快;
* 善學坊官網:[www.sxf-iot.com](https://www.sxf-iot.com/)

(非商務合作**勿擾**,此處**非**技術支持)
- 課程簡介
- 配套資源下載
- 配套開發板簡介
- 簡介
- 硬件組成 & 技術參數
- 4G通信板 電路原理圖 & PCB圖
- STM32 Pro 主板電路原理圖&PCB圖
- STM32 Std 主板電路原理圖&PCB圖
- 板載設備使用說明
- 4G CAT1 開發指南
- 1. 4G CAT1 技術簡介
- 2. USB轉串口驅動安裝
- 3. AT 指令開發 & 測試
- 4. 基礎指令集簡介
- 5. 云端服務器
- 5.1 PuTTY 簡介與安裝
- 5.2 登錄云端服務器
- 6. 使用UDP與云端服務器通信
- 7. 使用TCP與云端服務器通信
- 8. 使用MQTT與云端服務器通信
- 8.1 MQTT協議簡介
- 8.2 實驗環境準備
- 8.3 MQTT通信實驗
- 8.4 使用手機App(選修)
- 9. 獲取經緯度
- 進階課程:《STM32開發指南——面向物聯網方向》
- 課外篇:項目實戰
- 4G Cat.1+STM32 采集溫濕度+定位到騰訊云
- 4G Cat.1+STM32 采集信息到騰訊云
- 4G Cat.1+STM32 遠程控制開關