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" 没有响应...
你有什么建议吗?
提前致谢。
您是否已设置 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
它适用于大多数情况。
我一直在研究 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" 没有响应... 你有什么建议吗? 提前致谢。
您是否已设置 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
它适用于大多数情况。