我正在研究跟踪汽车的项目。我正在使用Arduino UNO从GPS / GPRS屏蔽接收位置。我可以获得坐标位置。 现在我需要将位置发送到网络服务器,然后使用Google Maps API在网页上显示。它在POST或GET方法中接受它。 这是盾牌模型: U-blox Sara G-350 这是它的手册here
域名:“www.navtec.16mb.com”(托管良好) 路径:“/ test / getter.php”(经过测试并与浏览器GET / POST完美配合) Apn:weborange(OK)
这是我的方法:
#include <SoftwareSerial.h>
#include <String.h>
SoftwareSerial gprsSerial(7 ,8);
void setup() {
// put your setup code here, to run once:
gprsSerial.begin(19200);
Serial.begin(19200);
delay(2000);
gprsSerial.println("AT+CGDCONT=3,\"IP\",\"weborange\"");
toSerial();
delay(2000);
gprsSerial.println("AT+UHTTP=0");
toSerial();
delay(2000);
gprsSerial.println("AT+UHTTP=2,1,\"www.navtec.16mb.com\"");
//AT+UHTTP=<profile_id>,<op_code>,<HTTP_server_name>
toSerial();
delay(2000);
gprsSerial.println("AT+UHTTP=0,5,80");
toSerial();
delay(2000);
}
void loop() {
//gprsSerial.println("AT+UHTTP=2,1,\"submit\"");
//AT+UHTTP=<profile_id>,<op_code>,<param_val>[,<param_val1>]
//toSerial();
//delay(2000);
gprsSerial.println("AT+UHTTPC=2,1,/test/getter.php,filename"); //Problem here!!!!!!!!
//AT+UHTTPC=<profile_id>,<http_command>,<path>,<filename>[,<param1>[,<param2>[,<param3>]]]
toSerial();
delay(2000);
}
void toSerial()
{
while(gprsSerial.available()!=0)
{
Serial.write(gprsSerial.read());
}
}
这就是我得到的:
+ CGDCONT = 3, “IP”, “weborange”
行 + UHTTP = 0
行 + UHTTP = 2,1, “www.navtec.16mb.com”
行 + UHTTP = 0,5,80
行 + UHTTPC = 2,1,/测试/ getter.php,文件名
ERROR + UHTTPC = 2,1,/测试/ getter.php,文件名
ERROR + UHTTPC = 2,1,/测试/ getter.php,文件名
ERROR + UHTTPC = 2,1,/测试/ getter.php,文件名
错误......
感谢您的时间,我在等待您的支持,任何想法都可以提供帮助。抱歉我的英文不好
答案 0 :(得分:1)
我参与了一个类似于你的项目,我想你错过了首先建立联系。
只需在setup()
方法的代码中添加这些代码行:
gprsSerial.println("AT+UPSDA=2,0"); //Reset connexion
toSerial();
delay(2000);
gprsSerial.println("AT+UPSD=2,1,\"weborange\""); //Establish a new one
toSerial();
delay(2000);
gprsSerial.println("AT+UPSDA=2,3");
toSerial();
delay(2000);
gprsSerial.println("AT+UPSND=2,0");
toSerial();
delay(2000);
我希望它适合你。否则,您可以使用AT+UHTTPER=2
来检查错误来源。