Receiver code of Wireless sensor network using NRF24L01P.

Dependencies:   mbed nRF24L01P

main.cpp

Committer:
eduvanceIoT
Date:
2016-09-10
Revision:
1:a7a6a47d25ca
Parent:
0:6decc57a1464

File content as of revision 1:a7a6a47d25ca:

#include "mbed.h"
#include "nRF24L01P.h"

Serial pc(USBTX, USBRX); 

//NRF connectioms
nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTD4);    // mosi, miso, sck, csn, ce, irq

//led for debugging purposes
DigitalOut GreenLED(LED2);


int main() {
    
    char count[2];
    char RxDataCnt;
    char temp;

    //waking up NRF module
    my_nrf24l01p.powerUp();
    
    //set frequency of receiver
    my_nrf24l01p.setRfFrequency(2410);

    //display some default parameters of NRF
    pc.printf( "nRF24L01+ Frequency    : %d MHz\r\n",  my_nrf24l01p.getRfFrequency() );
    pc.printf( "nRF24L01+ Output power : %d dBm\r\n",  my_nrf24l01p.getRfOutputPower() );
    pc.printf( "nRF24L01+ Data Rate    : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
    pc.printf( "nRF24L01+ TX Address   : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
    pc.printf( "nRF24L01+ RX Address   : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() );

    pc.printf( "Simple 2 Byte Receiver\r\n" );
    
    RxDataCnt = 2;
    
    //setting packet size
    my_nrf24l01p.setTransferSize( RxDataCnt );
    
    //setting NRF as receiver
    my_nrf24l01p.setReceiveMode();
    
    //enabling radio
    my_nrf24l01p.enable();

    while (1) {

        //If we've received anything in the nRF
        if (my_nrf24l01p.readable()) {

            //read the data into the receive buffer
            temp = my_nrf24l01p.read( NRF24L01P_PIPE_P0, count, RxDataCnt);

            pc.printf( "$%d %d;",count[0],count[1]);

            //Toggle LED2 for debugging purposes
            GreenLED = !GreenLED;
            wait_ms(10);
        }
    }
}