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

Arduino通过SIM900发送JSON数据至数据库失败:返回SEND OK但无数据

排查SIM900发送JSON到数据库无响应的问题

看起来你遇到的是典型的HTTP请求格式不完整问题——虽然SIM900返回了SEND OK,但这只代表模块把数据发出去了,不代表服务器能正确解析你的请求。你现在只发送了JSON字符串,没有附带HTTP协议要求的头部信息,服务器根本不知道该怎么处理这段数据。

下面是具体的排查和修复步骤:

1. 补全完整的HTTP POST请求

SIM900建立TCP连接后,需要发送符合HTTP规范的完整请求,而不是裸JSON。一个标准的POST请求结构应该是:

请求行 → 请求头部 → 空行 → 请求正文(你的JSON)

给你修改后的代码示例:

String data = "{\"a\": 1000, \"b\": 1000, \"c\": 1000, \"d\": 1000, \"e\": 1000, \"f\": 1000, \"g\": 1000, \"h\": 1000, \"i\": 1000}";

// 1. 建立TCP连接,建议等待模块返回CONNECT OK再继续,而非固定delay
client.println("AT+CIPSTART=\"TCP\",\"myapp.herokuapp.com\",\"80\"");
delay(4000); // 可以优化为循环读取串口,直到收到"CONNECT OK"再执行下一步

// 2. 构造完整的HTTP POST请求
String postRequest = "POST /your-api-path HTTP/1.1\r\n"; // 替换成你Heroku应用的实际接口路径,比如/submit-data
postRequest += "Host: myapp.herokuapp.com\r\n";
postRequest += "Content-Type: application/json\r\n"; // 必须指定,告诉服务器正文是JSON格式
postRequest += "Content-Length: " + String(data.length()) + "\r\n"; // 告诉服务器正文的准确长度
postRequest += "\r\n"; // 空行,分隔请求头部和正文
postRequest += data;

// 3. 发送请求:指定发送长度比直接发送更可靠
client.println("AT+CIPSEND=" + String(postRequest.length()));
delay(1000);
client.print(postRequest); // 用print而非println,避免额外换行破坏请求格式

// 4. 读取服务器响应,排查问题根源
delay(3000);
while(client.available()){
  Serial.println(client.readString()); // 把服务器返回的内容打印到串口,查看是否有错误(比如404、400)
}

// 5. 关闭TCP连接
client.println("AT+CIPCLOSE");

2. 关键排查点

  • 确认接口路径正确性:Heroku应用不会默认接收根路径的请求,你需要核对后端代码里的路由(比如/api/save-data),替换到代码的/your-api-path位置。
  • 验证服务器接口可用性:先用Postman或curl直接调用你的Heroku接口,传入相同的JSON,确认服务器能正常接收并写入数据库——先排除后端本身的问题。
  • 查看HTTP响应状态:通过串口打印服务器返回的内容,如果看到404 Not Found就是路径错误,400 Bad Request可能是JSON格式或请求头部有问题,200 OK才代表请求成功。
  • 优化延迟逻辑:固定delay在网络状况差的时候容易失效,建议改成循环读取SIM900的串口输出,直到收到对应的响应(比如CONNECT OK、>提示符)再执行下一步。

3. 额外注意事项

  • SIM900的AT+CIPSEND如果不指定长度,需要发送ASCII码0x1A(Ctrl+Z)来结束输入,用指定长度的方式更稳定,不会因为手动结束符丢失导致发送不完整。
  • 如果你后续需要用HTTPS端口(443),SIM900需要额外的SSL配置,不过你当前用的是80端口(HTTP),暂时不用考虑这个。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:23:22