sim800L gprs post 请求

sim800L gprs post request

我一直在研究 LoNet 迷你 GSM 模块 (SIM800L),将其与 Arduino 连接。 我已插入可连接互联网的 SIM 移动卡。 通过串行监视器,我可以毫无问题地与它通信,但是当涉及到向网络服务器页面发出 GET 或 POST 请求时,它会出现 returns 网络错误 (601)。 这是:

AT+SAPBR=3,1,"CONTYPE","GPRS" 好的

AT+HTTPPINIT 好的

AT+HTTPPARA="CID",1 好的

AT+HTTPPARA="URL","http://:8080/folder/savedata.php" 好的

AT+HTTPACTION=0 好的 +HTTPACTION: 0,601,0 //601: 网络错误

AT+HTTPREAD=1,100000 好的

并且 php 页面的 "echo" 没有响应... 你有什么建议吗? 提前致谢。

enter image description here

enter image description here

您是否已设置 PDP 上下文?我认为一些主要概念是您需要成功连接并启动 GPRS 连接。

在此之前需要激活一些东西才能起作用:

1)网络注册

AT+CREG?     should return 0,1    if so, skip to 2)

如果没有,那么您可以通过输入 AT+CFUN=0 然后输入 AT+CFUN=1 来打开和关闭调制解调器

如果您在注册时仍然遇到问题,请确保您选择了正确的网络: 在+警察?应该在结果中看到您的服务提供商名称 例如。 AT+COPS: 1,0,"T-Mobile USA"

如果您不这样做,请确保您的频段已正确设置为您的服务提供商。查找您的提供商 2G 频段 例如t-mobile 使用 PCS_MODE 来提供他们的 2G 服务。通过以下方式设置: AT+CBAND="PCS_MODE"

此外,显然你应该确保你有信号: AT+CSQ 应该 return 至少 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——便宜的分线板之一。

如果要使用 https,请按以下顺序添加 ssl。

mySerial.println("AT+HTTPINIT");

mySerial.println("AT+HTTPSSL=1");

mySerial.println("AT+HTTPPARA=CID,1");

AT+HTTPSSL=1 这会让你使用 url 和 https:// 如果您想使用 google 云函数将数据添加到 firebase,这真的很有用。

尝试使用 ipaddress 代替 DNS 作为:

  AT+HTTPPARA="URL","http://example.com:8080/folder/savedata.php" OK

替换为:

AT+HTTPPARA="URL","http://29.09.07.12:8080/folder/savedata.php" OK

它适用于大多数情况。