Arduino clock orologio e data

Ciao ragazzi, mi potete dare due dritte su come si gestiscono le funzioni time di arduino? In poche parole dovrei stampare a seriale ora e data utilizzando il clock di arduino, con la funzione setTime inizializzo il clock ogni volta che carico lo sketch su arduino, a me servirebbe riuscire ad acquisire automaticamente data ed ora da un pc e si ri-sincronizzi periodicamente. La libreria è qui: http://arduino.cc/playground/Code/Time

Hardware: arduino uno rev2

Grazie a tutti.

devi scrivere un sistema che leggendo da seriale una data la dia in pasto alla libreria.

poi in realtà esistono delle variabili che in fase di compilazione assumono data e ora della compilazione, quindi ogni volta che carichi lo sketch lo carichi con la data giusta (ok, magari sarà 5 o 6 secondi indietro ma non credo sia quello il problema)

lesto: devi scrivere un sistema che leggendo da seriale una data la dia in pasto alla libreria.

poi in realtà esistono delle variabili che in fase di compilazione assumono data e ora della compilazione, quindi ogni volta che carichi lo sketch lo carichi con la data giusta (ok, magari sarà 5 o 6 secondi indietro ma non credo sia quello il problema)

Con la setTime io inserisco la data e l'ora poi quando apro la seriale inizia a contare ma appena la chiudo riparte da zero. Per quello devo sincronizzare l'ora con il computer o ancora meglio con un server NTP....hai idee? Nella libreria Time ho letto in fondo un esempio sulla sincronizzazione con il pc ma non lo capisco assolutamente...spero che il forum mi possa aiutare

non se sia la soluzione ottimale ma io penserei anche di utilizzare il modulo GPS mediatek che ho comprato per 19 € (adesso mi pare che costi 22 o 23 €, ed estrarre da lì la data sempre perfettamente aggiornata.

Potresti avere anche altri dati sempre perfettamente aggiornati come ora etc...

forse non è la soluzione migliore ma, ameno che ti serva in una cantina o in una cassa metallica, avresti sempre data ed ora aggiornata .....

Controlla qui --> http://arduino.cc/forum/index.php/topic,73496.msg690248.html#msg690248 è stato fatto per l'uso della swRTC ma è facilmente adattabile. Più un basso che anche uno sketch di Pablos che usa un display LCD. Poi c'è un'altra discussione qui --> http://arduino.cc/forum/index.php/topic,94104.0.html

EDIT: Per sincronizzare tramite Internet ti serve una Ethernet Shield --> http://www.robot-italy.com/product_info.php?cPath=119_154&products_id=1747 o una wifi shield --> http://store.open-electronics.org/Arduino_WiFi_Shield

enri91:

lesto: devi scrivere un sistema che leggendo da seriale una data la dia in pasto alla libreria.

poi in realtà esistono delle variabili che in fase di compilazione assumono data e ora della compilazione, quindi ogni volta che carichi lo sketch lo carichi con la data giusta (ok, magari sarà 5 o 6 secondi indietro ma non credo sia quello il problema)

Con la setTime io inserisco la data e l'ora poi quando apro la seriale inizia a contare ma appena la chiudo riparte da zero. Per quello devo sincronizzare l'ora con il computer o ancora meglio con un server NTP....hai idee? Nella libreria Time ho letto in fondo un esempio sulla sincronizzazione con il pc ma non lo capisco assolutamente...spero che il forum mi possa aiutare

quando apri/chiudi la seriale resetti il micro. col trucco della data di compilazione non partiresti da 0 ma nemmeno dalla data corretta. Un RTC o un GPS è la soluzione se non vuoi collegarti al PC, altrimenti ci metti 2 minuti a farti un programma che ti imposta la data. provaci, posta i risultati e se non va vediamo di farlo andare :grin:

[quote author=Paolo S link=topic=106080.msg796171#msg796171 date=1337185392] non se sia la soluzione ottimale ma io penserei anche di utilizzare il modulo GPS mediatek che ho comprato per 19 € (adesso mi pare che costi 22 o 23 €, ed estrarre da lì la data sempre perfettamente aggiornata.

Potresti avere anche altri dati sempre perfettamente aggiornati come ora etc...

forse non è la soluzione migliore ma, ameno che ti serva in una cantina o in una cassa metallica, avresti sempre data ed ora aggiornata ..... [/quote] Grazie ragazzi, ora vado a informarmi sui link che mi avete postato comunque mi sono dimenticato di dirvi probabilmente un aspetto importante, dispongo della shield gsm/gprs di futura che utilizza il sim900, che voi sappiate posso ricavare data e ora utilizzando la connessione alla rete? Se sì spiegatemi come perchè è la prima cosa che ho cercato ma senza risultati, sarebbe anche meglio perchè giustamente è più precisa! Grazie a tutti ancora una volta :)

lesto:

enri91:

lesto:
devi scrivere un sistema che leggendo da seriale una data la dia in pasto alla libreria.

poi in realtà esistono delle variabili che in fase di compilazione assumono data e ora della compilazione, quindi ogni volta che carichi lo sketch lo carichi con la data giusta (ok, magari sarà 5 o 6 secondi indietro ma non credo sia quello il problema)

Con la setTime io inserisco la data e l’ora poi quando apro la seriale inizia a contare ma appena la chiudo riparte da zero. Per quello devo sincronizzare l’ora con il computer o ancora meglio con un server NTP…hai idee? Nella libreria Time ho letto in fondo un esempio sulla sincronizzazione con il pc ma non lo capisco assolutamente…spero che il forum mi possa aiutare

quando apri/chiudi la seriale resetti il micro. col trucco della data di compilazione non partiresti da 0 ma nemmeno dalla data corretta. Un RTC o un GPS è la soluzione se non vuoi collegarti al PC, altrimenti ci metti 2 minuti a farti un programma che ti imposta la data. provaci, posta i risultati e se non va vediamo di farlo andare :grin:

#include <Time.h>  

void setup()  {
  Serial.begin(9600);
  
 // inizializzo la data
 setTime(22,15,00,16,05,2012);
 
}

void loop(){    
  Serial.println("Utilizzo la setTime");    
  digitalClockDisplay();  
  delay(5000);
}

void digitalClockDisplay(){
  // digital clock display of the time

  Serial.print("ORA:  ");
  
  if((hour())<10) Serial.print(0);
  Serial.print(hour());
  Serial.print(":");
  if((minute())<10) Serial.print(0);
  Serial.print(minute());
  Serial.print(":");
  if((second())<10) Serial.print(0);
  Serial.print(second());
  
  Serial.println();
  
  Serial.print("DATA: ");
  if((day())<10) Serial.print(0);
  Serial.print(day());
  Serial.print("/");
  if((month())<10) Serial.print(0);
  Serial.print(month());
  Serial.print("/");
  Serial.print(year()); 
  
  Serial.println();
  Serial.println();
  }

Qui uso la setTime…ovviamente vorrei che si sincronizzasse con il sim900 o con un server NTP oppure con data e ora del computer…