我一直在研究LoNet mini GSM模块(SIM800L),它与Arduino接口。 我插入了可以上网的SIM移动卡。 通过串行监视器,我正在与它进行通信而没有任何问题,但是当它向Web服务器页面发出GET或POST请求时,它返回网络错误(601)。 这是:
AT + SAPBR = 3,1, “ConType首”, “GPRS” 行
AT + HTTPINIT 行
AT + HTTPPARA = “CID”,1 行
AT + HTTPPARA = “URL”, “HTTP://:8080 /文件夹/ savedata.php” 行
AT + HTTPACTION = 0 好 + HTTPACTION:0,601,0 // 601:网络错误
AT + HTTPREAD = 1,100000 行
没有回应php页面的“echo”... 你有什么建议吗? 提前谢谢。
答案 0 :(得分:4)
您是否已经设置了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 USA”
如果不这样做,请确保您的频段已正确设置给您的服务提供商。查找您的提供商2G频段 例如t-mobile使用PCS_MODE进行2G服务。设置此通过: AT + C波段= “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 - 一种廉价的分线板。
答案 1 :(得分:0)
如果要使用https,请按以下顺序添加ssl。
mySerial.println("AT+HTTPINIT");
mySerial.println("AT+HTTPSSL=1");
mySerial.println("AT+HTTPPARA=CID,1");
AT + HTTPSSL = 1,这将使您可以将URL与https://一起使用 如果您想使用Google Cloud函数将数据添加到Firebase,这真的很有用。