PREAMBLE
È una sequenza di bit usata per sincronizzare il demodulatore del ricevitore con il flusso di bit che ha in ingreso. Questa sequenza dipende dal primo bit dell’indirizzo: se è 1, il preambolo sarà 10101010; altrimenti sarà 01010101.
ADDRESS
È l’indirizzo del ricevitore che assicura una corretta da parte del ricevitore per evitare comunicazioni accidentali tra diversi sistemi nRF24L01+.
PACKET CONTROL FIELD:
È una parte di frame che contiene diversi campi:
- Payload length: un campo di 6 bit che indica la lunghezza del Payload; è utilizzato solamente se è attivo i Dynamic Payload.
- PID: un campo da 2 bit per identificare i pacchetti inviati. È un numero che continua a incrementare per evitare che un frame inviato due volte possa essere scambiato per due frame differenti. Viene incrementato ogni volta che l’nRF24l01+ riceve un dato tramite SPI. Viene confrontato insieme al CRC per determinare se è un pacchetto nuovo o uno già inviato. Se entrambi sono uguali, allora il secondo frame verrà classificato come una copia del precedente.
- No Acknowledgment flag: gestisce autonomamente l’ACK del frame, utilizzato solo se è abilitato l’auto-acknowledgment.
PAYLOAD
È il campo che può essere modificato dall’utente e può avere dimensioni che variano da 0 a 32 byte. Per questo motivo noi abbiamo deciso di utilizzare 32 byte, dividendoli in diversi campi che identificano il tipo di dato da inviare e lo slave e contengono il dato.
FRAME TYPE
Numero identificativo del frame che viene inviato. È diverso per ogni tipo di comunicazione:
- 69 (pairing): frame generato dallo slave che permette di effettuare il pairing tra slave e master;
- 70 (pairing-reply): frame generato dal master che contiene ID e nome (temporaneo) dello slave;
- 40 (delete): inviato dallo slave prima del reset per effettuare il disaccoppiamento ed eliminare il documento associato allo slave sul database e rende di nuovo disponibile il suo ID;
- 104 (dato): frame che conterrà il dato rilevato da un sensore da caricare sul database.
ID SLAVE
Campo che contiene il numero a 4byte (tre fissi e il quarto incrementale) che identifica il dispositivo per la comunicazione con il master. L’ID viene generato dal master (come viene generato verrà spiegato successivamente nella sezione master) e associato allo slave durate il pairing.
NAME SLAVE
Campo a 20byte che contiene il nome del device. Generato anch’esso dal master e associato, insieme all’ID, durante il pairing.
DATA TYPE
Questo campo è presente nel frame che invia il dato (ovvero con Frame Type uguale a 104) e identifica il sensore (e quindi il tipo di dato) che verrà inviato dallo slave e ricevuto dal master. Nel nostro progetto possiamo trovare diversi tipi di sensori e relativi Data Type:
- 97 : temperatura;
- 99 : umidità;
- 101 : presenza gas;
- 103 : pressione.
- Eventuali altri sensori avranno un identificativo
DATO
Contiene il valore misurato dallo specifico sensore, che verrà inviato al master.