Wireless sensor network to log LDR and Potentiometer values on Serial terminal. Wireless module used is NRF24L01P. This is the receiver code.
Fork of kl25Z_nRF_RX by
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);
}
}
}
