AS COORDENADAS NÃO FUNCIONAM NO GOOGLE MAPS
Página 1 de 1
AS COORDENADAS NÃO FUNCIONAM NO GOOGLE MAPS
Pessoal estou tendo problemas ao lançar as coordenadas para o google maps pois o arduino faz a leitura certinho do codigo nmea, mas
no maps aparece no meio do oceano tipo tudo azul.
Alguém poderia me ajudar, segue código.
#include
SoftwareSerial mySerial(2, 3);
#define BUF_LEN 200
char flag = 0;
int powerkey = 5;
int statuspin = 6;
int pinState = 0;
int verifica = 0;
String lati;
float latitude;
float longitude;
String lon;
String ctrl;
byte num_of_bytes;
byte retorno;
char comm_buf[BUF_LEN];
byte n;
void setup()
{
pinMode(powerkey, OUTPUT);
pinMode(statuspin, INPUT);
mySerial.begin(9600);
Serial.begin(9600);
}
void loop()
{
pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
delay(7000);
}
if (verifica == 0) {
http://Serial.println("desligando GPS");
http://mySerial.println("AT+CGPSPWR=0");
//delay(1000);
Serial.println("ligando GPS");
mySerial.println("AT+CGPSPWR=1");
delay(1000);
Serial.println("Resetando GPS");
mySerial.println("AT+CGPSRST=0");
delay(1000);
verifica = 1;
mySerial.flush();
}
lati = "";
lon = "";
ctrl = "";
limpa_buffer();
mySerial.flush();
delay(500);
Serial.println("obtendo Coordenadas GPS");
mySerial.println("AT+CGPSINF=32");
delay(1000);
leserial();
delay(1000);
if (ctrl == "S") {
enviaSMS();
//enviadados();
}
limpa_buffer();
}//FIM DO LOOPP
void limpa_buffer()
{
memset(comm_buf,'\0',BUF_LEN);
}
void enviaSMS()
{
if(flag==0)
{
Serial.println("Entrando modo texto");
mySerial.print("AT+CMGF=1\r"); //mandando SMS em modo texto
delay(1000);
mySerial.print("AT+CMGS=\"+**********\"\r"); // numero que vamos mandar o SMS
delay(1000);
flag=1;
}
if(flag==1)
{
latitude = lati.toFloat();
Serial.print(latitude);
//latitude = latitude/100;
longitude = lon.toFloat();
//longitude = longitude/100;
Serial.println("Escrevendo SMS com Latitude");
delay(1000);
mySerial.print("https://maps.google.com.br/maps?q=-");
mySerial.print(longitude/60,5); // corpo da msg longitude,4
delay(1000);
limpa_buffer();
mySerial.print(",");
http://mySerial.print("");
mySerial.print("-");
mySerial.print(latitude/60,5);//10m1!1e2? latitude,4
http://mySerial.println("&iwloc=A&hl=pt-br");
delay(1000);
mySerial.write(0x1A); //equivalente a mandar Ctrl+Z(finaliza corpo do SMS)
delay(1000);
flag=2;
}
if(flag==2)
{
Serial.println("SMS Enviado com sucesso!");
delay(5000);
flag=3;
}
}
void enviadados()
{
mySerial.println("AT+CIPSHUT");
mySerial.println("AT+CIPMUX=0");
mySerial.println("AT+CGATT=1");
mySerial.println("AT+CSTT=\"gprs.oi.com.br\",\"oi\",\"oi\"");//executa comando
delay(2000); //espera
limpa_buffer();
mySerial.println("AT+CIICR");//executa comando
delay(5000); //espera resultado na serial
limpa_buffer();
mySerial.println("AT+CIFSR");//executa comando
delay(2000); //espera resultado na serial
limpa_buffer();
http://mySerial.println("AT+CDNSCFG?");//executa comando
//delay(3000); //espera resultado na serial
//limpa_buffer();
mySerial.println("AT+CIPSTART=\"tcp\",\"seusite\",\"80\"");//executa comando
delay(2000); //espera resultado na serial
limpa_buffer();
mySerial.println("AT+CIPSEND");//executa comando
delay(2000);
limpa_buffer();
mySerial.println("GET http://seusite/seuphp?lati="+lati+"&long="+lon+"&velo=0&idsim=66778833");//executa comando
delay(3000);
limpa_buffer();
delay(1000);
mySerial.println();
delay(1000);
mySerial.println(0x1A);
limpa_buffer();
mySerial.flush();
}
void leserial()
{
Serial.println("lendo SERial");
num_of_bytes = mySerial.available(); //Pega quantidade de bytes que estao na serial
while (mySerial.available() > 0) //Espera até que serial possua bytes
{
Serial.println("Serial possui bytes");
for(n=0; n comm_buf[n]= mySerial.read();
}
Serial.println("Valor do NNNNNNNN");
Serial.println(n);
if (n == 63) {
Serial.println("passando lati e long");
//Se o n for menor que 63 descarta pacote
//Alimenta as variaveis com o conteudo do buffer
lati = comm_buf;
Serial.println("Valor do comm_buf");
Serial.println(lati);
delay(1000);
lon = comm_buf;
ctrl= lati.substring(45,46);
Serial.println("VAlor do ctrl!!");
Serial.println(ctrl);
//Pega só a latitude e longitude
lati = lati.substring(47,58);
Serial.println(lati);
lon = lon.substring(33,44);
Serial.println(lon);
}
}
Serial.println("PASSOU COORDENADAS");
mySerial.flush(); //limpa buffer de entrada da serial
limpa_buffer();
}
no maps aparece no meio do oceano tipo tudo azul.
Alguém poderia me ajudar, segue código.
#include
SoftwareSerial mySerial(2, 3);
#define BUF_LEN 200
char flag = 0;
int powerkey = 5;
int statuspin = 6;
int pinState = 0;
int verifica = 0;
String lati;
float latitude;
float longitude;
String lon;
String ctrl;
byte num_of_bytes;
byte retorno;
char comm_buf[BUF_LEN];
byte n;
void setup()
{
pinMode(powerkey, OUTPUT);
pinMode(statuspin, INPUT);
mySerial.begin(9600);
Serial.begin(9600);
}
void loop()
{
pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
delay(7000);
}
if (verifica == 0) {
http://Serial.println("desligando GPS");
http://mySerial.println("AT+CGPSPWR=0");
//delay(1000);
Serial.println("ligando GPS");
mySerial.println("AT+CGPSPWR=1");
delay(1000);
Serial.println("Resetando GPS");
mySerial.println("AT+CGPSRST=0");
delay(1000);
verifica = 1;
mySerial.flush();
}
lati = "";
lon = "";
ctrl = "";
limpa_buffer();
mySerial.flush();
delay(500);
Serial.println("obtendo Coordenadas GPS");
mySerial.println("AT+CGPSINF=32");
delay(1000);
leserial();
delay(1000);
if (ctrl == "S") {
enviaSMS();
//enviadados();
}
limpa_buffer();
}//FIM DO LOOPP
void limpa_buffer()
{
memset(comm_buf,'\0',BUF_LEN);
}
void enviaSMS()
{
if(flag==0)
{
Serial.println("Entrando modo texto");
mySerial.print("AT+CMGF=1\r"); //mandando SMS em modo texto
delay(1000);
mySerial.print("AT+CMGS=\"+**********\"\r"); // numero que vamos mandar o SMS
delay(1000);
flag=1;
}
if(flag==1)
{
latitude = lati.toFloat();
Serial.print(latitude);
//latitude = latitude/100;
longitude = lon.toFloat();
//longitude = longitude/100;
Serial.println("Escrevendo SMS com Latitude");
delay(1000);
mySerial.print("https://maps.google.com.br/maps?q=-");
mySerial.print(longitude/60,5); // corpo da msg longitude,4
delay(1000);
limpa_buffer();
mySerial.print(",");
http://mySerial.print("");
mySerial.print("-");
mySerial.print(latitude/60,5);//10m1!1e2? latitude,4
http://mySerial.println("&iwloc=A&hl=pt-br");
delay(1000);
mySerial.write(0x1A); //equivalente a mandar Ctrl+Z(finaliza corpo do SMS)
delay(1000);
flag=2;
}
if(flag==2)
{
Serial.println("SMS Enviado com sucesso!");
delay(5000);
flag=3;
}
}
void enviadados()
{
mySerial.println("AT+CIPSHUT");
mySerial.println("AT+CIPMUX=0");
mySerial.println("AT+CGATT=1");
mySerial.println("AT+CSTT=\"gprs.oi.com.br\",\"oi\",\"oi\"");//executa comando
delay(2000); //espera
limpa_buffer();
mySerial.println("AT+CIICR");//executa comando
delay(5000); //espera resultado na serial
limpa_buffer();
mySerial.println("AT+CIFSR");//executa comando
delay(2000); //espera resultado na serial
limpa_buffer();
http://mySerial.println("AT+CDNSCFG?");//executa comando
//delay(3000); //espera resultado na serial
//limpa_buffer();
mySerial.println("AT+CIPSTART=\"tcp\",\"seusite\",\"80\"");//executa comando
delay(2000); //espera resultado na serial
limpa_buffer();
mySerial.println("AT+CIPSEND");//executa comando
delay(2000);
limpa_buffer();
mySerial.println("GET http://seusite/seuphp?lati="+lati+"&long="+lon+"&velo=0&idsim=66778833");//executa comando
delay(3000);
limpa_buffer();
delay(1000);
mySerial.println();
delay(1000);
mySerial.println(0x1A);
limpa_buffer();
mySerial.flush();
}
void leserial()
{
Serial.println("lendo SERial");
num_of_bytes = mySerial.available(); //Pega quantidade de bytes que estao na serial
while (mySerial.available() > 0) //Espera até que serial possua bytes
{
Serial.println("Serial possui bytes");
for(n=0; n
}
Serial.println("Valor do NNNNNNNN");
Serial.println(n);
if (n == 63) {
Serial.println("passando lati e long");
//Se o n for menor que 63 descarta pacote
//Alimenta as variaveis com o conteudo do buffer
lati = comm_buf;
Serial.println("Valor do comm_buf");
Serial.println(lati);
delay(1000);
lon = comm_buf;
ctrl= lati.substring(45,46);
Serial.println("VAlor do ctrl!!");
Serial.println(ctrl);
//Pega só a latitude e longitude
lati = lati.substring(47,58);
Serial.println(lati);
lon = lon.substring(33,44);
Serial.println(lon);
}
}
Serial.println("PASSOU COORDENADAS");
mySerial.flush(); //limpa buffer de entrada da serial
limpa_buffer();
}
Julio Freitas- Mensagens : 2
Data de inscrição : 17/07/2015
Tópicos semelhantes
» PROBLEMA COM O CODIGO NMEA NO GOOGLE MAPS
» Coordenadas obtidas
» Sim908 + Arduino Mega
» SIM908 e arduino UNO rastreador veicular
» Problema com Coordenadas e SMS no Sim908
» Coordenadas obtidas
» Sim908 + Arduino Mega
» SIM908 e arduino UNO rastreador veicular
» Problema com Coordenadas e SMS no Sim908
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|