Si questa potrebbe essere una soluzione, ovvero tenere il tempo solo con il nodo centrale(nel vostro caso la centrale) e mandare direttamente in sleep gli altri. La comunicazione che posso effettuare è la seguente:
-
Il nodo si sveglia e rimane sveglio per un tempo pari ad esempio 8 secondi e lo comunica al nodo centrale, indicandogli il tempo trascorso dall'attivazione.
-
il nodo centrale richiede il dato e una volta ricevuto manda un ack al nodo periferico, che una volta terminato il range di 8 secondi, va in modalità sleep.
3)Dal momento in cui l'altro nodo finisce di comunicare dovrebbe partire l'altro nodo periferico, e così via.
In questo caso però interviene una comunicazione in più con il nodo centrale,dato che comunque devo avvisare il nodo centrale dell'attivazione di quel nodo. Purtroppo credo che senza l'utilizzo di RTC esterni, mi toccherà per forza utilizzare un metodo di questo genere. Andare a correggere gli errori di drift e offset non è una buona idea, anche perchè i timer di arduino, non sono tanto affidabili.
Se qualcuno ha in mente un altro metodo, è ben accetto.