millis o unixtime?

Il timer 2 è il terzo dei 3 timer contenuti all'interno di un Atmega328. Il primo, il timer 0, è usato per le funzioni temporali di Arduino ed è ad 8 bit; il secondo è il timer 1, ed è a 16 bit; il terzo è il timer 2, ad 8 bit ancora, che uso per la secTimer.

Un timer è un contatore incrementato in HW, quindi in modo indipendente dal tuo codice. Al raggiungimento di un certo valore preimpostato oppure al suo overflow, può generare un interrupt, intercettando il quale si possono programmare dei compiti. Io uso l'overflow per aggiornare il contatore di secondi.

L'RTC esterno è un orologio. Se la lib ti fornire la funzione del tempo unix puoi usare quella per programmare intervalli nel futoro. Altrimenti imposti un orario nella forma oo:mm:ss e basta che confronti l'ora, minuti, secondi attuali con quella nel tuo allarme ed attivare la funzione desiderata allo scoccare dello stesso.