ESP-01模块发送AT指令仅返回SEND OK,未收到IPD响应如何解决?
ESP-01发送GET请求后未收到服务器200响应的排查方案
操作过程回顾
执行的AT指令序列:
AT+CIPSTART="TCP","172.30.1.51",80 CONNECT OK AT+CIPSEND=63 OK > busy s... Recv 63 bytes SEND OK
发送的GET请求内容:
GET /process.php?tem=20.7&radi=5.6&dust=11.3&hum=213.1 HTTP/1.0
问题:仅返回SEND OK,未收到预期的+IPD, 243:HTTP/1.1 200 OK响应,已调整AT+CIPSEND字节数无效。
排查解决步骤
补全HTTP请求格式
HTTP/1.0协议要求请求必须以**两个连续换行符(\r\n\r\n)**结尾,服务器才会判定请求完成并返回响应。你当前的请求缺少结束标识,导致服务器无法处理。正确的请求内容应为:GET /process.php?tem=20.7&radi=5.6&dust=11.3&hum=213.1 HTTP/1.0\r\n\r\n计算字节数时要包含这4个字节(\r和\n各占1字节),因此
AT+CIPSEND应设置为67(原63字节+4字节换行符)。验证服务器端可用性
直接在浏览器或使用curl工具访问http://172.30.1.51/process.php?tem=20.7&radi=5.6&dust=11.3&hum=213.1,确认是否能得到200 OK响应。如果浏览器也无响应,说明问题出在服务器(如process.php脚本错误、服务器未启动、端口80被防火墙拦截),与ESP-01无关。检查指令发送时机与串口配置
- 发送
AT+CIPSEND=XX后,必须等待串口输出>提示符且busy s...消失后,再发送GET请求,避免数据发送不完整。 - 确认串口波特率与ESP-01配置一致(默认多为115200),防止乱码导致请求被服务器识别错误。
- 发送
确保模块开启响应提示
执行AT+CIPMODE=0(切换至非透明模式,默认值),再执行AT+CIPRXGET=1,确保模块会主动输出服务器返回的+IPD响应数据。若之前开启过透明模式,模块不会主动推送响应。测试网络连通性
执行AT+PING="172.30.1.51",检查ESP-01与服务器的网络是否通畅。若PING失败,排查ESP-01局域网连接状态、服务器IP正确性、路由器防火墙规则。
内容的提问来源于stack exchange,提问作者신유찬
相关产品推荐
相关产品推荐

