Show Posts
Pages: 1 [2] 3
16  Using Arduino / Programming Questions / datalog - gps - sdcard on: November 11, 2012, 05:45:40 pm
Hello guys, please
I'm using the sample code TinyGPS, and I can not write the data to an SD card.
Can someone help me?

thanks...Sérgio

-----------------------------
#include <SoftwareSerial.h>
#include <TinyGPS.h>


TinyGPS gps;
SoftwareSerial nss(2, 3);

static void gpsdump(TinyGPS &gps);
static bool feedgps();
static void print_float(float val, float invalid, int len, int prec);
static void print_int(unsigned long val, unsigned long invalid, int len);
static void print_date(TinyGPS &gps);
static void print_str(const char *str, int len);

void setup()
{
  Serial.begin(19200);
  nss.begin(9600);
 
  Serial.print("Testing TinyGPS library v. "); Serial.println(TinyGPS::library_version());
//  Serial.println("by Mikal Hart");
  Serial.println();
  Serial.print("Sizeof(gpsobject) = "); Serial.println(sizeof(TinyGPS));
  Serial.println();
  Serial.println("Sats HDOP Latitude Longitude Fix  Date       Time       Date Alt     Course Speed Card  Distance Course Card  Chars Sentences Checksum");
  Serial.println("          (deg)    (deg)     Age                        Age  (m)     --- from GPS ----  ---- to London  ----  RX    RX        Fail");
  Serial.println("--------------------------------------------------------------------------------------------------------------------------------------");
}

void loop()
{
  bool newdata = false;
  unsigned long start = millis();
 
  // Every second we print an update
  while (millis() - start < 1000)
  {
    if (feedgps())
      newdata = true;
  }
 
  gpsdump(gps);
}

static void gpsdump(TinyGPS &gps)
{
//Serial.println(); 
  float flat, flon;
  unsigned long age, date, time, chars = 0;
  unsigned short sentences = 0, failed = 0;
  static const float LONDON_LAT = 51.508131, LONDON_LON = -0.128002;
 
//Serial.println(); 
//  Serial.println("num de satelites, hdop, lat, lon, age");
  print_int(gps.satellites(), TinyGPS::GPS_INVALID_SATELLITES, 5);
  print_int(gps.hdop(), TinyGPS::GPS_INVALID_HDOP, 5);
  gps.f_get_position(&flat, &flon, &age);
  print_float(flat, TinyGPS::GPS_INVALID_F_ANGLE, 9, 5);
  print_float(flon, TinyGPS::GPS_INVALID_F_ANGLE, 10, 5);
  print_int(age, TinyGPS::GPS_INVALID_AGE, 5);

//Serial.println();
//   Serial.println("data month, day, year, hour, minute, second");
  print_date(gps);
 
//Serial.println();
//  Serial.println("altitude    curso   velocidade  curso  contasd para londres");
  print_float(gps.f_altitude(), TinyGPS::GPS_INVALID_F_ALTITUDE, 8, 2);
  print_float(gps.f_course(), TinyGPS::GPS_INVALID_F_ANGLE, 7, 2);
  print_float(gps.f_speed_kmph(), TinyGPS::GPS_INVALID_F_SPEED, 6, 2);
  print_str(gps.f_course() == TinyGPS::GPS_INVALID_F_ANGLE ? "*** " : TinyGPS::cardinal(gps.f_course()), 6);
  print_int(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0UL : (unsigned long)TinyGPS::distance_between(flat, flon, LONDON_LAT, LONDON_LON) / 1000, 0xFFFFFFFF, 9);
  print_float(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : TinyGPS::course_to(flat, flon, 51.508131, -0.128002), TinyGPS::GPS_INVALID_F_ANGLE, 7, 2);
  print_str(flat == TinyGPS::GPS_INVALID_F_ANGLE ? "*** " : TinyGPS::cardinal(TinyGPS::course_to(flat, flon, LONDON_LAT, LONDON_LON)), 6);

//Serial.println();
//  Serial.println("char????  sentences????? error");
  gps.stats(&chars, &sentences, &failed);
  print_int(chars, 0xFFFFFFFF, 6);
  print_int(sentences, 0xFFFFFFFF, 10);
  print_int(failed, 0xFFFFFFFF, 9);
  Serial.println();
}

