2016-02-19 51 views
2

我正在开发一个跟踪汽车的项目。我正在使用Arduino UNO从GPS/GPRS屏蔽接收位置。我可以获得坐标位置。 现在我需要将位置发送到网络服务器,然后使用Google Maps API将其显示在网页上。在POST或GET方法中接受它。 这里是屏蔽模式: U-blox Sara G-350 ,这是它的手册here使用GPRS/GPS Shield将数据发送到网络服务器(U-blox Sara G-350)

域: “www.navtec.16mb.com”(以及托管) 路径: “/测试/ 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 + U HTTPC = 2,1,/测试/ getter.php,文件名

ERROR + UHTTPC = 2,1,/测试/ getter.php,文件名

ERROR + UHTTPC = 2,1,/测试/getter.php,filename

错误...

感谢您的时间,我等着你们的支持,任何想法可能会有帮助。对不起,我的英文不好

回答

3

我在一个类似于你的项目上工作,我想你错过了建立了一个连接第一个。 只需添加这些代码行setup()方法的TOR:

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来检查错误源。

相关问题