Projeto Arduino
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

AS COORDENADAS NÃO FUNCIONAM NO GOOGLE MAPS

Ir para baixo

AS COORDENADAS NÃO FUNCIONAM NO GOOGLE MAPS Empty AS COORDENADAS NÃO FUNCIONAM NO GOOGLE MAPS

Mensagem  Julio Freitas Qui 30 Jul - 9:07

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; 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

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos