longitudine fuori range

Salve a tutti,
utilizzo la board Arduino UNO su cui ho montato lo shield GSM/GPRS & GPS SHIELD V2 GSM/GPRS SHIELDV2 PER ARDUINO - IN KIT con il modulo FT971.
Volendo verificare la funzionalità del GPS, ho caricato il seguente codice:

#include "SIM900.h"
#include <SoftwareSerial.h>
//#include "inetGSM.h"
//#include "sms.h"
//#include "call.h"
#include "gps.h"
#include "stdlib.h"

//To change pins for Software Serial, use the two lines in GSM.cpp.

//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.

//Simple sketch to start a connection as client.

//InetGSM inet;
//CallGSM call;
//SMSGSM sms;
GPSGSM gps;

char lon[15];
float lon_db;
char lat[15];
float lat_db;
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.");
  //Start configuration of shield with baudrate.
  //For http uses is raccomanded to use 4800 or slower.
  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() 
{

}

che visualizza su serial monitor le seguenti coordinate:
744.720099 che è la longitudine
4458.829588 che è la latitudine.
Le inserisco nel sito http://www.earthpoint.us/convert.aspx per convertirle nel formato compatibile a google maps, ma un messaggio di errore, riporta che la longitudine è fuori range.
Effettivamente il valore di longitudine dovrebbe essere compreso tra “-180.00 e +180.00”!
Sapete il motivo per cui la funzione “gps.getPar(lon,lat,alt,time,vel)” restituisce quel valore, ovvero 744.720099?

David

Premetto che non ho mai usato quel modulo né altri GPRS. Però la longitudine varia da -180 a +180 ma anche la latitudine è fuori range: essa va infatti da -90 a +90.
C'è qualcosa che non torna. Sicuro di usare il modulo correttamente? Hai un link alle librerie che stai usando? C'è della documentazione che si può studiare?

Attento, potrebbe essere la "rappresentazione decimale" ...

Lat : 744.720099 = 7 gradi 44.720099'
Long : 4458.829588 = 44 gradi 58.829588'

E' la rappresentazione NMEA standard. manca poi l'indicazione N/S per la Lat e E/W per la Long.

Guglielmo

Però come riconoscere che 744 è 7°44' e non 74°4'?

leo72:
Però come riconoscere che 744 è 7°44' e non 74°4'?

Leo ... t'ho detto che ti DEVI riposare ... XD XD XD

se fosse 74° 4.0' avresti ... 7404.000000 ]:smiley:

Ripeto, è lo std. delle sentenze NMEA ... cercate con Google :wink:

Guglielmo

gpb01:
Leo ... t'ho detto che ti DEVI riposare ... XD XD XD

se fosse 74° 4.0' avresti ... 7404.000000 ]:smiley:

:sweat_smile: :sweat_smile:

Sono coordinate kilometriche UTM.
In Google Earth vai su Strumenti e quindi opzioni. Quindi nel riquadro "Visualizza lat/long" scegli UTM. Così potrai utilizzare direttamente le coordinate che hai.
Il punto è a 244 km a est dal meridiano centrale (suppongo quello di 15° che viene rappresentato con 500km) e 4458 km nord dall'Equatore.
Il meridiano centrale del fuso ha il valore 500 per evitare valori negativi per i punti ad ovest.

Ho inserito le coordinate nella barra search di google earth nel modo seguente "744.720099, 4458.829588" ed anche invertendo la posizione, ma compare "impossibile riconoscere la località" e suggerisce di inserire un nome.

Ho controllato e mi sono accorto che le coordinate che hai tu sono in km mentre google earth le vuole in metri.

A me da un punto a mare di fronte a Porto Cesareo in Puglia.

Puglia!?!!?
Io mi trovo in provincia di Torino!
Comunque non è un problema convertire le coordinate in un formato compatibile con google maps. Certo, se si riuscisse ad eliminare la parte di codice che realizza tale conversione, sarebbe bello in quanto l'intero sketch verrebbe snellito abbastanza.

Se sei in Piemonte la coordinata della latitudine dovrebbe essere superiore a 4900.

Per cui ho preso una clamorosa cantonata e ha ragione Guglielmo. Su Google Earth l'opzione è Gradi, minuti decimali che è in effetti lo standard NMEA, come ha scritto Guglielmo.

Se non sbaglio Google Maps usa invece i gradi decimali per cui credo ti basti dividere per 60 i minuti decimali che ottieni usando le ultime due cifre e la parte decimale di latitudine e longitudine.

zoomx:
Per cui ho preso una clamorosa cantonata e ha ragione Guglielmo. Su Google Earth l'opzione è Gradi, minuti decimali che è in effetti lo standard NMEA, come ha scritto Guglielmo.

:grin: :grin: :grin: ... io stavo aspettando ... volevo proprio vedere dove ... finivate sulla terra XD XD XD

Guglielmo

La cosa più vergognosa è che io lo sapevo che NMEA usava i gradi e minuti decimali e che tu l'avevi pure scritto.
Non ho scusante alcuna, ho preso una clamorosa cantonata. :roll_eyes: