【发布时间】:2022-12-12 15:28:32
【问题描述】:
我正在研究 Maduino Zero SIM5320,我正在尝试使用 ThingSpeak 向 API 发出 GET 请求。
我有以下代码来尝试发送数据,但没有收到任何要发送的数据。
sendData("AT+CSQ", 2000, DEBUG);
sendData("AT+CREG=1", 2000, DEBUG);
sendData("AT+COPS=0", 2000, DEBUG);
sendData("AT+CGATT=1", 2000, DEBUG);
sendData("AT+CGATT?", 2000, DEBUG);
sendData("AT+CGDCONT=1,\"IP\",\"internet\"", 2000, DEBUG);
sendData("AT+CGSOCKCONT=1,\"IP\",\"internet\"", 2000, DEBUG);
sendData("AT+CSOCKSETPN=1", 2000, DEBUG);
sendData("AT+NETOPEN", 3000, DEBUG);
sendData("AT+IPADDR", 3000, DEBUG);
发送数据时它不会注册该值。
AT+CHTTPSOPSE="api.thingspeak.com",80,1
好的
AT+CHTTPSSEND=55
GET /update?api_key=XXXXXHIDDENXXXXXXX&field1=12 HTTP/1.1
好的
AT+CHTTPSSEND? +CHTTPSSEND:0
最终目标是获取数据以使用它触发 API。这样做的最佳方法是什么,我怎样才能让它发挥作用?
预先感谢您的建议和帮助。
SIM 文档:https://simcom.ee/documents/SIM5320/SIMCOM_SIM5320_ATC_EN_V2.05.pdf
【问题讨论】:
-
我很困惑,你在谈论 HTTPS,但是你打开了一个到端口 80 (HTTP) 的连接并设置服务器类型 1 (HTTP) 而不是 443,2 (HTTPS)...(如果你想要 HTTP 而不是 HTTPS无论如何,使用
AT+CHTTPACT不是更容易吗?) -
这里的其他可能问题可能是您在第一个标题行之后缺少最后两个 CRLF,或者可能还需要
Host标题。 -
@CherryDT,感谢您的回复。我知道 HTTP 在端口 80 上,HTTPS 在端口 443 上,在以前的模块中,我可以使用“AT+HTTPPARA”进行 URL 请求,但是 sim5320 不支持 AT+HTTPPARA,所以我有点迷路 ATM .
-
@CherryDT 现在只获取
HTTP/1.1 400 Bad Request.我已经尝试了它的变体,但仍然无法正常工作。这是我尝试发出但失败的 cURL 请求。这是一个示例,说明它如何在我以前的代码中使用另一个 sim 模块 (SIM808)。"AT+HTTPPARA=\"URL\",\"http://api.thingspeak.com/update.json?api_key=" + (String)APIKEY + "&field1=25.5\""; -
这很好,因为这意味着您实际上发送了请求并且现在得到了响应。您现在应该检查 API 密钥是否正确等。您可以尝试使用 telnet 或 nc / netcat 手动发送完全相同的请求。您可以打开与服务器的连接并发送请求,看看会发生什么,以及何时得到正确答案那里,您至少知道请求现在可以了。 g.recordit.co/pcYXKdLkeh.gif
标签: arduino gsm at-command arduino-ide