You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP8266 AP模式下无法向XAMPP服务器发送HTTP请求写入数据库

问题排查与修复步骤

1. 修复ESP8266代码的核心错误

你的ESP代码只初始化了HTTP客户端,但从未执行实际的请求。http.begin()仅完成请求准备,必须调用http.GET()才能发送请求到服务器。修改后的loop代码如下:

void loop() {
  WiFiClient client;
  HTTPClient http;

  // 先尝试建立TCP连接,排查网络连通性
  if (!client.connect("192.168.4.2", 80)) {
    Serial.println("无法连接到服务器");
    delay(5000);
    return;
  }

  // 初始化HTTP请求并执行
  if (http.begin(client, "http://192.168.4.2:80/swater/update.php?value=1")) {
    int httpCode = http.GET(); // 关键:发送GET请求
    Serial.printf("HTTP响应码: %d\n", httpCode);

    // 打印服务器返回内容,便于排查PHP端问题
    if (httpCode > 0) {
      String payload = http.getString();
      Serial.println("服务器返回: " + payload);
    } else {
      Serial.printf("请求失败: %s\n", http.errorToString(httpCode).c_str());
    }
    http.end(); // 释放资源
  } else {
    Serial.println("HTTP客户端初始化失败");
  }
  delay(5000);
}

2. 增强PHP代码的错误排查能力

原PHP代码无任何错误处理,无法确认请求是否到达、数据库操作是否成功。修改update.php,添加参数校验和错误反馈:

<?php
require_once "db.php";

// 检查参数是否存在
if (!isset($_GET['value'])) {
    http_response_code(400);
    die("缺少value参数");
}

// 转成整数,匹配表字段类型同时避免SQL注入
$value = intval($_GET['value']);
$query = "INSERT INTO test(value) VALUES ($value)";
$result = mysqli_query($conn, $query);

if (!$result) {
    // 记录错误到Apache日志,同时返回给客户端
    error_log("数据库插入失败: " . mysqli_error($conn));
    http_response_code(500);
    die("数据库错误: " . mysqli_error($conn));
}

echo "数据插入成功,value=" . $value;
?>

3. 排查网络与环境问题

  • 连通性验证:通过ESP串口输出查看是否能连接到服务器(若提示无法连接到服务器,说明网络不通)。可在笔记本上ping ESP的默认IP(192.168.4.1),同时在ESP代码中添加ping功能验证反向连通。
  • 防火墙拦截:检查笔记本防火墙(如Windows Defender防火墙)是否允许Apache(XAMPP)接收来自192.168.4.0/24网段的请求,可临时关闭防火墙测试是否恢复正常。
  • AP网络参数:确认ESP的AP模式DHCP功能正常,笔记本获得的IP确实为192.168.4.2(可在笔记本网络设置中查看)。

4. 验证请求是否到达服务器

查看XAMPP的Apache访问日志(xampp/apache/logs/access.log),若ESP请求到达,会出现类似192.168.4.1 - - [日期] "GET /swater/update.php?value=1 HTTP/1.1" 200 长度的记录。若无此记录,说明请求未到达服务器,重点排查ESP网络代码或防火墙。


内容的提问来源于stack exchange,提问作者Mauricio Buendía

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 05:15:41