ESP8266-01通过AT指令向MySQL存储数据失败求助
问题排查与正确AT指令配置
错误点分析
- 参数拼写错误:正确的参数名是
MQ4_smoke_ppm,但你写成了MQ4_rook_ppm,PHP脚本无法识别该参数,直接导致数据库插入逻辑失败。 - HTTP请求格式错误:
Connection字段应为Connection: keep-alive(连字符不可省略);且HTTP请求头结束后必须添加两个空行,否则服务器无法正确解析请求边界。 - CIPSEND长度不匹配:
AT+CIPSEND=xxx中的数字必须与实际发送的字节数完全一致,长度错误会造成请求被截断或发送异常。
正确的AT指令完整流程
假设ESP8266已完成WiFi连接(未连接的话需先执行AT+CWJAP="WiFi名称","WiFi密码"):
# 1. 建立TCP连接到Apache服务器 AT+CIPSTART="TCP","192.168.1.6",80 # 等待返回结果 CONNECT OK # 2. 启动发送,先确认请求内容的字节数(以下请求总字节数为161) AT+CIPSEND=161 # 等待提示符>出现后,发送规范的HTTP请求 OK > GET /insertMQ4.php?MQ4_CO_ppm=1&MQ4_alcohol_ppm=2&MQ4_smoke_ppm=3&MQ4_H2_ppm=4&MQ4_LPG_ppm=5&MQ4_CH4_ppm=6 HTTP/1.1 Host: 192.168.1.6 Connection: keep-alive # 此处必须输入两个空行,触发发送 SEND OK # 3. 关闭TCP连接 AT+CIPCLOSE CLOSED
额外注意事项
- 字节数校验:后续修改参数值时,必须重新计算
AT+CIPSEND后的数字,确保与所有发送字符(包括换行符\r\n)的字节数完全匹配。 - 换行符规范:HTTP请求中的换行必须是
\r\n(Windows风格),部分串口工具默认仅发送\n,需调整工具设置。 - 调试技巧:可在
insertMQ4.php中添加日志功能,记录接收到的请求参数:
file_put_contents('request_log.txt', print_r($_GET, true) . "\n", FILE_APPEND);
通过日志可以直观检查ESP8266实际发送的参数是否正确。
内容的提问来源于stack exchange,提问作者kml
相关产品推荐
相关产品推荐

