Pages: [1]   Go Down
Author Topic: how to convert or read the GPS coordinates???  (Read 969 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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();
}
Logged

Grand Blanc, MI, USA
Offline Offline
Faraday Member
**
Karma: 95
Posts: 4084
CODE is a mass noun and should not be used in the plural or with an indefinite article.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Jack...


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

Offline Offline
Jr. Member
**
Karma: 0
Posts: 57
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 399
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dear All,

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

the coodrs are rturned here
Code:
  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
« Last Edit: August 01, 2013, 09:57:08 am by pierrot10 » Logged

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

Pages: [1]   Go Up
Jump to: