Ajuda Comunicação

Prezados,

Estou precisando criar um Buzz quando um valor aparecer no Monitor do Arduino :

Seria para GPS ou Giro Compass :

Executei o Código para comunicação Arduino e o GPS = funcionou : Sendo que agora quando aparecer as coordenada xpto quero que toque um Buzz

Tens de converter as coordenadas em numeros e depois comparar com uma janela da localização que pretendes.

As funções de conversão são ftoa(), sprintf() e podes programar uma tu próprio...

Este é meu codigo que esta funcionando : Pegando o sinal da GiroCompass . Vejo no monitor Print …

//Serial Relay - Arduino will patch a
//serial link between the computer and the GPRS Shield
//at 19200 bps 8-N-1
//Computer is connected to Hardware UART
//GPRS Shield is connected to the Software UART

#include <SoftwareSerial.h>

//#include <nmea.h>

SoftwareSerial GPRS(0, 3);

unsigned char buffer[64]; // buffer array for data receive over serial port
int count=0; // counter for buffer array

void setup()
{
GPRS.begin(4800);
Serial.begin(4800);
}

void loop()
{
if (GPRS.available())
{
while(GPRS.available())
{
buffer[count++]=GPRS.read();
if(count == 64)break;
}
Serial.write(buffer,count);
clearBufferArray();
count = 0;
}
if (Serial.available())
GPRS.write(Serial.read());
}

void clearBufferArray()
{
for (int i=0; i<count;i++)
{
buffer*=NULL;*

  • }*
    }
    //Serial Relay - Arduino will patch a
    //serial link between the computer and the GPRS Shield
    //at 19200 bps 8-N-1
    //Computer is connected to Hardware UART
    //GPRS Shield is connected to the Software UART
    #include <SoftwareSerial.h>
    //#include <nmea.h>
    SoftwareSerial GPRS(0, 3);
    unsigned char buffer[64]; // buffer array for data receive over serial port
    int count=0; // counter for buffer array
    void setup()
    {
  • GPRS.begin(4800);*
  • Serial.begin(4800);*
    }
    void loop()
    {
  • if (GPRS.available())*
  • {*
  • while(GPRS.available())*
  • {*
  • buffer[count++]=GPRS.read();*
  • if(count == 64)break;*
  • }*
  • Serial.write(buffer,count);*
  • clearBufferArray();*
  • count = 0;*
  • }*
  • if (Serial.available())*
  • GPRS.write(Serial.read());*
    }
    void clearBufferArray()
    {
  • for (int i=0; i<count;i++)*
  • {*
    _ buffer*=NULL;_
    _
    }_
    _
    }*_
    Preciso que o Buzz toque quando no monitor ele identifica sertas informações com as coordenadas …

Qual é a parte do que eu disse anteriormente que não entendeste?

Esta biblioteca:

http://arduiniana.org/libraries/tinygps/

parece fazer a parte mais complexa do que pretendes. Depois é apenas comparar com as coordenadas que queres.

Caro Bubulino

Me desculpe : sou novato na programação : Consegui este código e consigo ler a Giro Compass . Vejo no monitor que esta pegando as coordenadas . Agora quero quando aparecer as coordenadas 110º 115º 120º 130º 135º tocar buzz .

Pode me ajudar .

Não sei como eu coloco no código . Preciso de ajuda : isso seria para uma oportunidade de emprego

Eu compreendo isso, mas ao apontar para uma biblioteca, podias fazer download, instalar e testar um dos exemplo… se um dos exemplos funcionar vens aqui e perguntas como podes adicionar esse teste…

E para o fazeres seria algo como:

float flat, flon;
 
// returns +/- latitude/longitude in degrees
gps.f_get_position(&flat, &flon, &fix_age);


if (flat > 110 && flat < 111) {
   digitalWrite(buzzer, HIGH);
   delay(500);
   digitalWrite(buzzer, LOW);
} //podias repetir este codigo para os outros valores.

Isto não é uma oportunidade de emprego… é uma oportunidade para aprenderes algo de novo.

@tpmoitinho: Please stop using the "report to moderator control" - reply to the forum

This is new... someone actually tries to help and its reported to the moderator... :\