Go Down

Topic: how to convert or read the GPS coordinates??? (Read 1 time) previous topic - next topic

nagasaker

please tell me on how to convert this data:

my data in longitude:12350.790066 and latitude:808.882390

and this is the code taken from the net...


#include "SIM900.h"
#include <SoftwareSerial.h>
#include "gps.h"

GPSGSM gps;

char lon[15];
char lat[15];
char alt[15];
char time[20];
char vel[15];
char msg1[5];
char msg2[5];

char stat;
char inSerial[20];
int i=0;
boolean started=false;

void setup()
{
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing.");
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    gsm.forceON();   //To ensure that SIM908 is not only in charge mode
    started=true; 
  }
  else Serial.println("\nstatus=IDLE");
 
  if(started){
    //GPS attach
    if (gps.attachGPS())
      Serial.println("status=GPSREADY");
    else Serial.println("status=ERROR");
   
    delay(20000);   //Time for fixing
    stat=gps.getStat();
   if(stat==1)
      Serial.println("NOT FIXED");
   else if(stat==0)
      Serial.println("GPS OFF");
   else if(stat==2)
      Serial.println("2D FIXED");
   else if(stat==3)
      Serial.println("3D FIXED");
   delay(5000);
   //Get data from GPS
   gps.getPar(lon,lat,alt,time,vel);
   Serial.println(lon);
   Serial.println(lat);
   Serial.println(alt);
   Serial.println(time);
   Serial.println(vel);
  }
};

void loop()
{
  //Read for new byte on serial hardware,
  //and write them on NewSoftSerial.
  serialhwread();
  //Read for new byte on NewSoftSerial.
  serialswread();
};

void serialhwread(){
  i=0;
  if (Serial.available() > 0){           
    while (Serial.available() > 0) {
      inSerial=(Serial.read());
      delay(10);
      i++;     
    }
   
    inSerial='\0';
    if(!strcmp(inSerial,"/END")){
      Serial.println("_");
      inSerial[0]=0x1a;
      inSerial[1]='\0';
      gsm.SimpleWriteln(inSerial);
    }
    //Send a saved AT command using serial port.
    if(!strcmp(inSerial,"TEST")){
        stat=gps.getStat();
   if(stat==1)
      Serial.println("NOT FIXED");
   else if(stat==0)
      Serial.println("GPS OFF");
   else if(stat==2)
      Serial.println("2D FIXED");
   else if(stat==3)
      Serial.println("3D FIXED");
    }
    //Read last message saved.
    if(!strcmp(inSerial,"MSG")){
      Serial.println(msg1);
    }
    else{
      Serial.println(inSerial);
      gsm.SimpleWriteln(inSerial);
    }   
    inSerial[0]='\0';
  }
}

void serialswread(){
  gsm.SimpleRead();
}

Jack Christensen

Do not cross-post.
Put your code between code tags (# button).

http://aprs.gids.nl/nmea/#rmc

MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

nagasaker

@ Jack...


Sorry for that.. I'm a newbie for this... thanks a lot...

eriknyquist

what do you mean by convert or read?
Quote

my data in longitude:12350.790066 and latitude:808.882390

if you mean how can I visualise the location of these co-ordinates, then that's easy- you can go to google earth or google maps and enter the co-ordinates exactly as they are.
If that's not what you meant, please give more detail about what you want and post the output that you get from the code you posted above.

pierrot10

#4
Aug 01, 2013, 04:55 pm Last Edit: Aug 01, 2013, 04:57 pm by pierrot10 Reason: 1
Dear All,

I am experiencine the same problem. Did you solve your issue?
Could you post your solution?

the coodrs are rturned here
Code: [Select]

  gps.getPar(lon,lat,alt,time,vel);
   Serial.println(lon);
   Serial.println(lat);
   Serial.println(alt);
   Serial.println(time);
   Serial.println(vel);
[/quote]

lon and lat are char varaible and it should be converted to degre, I think, because the number can not be something like
longitude:12350.790066 and latitude:808.882390

Cheers
Il ne suffit pas de tout savoir, la persévérance, c'est déjà presque tout!

Go Up