static void print_int(unsigned long val, unsigned long invalid, int len)
{
  char sz[32];
  if (val == invalid)
    strcpy(sz, "*******");
  else
    sprintf(sz, "%ld", val);
  sz[len] = 0;
  for (int i=strlen(sz); i<len; ++i)
    sz = ' ';
  if (len > 0)
    sz[len-1] = ' ';
  Serial.print(sz);
  feedgps();
}

static void print_float(float val, float invalid, int len, int prec)
{
  char sz[32];
  if (val == invalid)
  {
    strcpy(sz, "*******");
    sz[len] = 0;
        if (len > 0)
          sz[len-1] = ' ';
    for (int i=7; i<len; ++i)
        sz = ' ';
    Serial.print(sz);
  }
  else
  {
    Serial.print(val, prec);
    int vi = abs((int)val);
    int flen = prec + (val < 0.0 ? 2 : 1);
    flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1;
    for (int i=flen; i<len; ++i)
      Serial.print(" ");
  }
  feedgps();
}

static void print_date(TinyGPS &gps)
{
  int year;
  byte month, day, hour, minute, second, hundredths;
  unsigned long age;
  gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);
  if (age == TinyGPS::GPS_INVALID_AGE)
    Serial.print("*******    *******    ");
  else
  {
    char sz[32];
    sprintf(sz, "%02d/%02d/%02d %02d:%02d:%02d   ",
        month, day, year, hour, minute, second);
    Serial.print(sz);
  }
  print_int(age, TinyGPS::GPS_INVALID_AGE, 5);
  feedgps();
}

static void print_str(const char *str, int len)
{
  int slen = strlen(str);
  for (int i=0; i<len; ++i)
    Serial.print(i<slen ? str : ' ');
  feedgps();
}

static bool feedgps()
{
  while (nss.available())
  {
    if (gps.encode(nss.read()))
      return true;
  }
  return false;
}
17  International / Portugues / Re: enviar sms - numero como variavel on: November 11, 2012, 10:49:47 am
Pessoal, obrigado a todos.
Consegui com o código abaixo.

char Vrsms = 1234567890;

char FtResp(String tMsg){
  mySerial.print("\r");
  delay(1000);               
  mySerial.print("AT+CMGF=1\r"); 
  delay(1000);
  Serial.print(mySerial.print("AT+CMGS=\""));
  Serial.print(mySerial.print(Vrsms));
  Serial.print(mySerial.println("\""));
  delay(1000);
  mySerial.print(tMsg);
  delay(1000);
  mySerial.write(26);
  delay(20000);
}
18  Using Arduino / Programming Questions / Re: please, compare two variables on: November 09, 2012, 02:42:10 pm
thank you  very much
19  Using Arduino / Programming Questions / Re: please, compare two variables on: November 09, 2012, 12:15:58 pm
thank you very much.
20  Using Arduino / Programming Questions / Re: please, compare two variables on: November 09, 2012, 12:03:28 pm
thanks for the help
but lacked information on my part.

have:

Vrsms char [13] = "011983000000" / / phone number
String VTRec / / phone number

I get a sms and store the phone number that sent the sms

Serial.println (String (info));
VNumData = String (String (info));
VTRec = (VNumData.substring (32.44));

and need to do:

if (Vrsms == VTRec) {
  SMS sends the response only to Vrsms
else if
  SMS sends the response only to Vrsms and VTRec
}

Can you help me?

Thank very you.
21  Using Arduino / Programming Questions / please, compare two variables on: November 09, 2012, 11:41:43 am
please doubts basic,

how to compare the value of two variables?

eg

var1 = 1
var2 = 2

if (var1 == var2) {
do something;
Else if} {
do something;
}

Can you help me?

thank you

Sergio
22  International / Portugues / enviar sms - numero como variavel on: October 28, 2012, 08:38:20 pm
Ola pessoal,
estou usando o código abaixo para enviar sms. Mas preciso usar o numero de telefone como uma variável e não consigo.
Tentei algo como criar a variável. String numero =  "+551198151034"; e substituir a linha do telefone   mySerial.print("AT+CMGS=\"+5511981510340\"\r");  por

mySerial.print("AT+CMGS=\"");
mySerial.print(numero);
mySerial.print("\"\r");

mas o sms não sai.
Alguém já conseguiu algo parecido?

