Leitura de Código NMEA via software
Página 1 de 1
Leitura de Código NMEA via software
Bom dia galera. Estou dando segmento aqui ao desenvolvimento do meu rastreador utilizando SIM 908 + Arduino Mega e estou tendo uns probleminhas.
Quando dou os comandos para o SIM 908 pegar posição de GPS via Serial Monitor tudo corre certo.
Mas quando programo pra que ele faça isso sozinho, me parece que ele não consegue enxergar os dados na serial. (no caso, a serial 2, conforme ligação proposta aqui no fórum).
Segue o meu script.
#include "WProgram.h"
#include "nmea.h"
NMEA gps(GPRMC);
int powerkey = 5;
int statuspin = 6;
int pinState = 0;
int teste = 0;
char c;
void setup(){
Serial.begin(9600);
Serial2.begin(9600);
pinMode(powerkey, OUTPUT);
pinMode(statuspin, INPUT);
}
void loop(){
pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
}
if (teste == 0) {
Serial.println("AT+CGPSPWR=0");
delay(1000);
Serial.println("AT+CGPSPWR=1");
delay(1000);
Serial.println("AT+CGPSRST=0");
delay(5000);
Serial2.flush();
Serial.println("AT+CGPSINF=32");
delay(2000);
teste = 1;
}
if (Serial2.available() > 0 ) {
// Lê caracteres vindos do GPS
char c = Serial2.read();
Serial.print("step 1");
// Verifica se o valor recebido e uma sentença GPS valida
if (gps.decode(c)) {
// Verifica se o posicionamento GPS esta ativo
if (gps.gprmc_status() == 'A') {
Serial.print("Latitude: ");
Serial.print(gps.gprmc_latitude(), DEC);
Serial.print(" Longitude: ");
Serial.println(gps.gprmc_longitude(), DEC);
}
}
}
}
Estou utilizando uma biblioteca (a nmea.h) que faz o tratamento das informações NMEA que o SIM 908 fornece. o problema está todo em fazer o Arduino enxergar sozinho que os dados estão na serial!
Ajudaaaaaaaaaaaaaa!
Quando dou os comandos para o SIM 908 pegar posição de GPS via Serial Monitor tudo corre certo.
Mas quando programo pra que ele faça isso sozinho, me parece que ele não consegue enxergar os dados na serial. (no caso, a serial 2, conforme ligação proposta aqui no fórum).
Segue o meu script.
#include "WProgram.h"
#include "nmea.h"
NMEA gps(GPRMC);
int powerkey = 5;
int statuspin = 6;
int pinState = 0;
int teste = 0;
char c;
void setup(){
Serial.begin(9600);
Serial2.begin(9600);
pinMode(powerkey, OUTPUT);
pinMode(statuspin, INPUT);
}
void loop(){
pinState = digitalRead(statuspin);
if(pinState==LOW){
digitalWrite(powerkey, HIGH); // set the LED on
delay(2000);
digitalWrite(powerkey, LOW);
}
if (teste == 0) {
Serial.println("AT+CGPSPWR=0");
delay(1000);
Serial.println("AT+CGPSPWR=1");
delay(1000);
Serial.println("AT+CGPSRST=0");
delay(5000);
Serial2.flush();
Serial.println("AT+CGPSINF=32");
delay(2000);
teste = 1;
}
if (Serial2.available() > 0 ) {
// Lê caracteres vindos do GPS
char c = Serial2.read();
Serial.print("step 1");
// Verifica se o valor recebido e uma sentença GPS valida
if (gps.decode(c)) {
// Verifica se o posicionamento GPS esta ativo
if (gps.gprmc_status() == 'A') {
Serial.print("Latitude: ");
Serial.print(gps.gprmc_latitude(), DEC);
Serial.print(" Longitude: ");
Serial.println(gps.gprmc_longitude(), DEC);
}
}
}
}
Estou utilizando uma biblioteca (a nmea.h) que faz o tratamento das informações NMEA que o SIM 908 fornece. o problema está todo em fazer o Arduino enxergar sozinho que os dados estão na serial!
Ajudaaaaaaaaaaaaaa!
Bruno Rafael- Mensagens : 22
Data de inscrição : 17/03/2013
Tópicos semelhantes
» Problemas com A leitura do sensor.
» PROBLEMA COM O CODIGO NMEA NO GOOGLE MAPS
» Software - Código Fonte
» Fazendo leitura do cartao e executando no servo motor
» Sim900 Shield
» PROBLEMA COM O CODIGO NMEA NO GOOGLE MAPS
» Software - Código Fonte
» Fazendo leitura do cartao e executando no servo motor
» Sim900 Shield
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|