您已经设置好 PDP 上下文了吗?我认为一些主要概念是您需要成功连接并启动 GPRS 连接。
在此之前需要激活一些东西才能起作用:
1)网络注册
AT+CREG? should return 0,1 if so, skip to 2)
如果没有,那么您可以通过输入 AT+CFUN=0 然后输入 AT+CFUN=1 来打开和关闭调制解调器
如果您在注册时仍然遇到问题,请确保您选择了正确的网络:
AT+COPS?应该会在结果中看到您的服务提供商名称
例如。
AT+COPS:1,0,“T-Mobile 美国”
如果不这样做,请确保您的频段已正确设置为您的服务提供商。查找您的提供商 2G 频段
例如t-mobile 将 PCS_MODE 用于其 2G 服务。通过以下方式设置:
AT+CBAND=“PCS_MODE”
另外,显然你应该确保你有信号:
AT+CSQ 应至少返回 5 或 6
2) 网络激活
AT+CIPSHUT
AT+CGATT=1 - this can take some time to get through. I have a 40 sec timeout
这一步的成功很重要。如果没有重新启动您的调制解调器。但这是关键部分。
3) 设置PDP上下文并启动GPRS服务
AT+SAPBR=3,1,"CONTYPE","GPRS"
设置您的 APN:从您的提供商处了解您的 2g APN。
例如对于 T-Mobile:epc.tmobile.com
定义您的 APN:
T+SAPBR=3,1,"APN","epc.tmobile.com"
AT+SAPBR=1,1 This is the most important part to get through. Sometimes it takes a while to get through, I have a timeout on this part for 3 minutes to let it work.
如果这没有给您带来错误,请继续:
4)发送HTTP基本上继续你所拥有的...
我所做的一个例子:
AT+HTTPTERM
AT+HTTPINIT
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","www.google.com"
AT+HTTPACTION = 0 This should return 200 if it is successful
5 关闭GPRS
AT+CIPSHUT this may give you an error buts its not important
AT+SAPBR=0,1 can take awhile
AT+CGATT=0 also can take a while
无论如何,我为 arduino 编写了一些非常简洁的轻量级代码来通过 HTTP 发送数据。我还写了一篇短信。如果你想看的话就让我看看吧。我使用 SIM800L——一种廉价的分线板。