Wireless sensor network to log LDR and Potentiometer values on Serial terminal. Wireless module used is NRF24L01P. This is the receiver code.

Dependencies:   mbed nRF24L01P

Fork of kl25Z_nRF_RX by Ganesh Gore

Receiver.cpp

Committer:
janhavi
Date:
2016-05-24
Revision:
3:208abcd4751d
Parent:
2:9f401852272c

File content as of revision 3:208abcd4751d:

#include "mbed.h"
#include "nRF24L01P.h"
 
Serial pc(USBTX, USBRX); // tx, rx
 
nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTD4);    // mosi, miso, sck, csn, ce, irq
DigitalOut GreenLED(LED2);
PwmOut RedLed(LED1);
 
int main() {
    
    char count[2];
    char RxDataCnt;
    char temp;
    
    float ldr_val, pot_val;
 
    my_nrf24l01p.powerUp();
    my_nrf24l01p.setRfFrequency(2410);
 
    // Display the (default) setup of the nRF24L01+ chip
    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;
    my_nrf24l01p.setTransferSize( RxDataCnt );
    
    my_nrf24l01p.setReceiveMode();
    my_nrf24l01p.enable();
 
    while (1) {
 
        // If we've received anything in the nRF24L01+...
        if ( my_nrf24l01p.readable() ) {
 
            // ...read the data into the receive buffer
            temp = my_nrf24l01p.read( NRF24L01P_PIPE_P0, count, RxDataCnt );
 
            ldr_val = count[0]/255.0;
            pot_val = count[1]/255.0;
            
            //change according to need here; Im printing on serial terminal
            pc.printf("Received: %d bytes ;LDR=%.3f, POT=%.3f\r\n",temp,ldr_val, pot_val);
            
            // Toggle LED2 (to help debug nRF24L01+ -> Host communication)
            GreenLED = !GreenLED;
            wait_ms(10);
        }
    }
}