Questo è il classico problema che si affronta quando c'è di mezzo una trasmissione dati attraverso un mezzo.
La cosa più importante da fare in questi casi è definire un protocollo di comunicazione e soltanto dopo si pensa al come realizzarlo dal punto di vista tecnico.
Ci sono svariate tecniche per comunicare una serie dati da un punto A ad un punto B (a prescindere dal mezzo e dall'hardware selezionato):
- usare un approccio tipo Comando A -> Azione A (ad esempio salvare la variabile A), Comando B -> Azione B etc etc
- impacchettare tutti i dati da trasmettere in una struct/union ed inviarli in un colpo solo
- usare un formato per lo scambio dei dati standard come il JSON e le relative librerie per il parsing
- usare librerie già fatte da altri
- etc etc
Tornando al caso specifico, tu stai usando dei moduli radio con una manciata di byte da trasmettere e la seconda soluzione potrebbe essere quella più adeguata.
I dati però non vanno mai trasmessi cosi come sono perché la trasmissione è asincrona e sempre suscettibile di errore (soprattutto nel tuo caso in cui usi un modulo radio).
Un protocollo semplicissimo può essere quello di inviare byte per byte un "telegramma" a lunghezza fissa composto da:
<START> <BYTE_0> <BYTE_1> <BYTE_2> ... <BYTE_N> <STOP> <CRC>
I byte di start/stop ti consentono di sincronizzare con esattezza la trasmissione tra i due device, il byte di CRC ( controllo di ridondanza ciclico o cyclic redundancy check) ti consente di scartare i telegrammi "disturbati" e quindi con errori (il byte di CRC ricevuto non corrisponderebbe a quello calcolato in tal caso).
Nella discussione di cui ho messo il link più su trovi un paio di esempi (post #16, post #19) su dei possibili modi di implementare una trasmissione del genere.