PROBLEMA COM O CODIGO NMEA NO GOOGLE MAPS
Página 1 de 1
PROBLEMA COM O CODIGO NMEA NO GOOGLE MAPS
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; 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 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; 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
» Leitura de Código NMEA via software
» CÓDIGO FONTE DO GSM
» IMPLEMENTAÇÃO CÓDIGO COM DEBOUNCE
» Software - Código Fonte
» Placa de Automação residencial e Alarme
» CÓDIGO FONTE DO GSM
» IMPLEMENTAÇÃO CÓDIGO COM DEBOUNCE
» Software - Código Fonte
» Placa de Automação residencial e Alarme
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|