Wireless sensor network to log LDR and Potentiometer values on Serial terminal. Wireless module used is NRF24L01P. This is the transmitter code.

Dependencies:   mbed nRF24L01P

Fork of kl25Z_nRF_TX by Ganesh Gore

Committer:
janhavi
Date:
Tue May 24 10:11:04 2016 +0000
Revision:
1:52659fc8b32a
Parent:
0:19a03658bf70
WSN logging LDR and POT data over NRF.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ganeshgore 0:19a03658bf70 1 #include "mbed.h"
ganeshgore 0:19a03658bf70 2 #include "nRF24L01P.h"
janhavi 1:52659fc8b32a 3
ganeshgore 0:19a03658bf70 4 Serial pc(USBTX, USBRX); // tx, rx
janhavi 1:52659fc8b32a 5
janhavi 1:52659fc8b32a 6 nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTD4); // mosi, miso, sck, csn, ce, irq
ganeshgore 0:19a03658bf70 7 DigitalOut RedLED(LED1);
janhavi 1:52659fc8b32a 8 AnalogIn ldr(A1);
janhavi 1:52659fc8b32a 9 AnalogIn pot(A0);
janhavi 1:52659fc8b32a 10
ganeshgore 0:19a03658bf70 11 int main()
ganeshgore 0:19a03658bf70 12 {
ganeshgore 0:19a03658bf70 13 char count[2];
ganeshgore 0:19a03658bf70 14 char TxDataCnt;
ganeshgore 0:19a03658bf70 15 char temp;
janhavi 1:52659fc8b32a 16
ganeshgore 0:19a03658bf70 17 my_nrf24l01p.powerUp();
ganeshgore 0:19a03658bf70 18 my_nrf24l01p.setRfFrequency(2410);
janhavi 1:52659fc8b32a 19
ganeshgore 0:19a03658bf70 20 // Display the (default) setup of the nRF24L01+ chip
ganeshgore 0:19a03658bf70 21 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
ganeshgore 0:19a03658bf70 22 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
ganeshgore 0:19a03658bf70 23 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
ganeshgore 0:19a03658bf70 24 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
ganeshgore 0:19a03658bf70 25 pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() );
janhavi 1:52659fc8b32a 26
janhavi 1:52659fc8b32a 27 pc.printf( "Wirelesss sensor network \r\n");
janhavi 1:52659fc8b32a 28
ganeshgore 0:19a03658bf70 29 TxDataCnt = 2;
ganeshgore 0:19a03658bf70 30 my_nrf24l01p.setTransferSize(TxDataCnt);
janhavi 1:52659fc8b32a 31
ganeshgore 0:19a03658bf70 32 my_nrf24l01p.enable();
janhavi 1:52659fc8b32a 33
janhavi 1:52659fc8b32a 34 char ldr_val, pot_val;
janhavi 1:52659fc8b32a 35
ganeshgore 0:19a03658bf70 36 while (1) {
janhavi 1:52659fc8b32a 37
janhavi 1:52659fc8b32a 38 //adjusting data to 0-255 with char data type
janhavi 1:52659fc8b32a 39 ldr_val = 255*(ldr.read());
janhavi 1:52659fc8b32a 40 pot_val = 255*(pot.read());
janhavi 1:52659fc8b32a 41
janhavi 1:52659fc8b32a 42 count[0] = ldr_val;
janhavi 1:52659fc8b32a 43 count[1] = pot_val;
janhavi 1:52659fc8b32a 44
ganeshgore 0:19a03658bf70 45 // Send the Transmit buffer via the nRF24L01+
ganeshgore 0:19a03658bf70 46 temp = my_nrf24l01p.write( NRF24L01P_PIPE_P0,count, TxDataCnt );
janhavi 1:52659fc8b32a 47
janhavi 1:52659fc8b32a 48 pc.printf( "Sending %d bytes; LDR=%d, POT=%d\r\n",temp,count[0], count[1]);
janhavi 1:52659fc8b32a 49
ganeshgore 0:19a03658bf70 50 // Toggle LED1 (to help debug Host -> nRF24L01+ communication)
ganeshgore 0:19a03658bf70 51 RedLED = !RedLED;
janhavi 1:52659fc8b32a 52
ganeshgore 0:19a03658bf70 53 wait(1);
ganeshgore 0:19a03658bf70 54 }
janhavi 1:52659fc8b32a 55 }