Go Down

Topic: Problème de GPS avec le module 3G/GPRS de Cooking-hacks (Read 1 time) previous topic - next topic

nono7766

Sep 19, 2012, 12:27 pm Last Edit: Sep 19, 2012, 04:28 pm by nono7766 Reason: 1
Bonjour,

Je cherche à connaître ma position via le module 3G/GPRS de chez Cooking-Hacks mais impossible...
Sur le sites des codes sont tout fait mais chez moi ça ne marche pas et même avec de petites modifications...
Le matériel utilisé comporte une arduino mega 2560 R3 + le module 3G/GPRS + une batteries 11v + une SIM free...

La connexion ce fait soit en stand Alone soit en A-GPS (Assisté)...
Voir http://nokia-generation.my-goo.net/t154-faq-a-gps-comment-ca-marche
     http://pro.01net.com/editorial/319809/le-systeme-a-gps-ou-gps-assiste/

Si je suis en A-GPS je dois interroger un serveur pour connaître les satellites et les interroger..
Apparemment j'interroge bien les satellites mais les données renvoyé sont vides....Pourquoi ?

Si je suis en Stand Alone je recherche des satellites via les ondes puis je les interroges...
La aussi j'interroge bien les satellites mais les données renvoyé sont vides...

Code Stand Alone
Code: [Select]

int led = 13;
int onModulePin = 2;        // the pin to switch on the module (without press on button)

char data[255];
char latitude[11],longitude[12];
char date[6],UTC_time[8];
char speed_OG[6],altitude[6];

int x,y;


void switchModule(){
   digitalWrite(onModulePin,HIGH);
   delay(2000);
   digitalWrite(onModulePin,LOW);
}

void setup(){

   Serial.begin(115200);                // UART baud rate
   delay(2000);
   pinMode(led, OUTPUT);
   pinMode(onModulePin, OUTPUT);
   switchModule();                    // switches the module ON

   for (int i=0;i< 5;i++){
       delay(5000);
   }

   Serial.println("AT+CGPS=1,1");         // starts GPS session in stand-alone mode
   delay(100);
}

