引用链接: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服务器/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 +域名
stm32f767水星开发板资料
资料盘
开发板资料A盘:/s/1VbmD0vCedWL95gvlnV1IQA提取码:cnzk