Maduino Zero SIM5320向ThingSpeak API发送GET请求失败求助
问题描述
我正在使用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
OK
AT+CHTTPSSEND=55 GET /update?api_key=XXXXXHIDDENXXXXXXX&field1=12 HTTP/1.1
OK
AT+CHTTPSSEND?
+CHTTPSSEND: 0
我的最终目标是通过该数据触发API操作,请问实现此需求的最佳方式是什么?如何解决当前问题?
解决方案与最佳实践
一、修复当前HTTP请求问题
从返回的+CHTTPSSEND: 0来看,请求已发送但ThingSpeak未正确处理,核心问题是HTTP请求格式不完整:
- 缺少
Host头:HTTP/1.1要求必须指定Host字段,ThingSpeak依赖此字段识别请求目标。修改后的GET请求应如下:
GET /update?api_key=XXXXXHIDDENXXXXXXX&field1=12 HTTP/1.1 Host: api.thingspeak.com Connection: close
注意末尾需要两个换行结束请求,同时要重新计算请求的字节数(包括换行符),替换AT+CHTTPSSEND=55中的55。
- 修正协议与端口匹配:
AT+CHTTPSOPSE是HTTPS专用指令,对应端口应为443;若发送HTTP请求,需改用AT+CHTTPOPSE指令,对应端口80,避免协议不匹配。
二、优化初始化流程
当前初始化步骤存在关键遗漏,调整为可靠顺序:
- 先执行
AT+CREG?确认网络注册成功(返回+CREG: 1,1或+CREG: 0,1为成功状态),再执行AT+CGATT=1附着GPRS。 - 执行
AT+CGDCONT=1,"IP","internet"后,必须添加AT+CGACT=1,1激活PDP上下文,这是GPRS联网的核心步骤,当前代码遗漏了此操作。 - 执行
AT+NETOPEN后,检查返回是否为OK或+NETOPEN: 0,确认网络已成功打开。
三、最佳实现方式
若目标是触发ThingSpeak API操作,推荐两种更可靠的方案:
- 标准HTTP GET请求(推荐)
使用AT+CHTTPOPSE初始化HTTP连接,完整流程示例:
AT+CHTTPOPSE="api.thingspeak.com",80,1 OK AT+CHTTPSEND=78 GET /update?api_key=XXXXXHIDDENXXXXXXX&field1=12 HTTP/1.1 Host: api.thingspeak.com Connection: close OK
发送后执行AT+CHTTPREAD读取服务器响应,确认返回200 OK及成功标识(如返回1表示数据上传成功)。
- ThingSpeak MQTT API
SIM5320支持MQTT协议,ThingSpeak提供MQTT接入,相比HTTP更高效,适合频繁数据上报。可使用SIM5320的MQTT AT指令集,直接连接mqtt.thingspeak.com(端口1883),通过发布消息到指定主题触发操作。
四、调试建议
- 用
AT+CSQ确认信号强度(返回值≥10表示信号良好)。 - 执行
AT+CGATT?确认返回+CGATT: 1,表示已成功附着GPRS。 - 发送请求后用
AT+CHTTPREAD获取服务器响应,根据响应码排查问题(如400表示请求格式错误,401表示API密钥无效)。
内容的提问来源于stack exchange,提问作者Jason Zwa
相关产品推荐
相关产品推荐