obrigado

 -----------codigo

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); //8 TX, 7 RX

void setup()
{
  mySerial.begin(4800);               
  Serial.begin(19200);
}
 
void loop()
{
  mySerial.print("\r");
  delay(1000);               
  mySerial.print("AT+CMGF=1\r"); 
  delay(1000);
  mySerial.print("AT+CMGS=\"+5511981510340\"\r"); 
  delay(1000);
  mySerial.print("SIM900 and Arduino say Hi!\r");
  delay(1000);
  mySerial.write(26);
}
23  Using Arduino / Programming Questions / arduino - remote activation by sms on: October 17, 2012, 09:44:18 am
Dear, someone has some example code on the arduino remote activation by sms?
I have a shild with SIM900.
thank you very much

Have a nice day.

Sergio
24  International / Portugues / Re: o arduino desligando ele próprio??? on: May 23, 2012, 03:57:56 pm
Muito obrigado HugoPT.
E se eu trocar o rele por um transistor...será que dá certo?

Muito obrigado pela ajuda.

Sérgio
25  International / Portugues / o arduino desligando ele próprio??? on: May 22, 2012, 09:31:57 pm
Por favor,
tenho um circuito com o arduino, display de leds e CI 74hc595.
preciso que o arduino desligar todo o circuito após certo tempo sem uso.
Algém pode me dar uma idéia de como fazer?
Muito obrigado.

Sérgio
26  International / Portugues / Re: sensor de corrente - arduino on: September 22, 2011, 09:16:49 am
não seria isso que você procura?
http://www.seeedstudio.com/depot/noninvasive-ac-current-sensor-100a-max-p-547.html?cPath=144_154
um sensor para corrente AC, bem simples e fácil adaptação para um Arduino!


Alguém sabe se consigo (no Brasil) o sensor que o Radames indicou?

Wagner gostei muito do seu projeto e dos que você indicou.
Não intendo bem como fazer para ter os logs gravados no site tipo o https://pachube.com/ o seu está no http://oss.oetiker.ch/rrdtool/ certo?
Pode me falar um pouco sobre ele? Digo como fazer para o arduino enviar os dados para lá ou coisa assim? Desculpe...sou novo com tudo isso.

Muito obrigado a todos
27  International / Portugues / Re: sensor de corrente - arduino on: September 19, 2011, 10:05:38 am
Amigos, muito obrigado...
Alguns eu já tinha visto, agora preciso ver como adaptar apenas para me indicar se tem energia ou não.
Assim que desenvolver algo envio para todos.

Obrigado.
28  International / Portugues / sensor de corrente - arduino on: September 17, 2011, 05:10:39 pm
Olá amigos,
Alguém tem alguma sugestão ou ideia de como montar um detector de corrente? Explico.
Estou desenvolvendo um projeto e preciso saber se tem energia na tomada. Caso falte o arduino executa uma tarefa.
Podem me ajudar?

Obrigado

Sérgio
29  Forum 2005-2010 (read only) / Portugues / Re: novato - indicação do hardware on: May 10, 2010, 11:50:08 am
Muito obrigado, vou tentar hoje mesmo.

PS... qual outro transistor eu poderia estar usando? rsrs
30  Forum 2005-2010 (read only) / Portugues / Re: novato - indicação do hardware on: May 09, 2010, 06:51:17 pm
Começaram as experiências..rsrs

Mas essa é sem o arduino.

Estou querendo controlar o acionamento de um rele  com uma foto célula, e achei alguns esquemas na net usando o transistor P2N2 222A.
Liguei um led e funcionou bem mas o rele não rola.
A saída do transistor me dá no máximo 3V e o rele é de 5V.

Tem algum esquema para isso? E que controle uma corrente maior?

Estou usando isso:
http://www.aaroncake.net/circuits/lightdrk.gif

Mas queria algo assim:
http://www.leomar.com.br/modelix/images/stories/SensoresComponentes/Sensor%20de%20luz%201.jpg

Esse do site sai por R$ 18,00, mas só vendem 4.
http://www.leomar.com.br/modelix/index.php?option=com_content&view=article&id=103:kit-com-4-pecas-de-sensor-de-luz-6-v&catid=56:sensores-e-componentes&Itemid=79&lang=pt



Obrigado.

Pages: 1 [2] 3