Node on PIPE0 for Wireless sensor network over NRF.

Dependencies:   mbed nRF24L01P

Fork of WSN_Coordinator by Eduvance SIT2017

Files at this revision

API Documentation at this revision

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