Node on PIPE1 for Wireless sensor network over NRF.

Dependencies:   mbed nRF24L01P

Fork of WSN_Coordinator by Eduvance SIT2017

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers node1.cpp Source File

node1.cpp

00001 /****PIPE1 Transmitter****/
00002 
00003 #include "mbed.h"
00004 #include "nRF24L01P.h"
00005  
00006 Serial pc(USBTX, USBRX); // tx, rx
00007  
00008 nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTD4);    // mosi, miso, sck, csn, ce, irq
00009 DigitalOut RedLED(PTA5);
00010 AnalogIn pot(A0);
00011  
00012 int main()
00013 {
00014     char count[1];
00015     char TxDataCnt;
00016     char temp;
00017     
00018     //set tx and rx address for pipe1: 5bytes long; different for every pipe
00019     long long TxAddress_PIPE1 = 0xE2E2E2E2E2;
00020     long long RxAddress_PIPE1 = 0xE2E2E2E2E2;
00021  
00022     my_nrf24l01p.powerUp();
00023     my_nrf24l01p.setRfFrequency(2410);
00024     
00025     //set tx address
00026     my_nrf24l01p.setTxAddress(TxAddress_PIPE1);
00027     
00028     //set rxaddress with default width for specified pipe
00029     my_nrf24l01p.setRxAddress(RxAddress_PIPE1, DEFAULT_NRF24L01P_ADDRESS_WIDTH, NRF24L01P_PIPE_P1);
00030     
00031     // Display the (default) setup of the nRF24L01+ chip
00032     pc.printf( "nRF24L01+ Frequency    : %d MHz\r\n",  my_nrf24l01p.getRfFrequency() );
00033     pc.printf( "nRF24L01+ Output power : %d dBm\r\n",  my_nrf24l01p.getRfOutputPower() );
00034     pc.printf( "nRF24L01+ Data Rate    : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
00035     pc.printf( "nRF24L01+ TX Address - PIPE1   : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
00036     
00037     pc.printf( "Wirelesss sensor network \r\n");
00038         
00039     TxDataCnt = 1;
00040     
00041     //set transfer size for each pipe
00042     my_nrf24l01p.setTransferSize(TxDataCnt, NRF24L01P_PIPE_P1);
00043     my_nrf24l01p.enable();
00044     
00045     char pot_val;
00046     
00047     while (1) {
00048         
00049         //adjusting data to 0-255 with char data type
00050         pot_val = 255*(pot.read());
00051         
00052         count[0] = pot_val;
00053         
00054         //transmit on specified pipe
00055         temp = my_nrf24l01p.write( NRF24L01P_PIPE_P1,count, TxDataCnt );
00056  
00057         pc.printf( "Sending %d bytes from PIPE1; POT=%d\r\n",temp,count[0]);
00058  
00059         // Toggle LED1 (to help debug Host -> nRF24L01+ communication)
00060         RedLED = !RedLED;
00061           
00062         wait(1);
00063     }
00064 }