RTC DS1307 auto aggionamento ora

Beh, visto che ce n’è una pletora, di librerie per il DS1307, mi pare uno spreco di tempo e fatica. :wink:

PaoloP: La libreria a cui faccio riferimento io è questa: https://github.com/adafruit/RTClib

Yes, è quella che uso anche io.

Credo che il codice possa essere:

RTC.adjust(RTC.DateTime(secondidal1970));

Nein... questo codice non compila :) Alla fine il mio cervello è tornato on line, il codice giusto sembra essere quello che ho scritto nel post precedente. Ovviamente corretto della svista sul tempo unix!

RTC.adjust(DateTime(secondidal1970));

La variabile deve essere secondi dal 1970 e non dal 1900 ;)

Hai perfettissimamente ragione, sono stata scemotta io, credevo che la libreria avesse una costante per passare dal 1900 al tempo unix... ed invece nn l'aveva! misteri miseriosi!

Adesso ho un web server/web client che riceve il pacchetto ntp, lo manda via seriale ad un secondo arduino che lo riceve e aggiusta l'RTC a cui è collegato. Figata, ho uno scarto di circa tre secondi dall'orario dell' INRIM. Alla fine ho scelto il server del INRIM perchè, leggendo, ho imparato è che questo istituto a distribuire il tempo in italia... quindi tantovale prenderlo alla fonte :)

Bon, gira e rigira... direi che abbiam fatto tutto!

No! Manca la domanda fondamentale.

Cosa coltivi nella serra? :D

L'hanno già fatta :P Orchidee :) E forse, se quest'anno riesco a procurameli alla mostra mercato dei Fiori nella Rocca, fiori di loto! :)

Dimenticavo una cosa, l’NTP invia il tempo UTC.
Quindi per avere l’ora con il fuso orario italiano vanno aggiunti (indifferentemente dove vi pare, io li ho messi nell’unixtime) 3600 secondi. Ovvero un ora :slight_smile:

E' una formula che calcola il giorno della settimana partendo dall'epoca di riferimento prendendo il timestamp modulo 7, dato che i giorni della settimana sono appunto 7, e sommando 4 perché il giorno di riferimento per l'epoca 0.0 era giovedì (contando da 0 a 6). Sommo 4 perché l'epoca 0.0 non esiste come giorno sul calendario, il primo gennaio non è il giorno 0/01 ma il giorno 1/01, per cui devo prendere 3 per il giovedì +1 per l'intero del giorno.

Riguardo il DS1307 ho trovato una interessante libreria: http://code.google.com/p/ds1307new/ Qui il reference: http://code.google.com/p/ds1307new/wiki/Reference

sto usando il ds1307 come vuoi farlo tu, però tieni presente che se usi un server NTP esterno, per quanto so io, e non un tuo server, il serve NTP non ti dà l'ora solare o legale, non ti dà neanche l'ora secondo il tuo timezone, quindi sei tu che devi gestirti il cambio di ora solare/legale e aggiustare l'orario che ti arriva sommando +1 (gmt+1 per l'italia) e +1 quando serve (legale/solare)

se invece usi ad esempio un server che ha già l'ora settata correttamente e fa lui i conti per ora solare/legale non ti si pone il problema, non vorrei sbagliarmi ma i server NTP danno sempre l'ora in UTC (tempo cordinato universale)

Confermo, il server ntp mi manda il tempo UTC. Il fuso l'ho aggiornato aggiungendo l'ora che serviva per l'Italia... Però non avevo pensato alla questione dell'ora legale / solare. C'è un server ufficiale che manda l'ora esatta italiana? Quindi con tutti gli aggiornamenti del caso?

Vedo che vi state buttando sulla soluzione tcp, ma nessuno e' mai riuscito a far funzionare il DCF77? Io possiedo due moduli che non hanno mai restituito niente... F

Federico: Vedo che vi state buttando sulla soluzione tcp, ma nessuno e' mai riuscito a far funzionare il DCF77? Io possiedo due moduli che non hanno mai restituito niente... F

L'ho ordinato e dovrebbe arrivare la prossima settimana. Poi lo testo e apriamo un Topic tutto per lui.. ;)

PaoloP:

Federico:
Vedo che vi state buttando sulla soluzione tcp, ma nessuno e’ mai riuscito a far funzionare il DCF77? Io possiedo due moduli che non hanno mai restituito niente…
F

L’ho ordinato e dovrebbe arrivare la prossima settimana.
Poi lo testo e apriamo un Topic tutto per lui… :wink:

Bravo, sai mai che troviamo l’illuminazione

Fede, nemmno sapevo cosa fosse un dcf77 prima del tuo post... Dopo aver letto wikipedia ho scoperto che probabilmente ho avuto decine di radiosveglie con questa cosa :d Non ha mai funzionato nemmeno su queste :p Ricordo che dovevo sempre correggere i passaggi di ora a mano!

Credo di essere incappato tempo fa anche io per caso nel DCF77, mi sembrava una figata e me ne sono procurato due. Purtroppo non riesco a farli funzionare, non so se possiedo codice erroneo, se non prendono a casa mia o che altro...

Ho una radiosveglia radio controllata e a Cagliari il segnale arriva. A Milano perciò si dovrebbe prendere anche un po' meglio. Sempre che tu non sia in uno scantinato o circondato da palazzoni. -> Ne possiamo discutere qui: http://arduino.cc/forum/index.php/topic,94685.0.html