SIM800C建立TCP連接流程


模塊說明:
5V:供電引腳,只能輸入DC5V,用於給板子供電。

GND:電源地線

TXD:模塊串口發送引腳,TTL電平(不能直接接RS232電平)

RXD:模塊串口接收引腳,TTL電平(不能直接接RS232電平)

連接步驟:
1.模塊開機測試:AT
返回:AT
OK (說明模塊正常)
2.查詢網絡注冊情況(測試SIM卡狀態):AT+CPIN?
返回:+CPIN: READY
OK (表明SIM卡狀態正常)
3.查詢信號質量 AT+CSQ
返回:+CSQ: 26,0
OK (返回SIM800C接收到的信號強度,信號強度為 15~35 之間比較好)
4.查詢GSM網絡注冊狀態 AT+CREG?
返回:+CREG: 0,1或+CREG: 0,5
OK (說明GSM已注冊)
5.查詢GPRS網絡注冊狀態 AT+CGREG?
返回:+CGREG: 0,1
OK (說明GPRS網絡已注冊)
6.使模塊附着GPRS網絡 AT+CGATT=1
返回:OK (說明GPRS網咯附着成功,若附着失敗,則重啟模塊再次附着)
7.開始任務,設置 APN:AT+CSTT
返回:OK (再次操作會返ERROR)
8.激活移動場景,建立無線連接 AT+CIICR
返回:OK (再次操作會返ERROR)
9.獲取模塊IP地址 AT+CIFSR
返回:10.150.31.187 (每個模塊不同時候的IP不一樣)
10.建立TCP連接,連接到服務器
返回:AT+CIPSTART="TCP","IP地址",端口號
例如:AT+CIPSTART="TCP","172.27.8.147",1883
返回:OK

CONNECT OK (返回了CONNECT OK才是連接成功)
11.(選擇命令)連接狀態查詢:AT+CIPSTATUS
OK

STATE: TCP CONNECTING (若為STATE: TCP CLOSE,則需要再次連接)
12.發送數據AT+CIPSEND
返回:> 發送數據AT+CIPSEND (發送給服務器的數據)
1A (hex形式發送)
SEND OK (服務器返回的數據,表示發送成功)
[或AT+CIPSEND=10(10表示數據長度)
>0987654321 (發送10個數據)
SEND OK (發送成功)
]
13.關閉TCP連接AT+CIPCLOSE
返回:CLOSE OK (關閉連接)
或 AT+CIPSHUT
返回:SHUT OK (關閉移動場景)

特別說明
PS1:第10步必須要返回CONNECT OK才是連接成功,IP地址必須是公網IP,如果沒有公網IP,可以到公共TCP服務器http://www.tongxinmao.com/App/Detail/id/1連接,,也可以用花生殼做內網穿透,具體操作聯系作者
PS2:連接必須要保持“心跳”,如果超過一定時間不向服務器發送數據,連接會自動斷開,此時需要重復步驟10,最好每一次發送數據之前都進行連接裝填檢查(步驟11),如果連接狀態為非已連接,則需要重新連接(步驟10)。
PS3:若步驟10操作失敗,請重復步驟6到步驟10,步驟7和步驟8不可省略,若步驟9操作失敗,則重復步驟6到步驟9,步驟7和步驟8設置成功之后再次操作會返回error,屬於正常現象。
PS4:步驟12,返回“>”之后即可輸入你要發送給服務器的數據,然后發送16進制的1A表示輸入結束,數據會一次發送到服務器端,服務器返回“SEND OK”表示發送成功,也可以使用AT+CIPSEND=length,輸入length個數據之后即發送到服務器,之后返回“SEND OK”表示發送成功。
PS5:實際編程中請關閉回顯,AT指令:ATE0,若需要打開回顯:ATE1
PS6:查找本機IP:輸入命令行netstat -aon
查看本機IP的命令行:ipconfig
獲取域名所映射IP的方法:ping +域名
注:本文檔是作者本人的操作經驗,有問題請聯系作者2938715151@qq.com,資料下載:鏈接:https://pan.baidu.com/s/16Aesy3v867GyVE40l5KxNA 密碼:fttj


免責聲明!

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



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