void loop(){

   delay(5000);
   Serial.println("AT+CGPSINFO"); // request GPS info
   Serial.flush();
   
   x=0;
   do{
       do{
           digitalWrite(led,HIGH);  
       }
       while(Serial.available()==0);
       digitalWrite(led,LOW);
       data[x]=Serial.read();
       Serial.println(data[x]);
       
       x++;                        
   }
   while(Serial.read()!='K');

   x=24;
   y=0;
   if(data[x]!=','){
       Serial.print("Latitude: ");    //shows actual latitude
       do{
           latitude[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
       }
       while(data[x]!=',');
       x++;
       Serial.print(" ");
       Serial.println(data[x]);    //north or south

       x+=2;
       y=0;
       Serial.print("Longitude: ");    //shows actual longitude
       do{
           longitude[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;
       }
       while(data[x]!=',');
       x++;
       Serial.print(" ");
       Serial.println(data[x]);    //west or east

       x+=2;
       y=0;
       Serial.print("Date: ");    //shows date
       do{
           date[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
       }
       while(data[x]!=',');
       x++;

       y=0;
       Serial.print("\r\nUTC time: ");    //shows UTC time
       do{
           UTC_time[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
       }
       while(data[x]!=',');
       x++;

       y=0;
       Serial.print("\r\nAltitude: ");    //shows altitude
       do{
           UTC_time[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
       }
       while(data[x]!=',');
       Serial.println(" m");
       x++;

       y=0;
       Serial.print("Speed: ");    //shows speed
       do{
           speed_OG[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
       }
       while(data[x]!=0x0D);
       Serial.println(" knots");
   }
   else{
       Serial.println("GPS information not available, please wait...");
   }  

}


Réponse

AT+CGPS=1,1
AT+CGPSINFO --> +CGPSINFO:,,,,,,,,
Latitude: FO +CGPSINFO: ,
Longitude: , ,
Date: ,O                  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.....




Code A-GPS
Code: [Select]

int led = 13;
int onModulePin = 2;        // the pin to switch on the module (without press on button)

char data[255];
char response[255];
char latitude[11],longitude[12];
char date[6],UTC_time[8];
char speed_OG[6],altitude[6];

int x,y;


void switchModule(){
   digitalWrite(onModulePin,HIGH);
   delay(2000);
   digitalWrite(onModulePin,LOW);
}

void setup(){

   Serial.begin(115200);                // UART baud rate
   delay(2000);
   pinMode(led, OUTPUT);
   pinMode(onModulePin, OUTPUT);
   switchModule();                    // switches the module ON

   for (int i=0;i< 5;i++){
       delay(5000);
   }

 Serial.println("AT+CGSOCKCONT=1,\"IP\",\"free\"");    
   Serial.flush();
   x=0;
   do{
       while(Serial.available()==0);
       response[x]=Serial.read();
       Serial.println(response[x]);  
       x++;                        
   }
   while(!(response[x-1]=='K'&&response[x-2]=='O'));

   Serial.println("AT+CGPSURL=\"agpss.orange.fr:7275\"");         // sets GPS server
   delay(100);  
   while(Serial.read()!='K');

   Serial.println("AT+CGPSSSL=0");         // without certificate
   delay(100);  
   while(Serial.read()!='K');

   Serial.println("AT+CGPS=1,3");         // starts GPS session in Assisted mode
   delay(100);  
   while(Serial.read()!='K');        
}

void loop(){

   delay(5000);
   Serial.println("AT+CGPSINFO"); // request GPS info
   Serial.flush();
   for (x=0;x< 255;x++){            
       data[x]='\0';                        
   }
   x=0;
   do{
       do{
           digitalWrite(led,HIGH);  
       }
       while(Serial.available()==0);
       digitalWrite(led,LOW);
       data[x]=Serial.read();
      Serial.println(data[x]);
       x++;                        
   }
   while(Serial.read()!='K');

   x=24;
   y=0;
   if(data[x]!=','){
       Serial.print("Latitude: ");    //shows actual latitude
       do{
           latitude[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
           if(y==2){
               Serial.print(0xF8);
           }

           if(y==4){
               Serial.print(".");
           }
           
       }
       while(data[x]!=',');
       x++;
       Serial.print(" ");
       Serial.println(data[x]);    //north or south

       x+=2;
       y=0;
       Serial.print("Longitude: ");    //shows actual longitude
       do{
           longitude[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
           if(y==3){
               Serial.print(0xF8);
           }

           if(y==5){
               Serial.print(".");
           }        
       }
       while(data[x]!=',');
       x++;
       Serial.print(" ");
       Serial.println(data[x]);    //west or east

       x+=2;
       y=0;
       Serial.print("Date: ");    //shows date
       do{
           date[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
       }
       while(data[x]!=',');
       x++;

       y=0;
       Serial.print("\r\nUTC time: ");    //shows UTC time
       do{
           UTC_time[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
       }
       while(data[x]!=',');
       x++;

       y=0;
       Serial.print("\r\nAltitude: ");    //shows altitude
       do{
           UTC_time[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
       }
       while(data[x]!=',');
       Serial.println(" m");
       x++;

       y=0;
       Serial.print("Speed: ");    //shows speed
       do{
           speed_OG[y]=data[x];
           Serial.print(data[x]);
           y++;
           x++;        
       }
       while(data[x]!=0x0D);
       Serial.println(" knots");
   }
   else{
       Serial.println("GPS information not available, please wait...");
   }  

}


Réponse

AT+CGSOCKCONT=1,"IP","free" --> OK
AT+CGPSURL="agpss.orange.fr:7275"
AT+CGPSSSL=0
AT+CGPS=1,3
AT+CGPSINFO --> CGPSINFO:,,,,,,,,,
Latitude: : ,
Longitude: , ,
Date: ,O                  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.....





Go Up