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

Arduino向Google Cloud中PHP文件发送数据失败问题求助

排查步骤与解决方案

1. 检查Google Cloud服务器的HTTP请求日志

先查看对应服务(Compute Engine实例/Cloud Run等)的访问日志,确认Arduino请求是否到达服务器:

  • 无请求记录:
    • 核实公网IP35.187.182.xxx是否为当前运行PHP的实例IP,是否有更换过
    • 确认防火墙规则生效:除开放80端口,可临时允许0.0.0.0/0测试(测试后恢复限制)
    • 用Arduino AT命令AT+PING="google.com"验证设备联网状态
  • 有请求但返回非200状态码:
    • 404:检查submit_data01.php路径是否匹配服务器根目录(如Apache的/var/www/html/)
    • 403:给PHP文件及目录设置正确权限:chmod 644 /var/www/html/submit_data01.php、chmod 755 /var/www/html/
    • 500:查看服务器错误日志(如/var/log/apache2/error.log),排查Firebase SDK配置、PHP扩展缺失(curl/json)或代码语法问题

2. 验证云端PHP的Firebase同步逻辑

本地运行正常不代表云端环境兼容:

  • 核对云端PHP版本与本地是否一致,避免版本兼容问题
  • 确认Firebase服务账号密钥已上传至云端,且代码中路径正确
  • 直接用curl或浏览器访问云端PHP:curl "http://35.187.182.xxx/submit_data01.php?data1=test&data2=test&data3=test&data4=1",观察是否同步Firebase及返回内容

3. 检查Arduino AT命令格式

  • 处理参数URL编码:lat/lng的小数点、mac地址的冒号等特殊字符可能导致请求异常,用Arduino的urlEncode()函数处理每个参数后再拼接
  • 检查命令长度:部分WiFi/GSM模块对AT命令长度有限制,尝试用固定短参数测试是否能成功

4. 确认云端出站网络权限

确保服务器允许访问Firebase相关域名(firebaseio.com、googleapis.com),放行443端口(Firebase用HTTPS),避免VPC防火墙拦截出站请求

5. 改用HTTPS请求(推荐)

Google Cloud多数环境优先支持HTTPS,可配置Let's Encrypt免费证书后修改AT命令:

String cmdString = "AT+HTTPGET=\"https://35.187.182.xxx/submit_data01.php?data1=" + lat +"&data2=" + lng + "&data3=" + mac + "&data4=" + String(flag) + "\"";

注意确认WiFi/GSM模块支持HTTPS,部分模块需额外开启证书支持

内容的提问来源于stack exchange,提问作者Carles Casademunt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 01:22:15