SANIKA `WADEKAR / Mbed 2 deprecated mbed_WSN_receiver_assignment

Dependencies:   mbed nRF24L01P

Committer:
sanirash
Date:
Sun Jun 26 03:42:51 2016 +0000
Revision:
0:56d18c34a019
M;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sanirash 0:56d18c34a019 1 /*****Multiceiver wireless network*****/
sanirash 0:56d18c34a019 2
sanirash 0:56d18c34a019 3 #include "mbed.h"
sanirash 0:56d18c34a019 4 #include "nRF24L01P.h"
sanirash 0:56d18c34a019 5
sanirash 0:56d18c34a019 6 Serial pc(USBTX, USBRX); // tx, rx
sanirash 0:56d18c34a019 7
sanirash 0:56d18c34a019 8 nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTD4); // mosi, miso, sck, csn, ce, irq
sanirash 0:56d18c34a019 9
sanirash 0:56d18c34a019 10 //blue for pipe1 and green for pipe0
sanirash 0:56d18c34a019 11 DigitalOut GreenLED(LED2);
sanirash 0:56d18c34a019 12 DigitalOut RedLED(LED1);
sanirash 0:56d18c34a019 13
sanirash 0:56d18c34a019 14 int main() {
sanirash 0:56d18c34a019 15
sanirash 0:56d18c34a019 16 char RxDataCnt_PIPE0;
sanirash 0:56d18c34a019 17 char temp;
sanirash 0:56d18c34a019 18 char abc;
sanirash 0:56d18c34a019 19 char buff[1];
sanirash 0:56d18c34a019 20 GreenLED=1;
sanirash 0:56d18c34a019 21 RedLED=1;
sanirash 0:56d18c34a019 22 //specifying address same as transmitter for pipe0 and pipe1
sanirash 0:56d18c34a019 23
sanirash 0:56d18c34a019 24 long long RxAddress_PIPE0 = 0xE7E7E7E7E7;
sanirash 0:56d18c34a019 25
sanirash 0:56d18c34a019 26 my_nrf24l01p.powerUp();
sanirash 0:56d18c34a019 27 my_nrf24l01p.setRfFrequency(2425);
sanirash 0:56d18c34a019 28
sanirash 0:56d18c34a019 29 //set rx address with default address and for specified pipe
sanirash 0:56d18c34a019 30
sanirash 0:56d18c34a019 31 my_nrf24l01p.setRxAddress(RxAddress_PIPE0, DEFAULT_NRF24L01P_ADDRESS_WIDTH, NRF24L01P_PIPE_P0);
sanirash 0:56d18c34a019 32
sanirash 0:56d18c34a019 33
sanirash 0:56d18c34a019 34 // Display the (default) setup of the nRF24L01+ chip
sanirash 0:56d18c34a019 35 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
sanirash 0:56d18c34a019 36 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
sanirash 0:56d18c34a019 37 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
sanirash 0:56d18c34a019 38
sanirash 0:56d18c34a019 39 //display rx address for both pipes
sanirash 0:56d18c34a019 40 pc.printf( "nRF24L01+ RX Address - PIPE0 : 0x%010llX\r\n", my_nrf24l01p.getRxAddress(NRF24L01P_PIPE_P0) );
sanirash 0:56d18c34a019 41
sanirash 0:56d18c34a019 42
sanirash 0:56d18c34a019 43 pc.printf( "Wireless Sensor Network - Multiceiver\r\n" );
sanirash 0:56d18c34a019 44
sanirash 0:56d18c34a019 45 RxDataCnt_PIPE0 = 1;
sanirash 0:56d18c34a019 46
sanirash 0:56d18c34a019 47
sanirash 0:56d18c34a019 48 //set transfer size explicitly for both pipes
sanirash 0:56d18c34a019 49
sanirash 0:56d18c34a019 50 my_nrf24l01p.setTransferSize(RxDataCnt_PIPE0, NRF24L01P_PIPE_P0);
sanirash 0:56d18c34a019 51
sanirash 0:56d18c34a019 52 my_nrf24l01p.setReceiveMode();
sanirash 0:56d18c34a019 53 my_nrf24l01p.enable();
sanirash 0:56d18c34a019 54
sanirash 0:56d18c34a019 55 while (1) {
sanirash 0:56d18c34a019 56
sanirash 0:56d18c34a019 57 //check if data is available in pipe0
sanirash 0:56d18c34a019 58 if ( my_nrf24l01p.readable(NRF24L01P_PIPE_P0) )
sanirash 0:56d18c34a019 59 {
sanirash 0:56d18c34a019 60
sanirash 0:56d18c34a019 61 // ...read the data into the receive buffer
sanirash 0:56d18c34a019 62 temp = my_nrf24l01p.read( NRF24L01P_PIPE_P0, buff, RxDataCnt_PIPE0 );
sanirash 0:56d18c34a019 63
sanirash 0:56d18c34a019 64 abc=buff[0];
sanirash 0:56d18c34a019 65
sanirash 0:56d18c34a019 66 pc.printf("Received: %d bytes from PIPE0; POT=%d\r\n",temp,buff[0]);
sanirash 0:56d18c34a019 67
sanirash 0:56d18c34a019 68 if(abc=='R')
sanirash 0:56d18c34a019 69 {
sanirash 0:56d18c34a019 70 pc.printf("%c",abc);
sanirash 0:56d18c34a019 71 RedLED =0;
sanirash 0:56d18c34a019 72 }
sanirash 0:56d18c34a019 73 else if(abc=='r')
sanirash 0:56d18c34a019 74 {
sanirash 0:56d18c34a019 75 pc.printf("%c",abc);
sanirash 0:56d18c34a019 76 RedLED =1;
sanirash 0:56d18c34a019 77 }
sanirash 0:56d18c34a019 78 else if(abc=='g')
sanirash 0:56d18c34a019 79 { pc.printf("%c",abc);
sanirash 0:56d18c34a019 80 GreenLED =1;
sanirash 0:56d18c34a019 81
sanirash 0:56d18c34a019 82 }
sanirash 0:56d18c34a019 83 else if(abc=='G')
sanirash 0:56d18c34a019 84 {
sanirash 0:56d18c34a019 85 pc.printf("%c",abc);
sanirash 0:56d18c34a019 86 GreenLED=0;
sanirash 0:56d18c34a019 87 }
sanirash 0:56d18c34a019 88 }
sanirash 0:56d18c34a019 89 wait_ms(100);
sanirash 0:56d18c34a019 90 }
sanirash 0:56d18c34a019 91
sanirash 0:56d18c34a019 92
sanirash 0:56d18c34a019 93
sanirash 0:56d18c34a019 94 }