collapse

* Posts Recentes

Telescopio por iyahdub
[Hoje às 07:06]


O meu plano para produzir fotograficamente circuito impresso por SerraCabo
[Ontem às 21:06]


Making Linear Ball Way Cages por jm_araujo
[14 de Agosto de 2018, 23:03]


TV Antiga Desliga-se por almamater
[14 de Agosto de 2018, 12:34]


Tubo PVC 32mm Branco por SerraCabo
[10 de Agosto de 2018, 22:49]


Ajuda para contruir uma "máquina" de fisioterapia para a minha filha. por Hugu
[08 de Agosto de 2018, 00:47]


Comprar solda decente por jm_araujo
[07 de Agosto de 2018, 11:30]


Com que equipamento costumam aceder ao LR? por KammutierSpule
[01 de Agosto de 2018, 10:14]


BostonDynamics - Vai uma mãozinha? por jm_araujo
[01 de Agosto de 2018, 08:29]


Baby's got blue eyes por jm_araujo
[30 de Julho de 2018, 22:55]

Autor Tópico: "Falar" com um GPS Bluetooth  (Lida 1025 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline poliveira1978

  • Mini Robot
  • *
  • Mensagens: 334
"Falar" com um GPS Bluetooth
« em: 04 de Maio de 2014, 01:43 »
Boa noite a todos...
Tenho aqui um projecto em que estou com algumas dificuldades...
Tenho um arduino UNO com uma shield GSM e uma Shield Bluetooth.
Já consigo "falar" com uma GPS bluetooth e obter dados válidos, pretendia enviar uma sms após conseguir um fix no GPS, ambas as shields usam SoftwareSerial, haverá algum problema ao definir 2 "devices" em pinos diferentes?

o código para o bluetooth é o seguinte:

Código: [Seleccione]
#include <SoftwareSerial.h>
#include <nmea.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE);
SoftwareSerial nmeaSourceA(5, 4);
NMEA nmeaDecoder(ALL);

void setup()
{
  Serial.begin(9600);
  //Inicio do LCD
  lcd.begin(20, 4);
  lcd.setCursor(5,0);
  lcd.print("GPS/LCD/GSM");
  //Fim do LCD
  //Inicio do Bluetooth
  nmeaSourceA.begin(38400);
  nmeaSourceA.println("AT+ORGL");
  delay(1000);
  nmeaSourceA.println("AT+RMAAD");
  delay(1000);
  nmeaSourceA.println("AT+ROLE=1");
  delay(1000);
  nmeaSourceA.println("AT+RESET");
  delay(1000);
  nmeaSourceA.println("AT+PSWD=6268");
  delay(1000);
  nmeaSourceA.println("AT+INIT");
  delay(1000);
  nmeaSourceA.println("AT+PAIR=8,1B,B8094,10");
  delay(1000);
  nmeaSourceA.println("AT+BIND=8,1B,B8094");
  delay(1000);
  nmeaSourceA.println("AT+CMODE=0");
  delay(1000);
  nmeaSourceA.println("AT+LINK=8,1B,B8094");
  delay(1000);
}

void loop()
{
  while (nmeaSourceA.available())
  {
    if (nmeaDecoder.decode(nmeaSourceA.read()))
    {
      Serial.print("Latitude = ");
      lcd.setCursor(0,1);
      lcd.print("Latitude: ");
      lcd.print(nmeaDecoder.gprmc_latitude());
      Serial.println(nmeaDecoder.gprmc_latitude());
      Serial.print("Longitude = ");
      lcd.setCursor(0,2);
      lcd.print("Longitude: ");
      lcd.print(nmeaDecoder.gprmc_longitude());
      Serial.println(nmeaDecoder.gprmc_longitude());
      Serial.print(" Status = ");
      Serial.println(nmeaDecoder.gprmc_status());
      lcd.setCursor(0,3);
      lcd.print("Status: ");
      lcd.print(nmeaDecoder.gprmc_status());
      if (nmeaDecoder.gprmc_status() == 'A')
      {
        Serial.println("Enviou mensagem -> A");
      }
      if (nmeaDecoder.gprmc_status() == 'V')
      {
        Serial.println("Enviou mensagem -> V");
      }
    }
  }
}

(a biblioteca nmea é usada para fazer o parse dos dados do gps.)

Resumindo, a minha dúvida é saber se posso fazer algo do género:

Código: [Seleccione]
SoftwareSerial Sim900Serial(2, 3);

Offline poliveira1978

  • Mini Robot
  • *
  • Mensagens: 334
Re: "Falar" com um GPS Bluetooth
« Responder #1 em: 06 de Maio de 2014, 01:20 »
podem trancar o tópico, já me desenrasquei.