資料下載: https://gitee.com/yang456/learn-m5311.git
模塊鏈接: https://item.taobao.com/item.htm?ft=t&id=645162253935
實物圖(以最新版為准)
引腳說明
5V: 模組5V供電引腳
G: GND
VBAT: 3.1V ~ 4.2V供電引腳
RST: 復位模組引腳(拉低復位)
TX: 模組串口通信發送數據引腳
RX: 模組串口通信接收數據引腳
PSM: 模組休眠喚醒引腳
PWR: 模組開關機引腳
手機卡安裝示意圖
注意缺口方向
測試AT(使用串口模塊測試)
1,串口模塊連接示意圖
2,把PWR引腳和GND引腳連接在一起約1S時間,然后去掉連接
模組開機以后打印如下
2,打開資料里面的數據手冊
超過20s不和模組進行AT指令通信,模組就會進入睡眠模式.
進入睡眠模式以后需要把PSM引腳接到低電平進行喚醒
3,一般在測試時,先發送指令設置模組不主動休眠
AT+SM=LOCK
測試連接TCP服務器
1.安裝好手機卡和天線
2.給模組重新開機
每次安裝好手機卡以后復位模組讓模組重新啟動,
正常情況下等待3S左右模組會顯示已經識別到SIM卡
等待10S左右模組注冊上網絡以后會顯示模組的IP地址
3.依次發送以下指令
控制模組開機
AT
AT+SM=LOCK
AT+CPIN?
AT+CEREG?
AT+CGACT?
模塊根據指令回復如下方可進行下面的步驟
4.連接TCP服務器
例如連接IP地址為 47.92.31.46 端口號為 10002的TCP服務器
模組總共有5路socket(0-4)使用,下面是使用socket0連接通信
4.使用socket0發送數據給服務器
發送字符串 發送 stringdata
AT+IPSEND=0,0,"stringdata"
發送16進制數據 發送 0x01 0x02 0x55 0xff
AT+IPSEND=0,4,"010255ff"
5.socket0接收數據
模組默認是不主動把接收的數據通過串口發送出來的.......
1.數據標識+透傳的數據 模式接收數據
AT+IPRCFG=1,0,0
模組接收字符串數據(string)如下
+IPRD: 0,6, 是數據標識, string是接收的數據(最后有個換行哈,是模組自己添加的)
模組接收16進制數據(0x01 0x02 0x03)如下
+IPRD: 0,3, 是數據標識, 后面不是亂碼哈,是因為字符串顯示后面是16進制的 010203
(數據最后有個換行哈,是模組自己添加的)
2.透傳的數據 模式接收數據
AT+IPRCFG=1,1,0
模組接收字符串數據(string)如下
注意,並不是完全透徹的數據 (模組在數據的開頭和結尾都加了換行)
模組接收16進制數據(0x01 0x02 0x03)如下
注意,並不是完全透徹的數據 (模組在數據的開頭和結尾都加了換行)
6.模組做的有點問題!!!
測試發現上面的主動輸出不好使: 如果模組不發送數據給服務器,服務器主動發送數據給模組.
服務器發送數據給模組以后等40S再發送,模組雖然接收到數據,但是不主動輸出.......
如果想獲取數據,需要讓模組發送數據給服務器一下,緩存數據就主動出來了.
大家伙可以設置手動查詢模式,然后數據接收方式可以是透傳模式
AT+IPRCFG=1,1,0
查詢參考
測試連接MQTT服務器
1.安裝好手機卡和天線
2.給模組重新開機
每次安裝好手機卡以后復位模組讓模組重新啟動,
正常情況下等待3S左右模組會顯示已經識別到SIM卡
等待10S左右模組注冊上網絡以后會顯示模組的IP地址
3.依次發送以下指令
控制模組開機
AT
AT+SM=LOCK
AT+CPIN?
AT+CEREG?
AT+CGACT?
模塊根據指令回復如下方可進行下面的步驟
4.配置連接的MQTT服務器參數
MQTT服務器IP地址:47.92.31.46
MQTT服務器端口號:1883
MQTT客戶端ClientID: 000000 (一般使用模組的IMEI代替,確保唯一)
MQTT客戶端心跳時間: 60 (秒)
MQTT服務器用戶名:yang
MQTT服務器密碼:11223344
讓MQTT服務器清除session信息: 1 (不清除的話服務器就記錄這個客戶端的信息了,以前這個客戶端訂閱的主題也記錄了,再次連接不需要再訂閱就可以)
不使用SSL加密通信: 0
AT+MQTTCFG=47.92.31.46,1883,000000,60,yang,11223344,1,0
5.連接MQTT服務器
6.訂閱主題
假設訂閱 222222
AT+MQTTSUB=222222,1,0
7.接收消息
接收字符串 "qqqqqq"
接收16進制 "0x01 0x02 0x03"
注意哈后面不是亂碼哈,是因為字符串顯示后面是16進制的 010203
可以使用16進制看下
8.發送消息
主題:topic
消息等級: 0
不讓服務器記錄消息: 0
不是重新上報的消息: 0
傳輸字符串,該數為0
消息: qqqqq
AT+MQTTPUB="topic",0,0,0,0,"qqqqq"
主題:topic
消息等級: 0
不讓服務器記錄消息: 0
不是重新上報的消息: 0
傳輸3個16進制數據,該數為3
消息: 0x01 0x02 0x03
AT+MQTTPUB="topic",0,0,0,3,"010203"