![](/media/cache/profiles/bd5efd20660e5dbb53b426359cbeb5bc.jpg.50x50_q85.png)
Node on PIPE0 for Wireless sensor network over NRF.
Fork of WSN_Coordinator by
Revision 5:dfff2a4e46d1, committed 2016-06-06
- Comitter:
- SIT2016
- Date:
- Mon Jun 06 11:04:28 2016 +0000
- Parent:
- 4:b3a70cbb7c81
- Commit message:
- Node on PIPE1 for Wireless sensor network over NRF.
Changed in this revision
Receiver.cpp | Show diff for this revision Revisions of this file |
node0.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r b3a70cbb7c81 -r dfff2a4e46d1 Receiver.cpp --- a/Receiver.cpp Mon Jun 06 10:57:33 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -/*****Multiceiver wireless network*****/ - -#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 - -//blue for pipe1 and green for pipe0 -DigitalOut GreenLED(PTA12); -DigitalOut BlueLED(PTC8); - -int main() { - - char count[1]; - char RxDataCnt_PIPE0, RxDataCnt_PIPE1; - char temp; - - //specifying address same as transmitter for pipe0 and pipe1 - long long RxAddress_PIPE1 = 0xE2E2E2E2E2; - long long RxAddress_PIPE0 = 0xC2C2C2C2C2; - - my_nrf24l01p.powerUp(); - my_nrf24l01p.setRfFrequency(2410); - - //set rx address with default address and for specified pipe - my_nrf24l01p.setRxAddress(RxAddress_PIPE1, DEFAULT_NRF24L01P_ADDRESS_WIDTH, NRF24L01P_PIPE_P1); - my_nrf24l01p.setRxAddress(RxAddress_PIPE0, DEFAULT_NRF24L01P_ADDRESS_WIDTH, NRF24L01P_PIPE_P0); - - - // 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() ); - - //display rx address for both pipes - pc.printf( "nRF24L01+ RX Address - PIPE0 : 0x%010llX\r\n", my_nrf24l01p.getRxAddress(NRF24L01P_PIPE_P0) ); - pc.printf( "nRF24L01+ RX Address - PIPE1 : 0x%010llX\r\n", my_nrf24l01p.getRxAddress(NRF24L01P_PIPE_P1) ); - - pc.printf( "Wireless Sensor Network - Multiceiver\r\n" ); - - RxDataCnt_PIPE0 = 1; - RxDataCnt_PIPE1 = 1; - - //set transfer size explicitly for both pipes - my_nrf24l01p.setTransferSize(RxDataCnt_PIPE1, NRF24L01P_PIPE_P1); - my_nrf24l01p.setTransferSize(RxDataCnt_PIPE0, NRF24L01P_PIPE_P0); - - my_nrf24l01p.setReceiveMode(); - my_nrf24l01p.enable(); - - while (1) { - - //check if data is available in pipe0 - if ( my_nrf24l01p.readable(NRF24L01P_PIPE_P0) ) { - - // ...read the data into the receive buffer - temp = my_nrf24l01p.read( NRF24L01P_PIPE_P0, count, RxDataCnt_PIPE0 ); - - pc.printf("Received: %d bytes from PIPE0; POT=%d\r\n",temp, count[0]); - - // Toggle LED2 (to help debug nRF24L01+ -> Host communication) - GreenLED = !GreenLED; - wait_ms(10); - } - - //check if data is there in pipe1 - if ( my_nrf24l01p.readable(NRF24L01P_PIPE_P1) ) { - - // ...read the data into the receive buffer - temp = my_nrf24l01p.read( NRF24L01P_PIPE_P1, count, RxDataCnt_PIPE1 ); - - pc.printf("Received: %d bytes from PIPE1; POT=%d\r\n",temp, count[0]); - - // Toggle LED2 (to help debug nRF24L01+ -> Host communication) - BlueLED = !BlueLED; - wait_ms(10); - } - } -} \ No newline at end of file
diff -r b3a70cbb7c81 -r dfff2a4e46d1 node0.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/node0.cpp Mon Jun 06 11:04:28 2016 +0000 @@ -0,0 +1,64 @@ +/****PIPE0 Transmitter****/ + +#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 RedLED(PTA5); +AnalogIn pot(A0); + +int main() +{ + char count[1]; + char TxDataCnt; + char temp; + + //set tx and rx address for pipe0: 5 bytes long; different for every pipe + long long TxAddress_PIPE0 = 0xC2C2C2C2C2; + long long RxAddress_PIPE0 = 0xC2C2C2C2C2; + + my_nrf24l01p.powerUp(); + my_nrf24l01p.setRfFrequency(2410); + + //setting tx and rx address + my_nrf24l01p.setTxAddress(TxAddress_PIPE0); + + //set rx address with default width and pipe number + my_nrf24l01p.setRxAddress(RxAddress_PIPE0, DEFAULT_NRF24L01P_ADDRESS_WIDTH, NRF24L01P_PIPE_P0); + + // 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 - PIPE0 : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() ); + + pc.printf( "Wirelesss sensor network \r\n"); + + TxDataCnt = 1; + + //set transfer size for specified pipe + my_nrf24l01p.setTransferSize(TxDataCnt, NRF24L01P_PIPE_P0); + my_nrf24l01p.enable(); + + char pot_val; + + while (1) { + + //adjusting data to 0-255 with char data type + pot_val = 255*(pot.read()); + + count[0] = pot_val; + + //transmit on specified pipe + temp = my_nrf24l01p.write( NRF24L01P_PIPE_P0,count, TxDataCnt ); + + pc.printf( "Sending %d bytes from PIPE0; POT=%d\r\n",temp,count[0]); + + // Toggle LED1 (to help debug Host -> nRF24L01+ communication) + RedLED = !RedLED; + + wait(1); + } +} \ No newline at end of file