PROBLEMA COM O CODIGO NMEA NO GOOGLE MAPS

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

PROBLEMA COM O CODIGO NMEA NO GOOGLE MAPS

Mensagem  Julio Freitas em Qui 30 Jul - 9:15

OLÁ Pessoal estou tendo problemas com o código NMEA obtido no arduino, no mapa não aparece nada, alguém poderia me ajudar eu até já dividi ele por 60 mas aparece um lugar tipo
no oceano tudo azul 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/@-20.5337,-47.4257");
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/inseredados.php?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; ncomm_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();
}

Julio Freitas

Mensagens : 2
Data de inscrição : 17/07/2015

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum