Project wireless

Dependencies:   mbed nRF24L01P

Fork of nRF24L01P_Project by Nino Der Kinderen

Committer:
mvanendert
Date:
Mon May 18 16:27:46 2015 +0000
Revision:
4:25a500ef61fc
Parent:
3:1f92895432d2
Project Wireless

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Owen 0:a51a6e7da590 1 #include "mbed.h"
Owen 0:a51a6e7da590 2 #include "nRF24L01P.h"
Owen 0:a51a6e7da590 3
Owen 0:a51a6e7da590 4 Serial pc(USBTX, USBRX); // tx, rx
Owen 0:a51a6e7da590 5
Owen 0:a51a6e7da590 6 nRF24L01P my_nrf24l01p(p5, p6, p7, p8, p9, p10); // mosi, miso, sck, csn, ce, irq
Owen 0:a51a6e7da590 7
Owen 0:a51a6e7da590 8 DigitalOut myled1(LED1);
Owen 0:a51a6e7da590 9 DigitalOut myled2(LED2);
mvanendert 4:25a500ef61fc 10 AnalogIn LM35(p20);
mvanendert 4:25a500ef61fc 11 AnalogIn LDR(p19);
mvanendert 3:1f92895432d2 12
mvanendert 4:25a500ef61fc 13 #define TRANSFER_SIZE 5
mvanendert 3:1f92895432d2 14
mvanendert 3:1f92895432d2 15 char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE];
mvanendert 3:1f92895432d2 16
mvanendert 4:25a500ef61fc 17 int txDataCnt = 5;
mvanendert 3:1f92895432d2 18 int rxDataCnt = 0;
mvanendert 3:1f92895432d2 19
mvanendert 4:25a500ef61fc 20 float Light = 0;
mvanendert 3:1f92895432d2 21 float TemperatureC = 0;
mvanendert 4:25a500ef61fc 22 char a[5];
mvanendert 3:1f92895432d2 23
mvanendert 4:25a500ef61fc 24 float i = 0;
mvanendert 4:25a500ef61fc 25 float j = 0;
mvanendert 3:1f92895432d2 26
Owen 0:a51a6e7da590 27
Owen 0:a51a6e7da590 28 int main() {
Owen 0:a51a6e7da590 29
Owen 0:a51a6e7da590 30 // The nRF24L01+ supports transfers from 1 to 32 bytes, but Sparkfun's
mvanendert 3:1f92895432d2 31 // "Nordic Serial Interface Board" (http://www.sparkfun.com/products/9019)
mvanendert 3:1f92895432d2 32 // Only handles 4 byte transfers in the ATMega code.
Owen 0:a51a6e7da590 33 my_nrf24l01p.powerUp();
mvanendert 4:25a500ef61fc 34 my_nrf24l01p.setTxAddress(0xE7E7E7E7E7,5);
ninoderkinderen 2:178e089b3ce9 35 my_nrf24l01p.setRfFrequency(2450);
mvanendert 3:1f92895432d2 36 my_nrf24l01p.setRfOutputPower(0);
mvanendert 3:1f92895432d2 37
Owen 0:a51a6e7da590 38
mvanendert 3:1f92895432d2 39 //my_nrf24l01p.enableAutoRetransmit(1000, 5); //enableAutoRetransmit ( int delay, int count);
mvanendert 3:1f92895432d2 40 // delay the delay between restransmits, in uS (250uS..4000uS)
mvanendert 3:1f92895432d2 41 // count number of retransmits before generating an error (1..15)
mvanendert 4:25a500ef61fc 42 /*
mvanendert 3:1f92895432d2 43 //Enable autoAcknowledge
mvanendert 3:1f92895432d2 44 my_nrf24l01p.enableAutoAcknowledge(0);
mvanendert 3:1f92895432d2 45 my_nrf24l01p.enableAutoAcknowledge(1);
mvanendert 3:1f92895432d2 46 my_nrf24l01p.enableAutoAcknowledge(2);
mvanendert 3:1f92895432d2 47 my_nrf24l01p.enableAutoAcknowledge(3);
mvanendert 3:1f92895432d2 48 my_nrf24l01p.enableAutoAcknowledge(4);
mvanendert 3:1f92895432d2 49 my_nrf24l01p.enableAutoAcknowledge(5);
mvanendert 4:25a500ef61fc 50 */
mvanendert 3:1f92895432d2 51
Owen 0:a51a6e7da590 52 // Display the (default) setup of the nRF24L01+ chip
mvanendert 3:1f92895432d2 53 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
Owen 0:a51a6e7da590 54 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
mvanendert 3:1f92895432d2 55 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
mvanendert 3:1f92895432d2 56 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
mvanendert 3:1f92895432d2 57 pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress(0) );
Owen 0:a51a6e7da590 58
Owen 0:a51a6e7da590 59 pc.printf( "Type keys to test transfers:\r\n (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE );
Owen 0:a51a6e7da590 60
Owen 0:a51a6e7da590 61 my_nrf24l01p.setTransferSize( TRANSFER_SIZE );
Owen 0:a51a6e7da590 62
mvanendert 3:1f92895432d2 63 //Put device in transmitmode
mvanendert 4:25a500ef61fc 64 my_nrf24l01p.setReceiveMode();
Owen 0:a51a6e7da590 65 my_nrf24l01p.enable();
mvanendert 4:25a500ef61fc 66
Owen 0:a51a6e7da590 67
Owen 0:a51a6e7da590 68 while (1) {
mvanendert 4:25a500ef61fc 69 i = 0;
mvanendert 4:25a500ef61fc 70 j = 0;
mvanendert 3:1f92895432d2 71
mvanendert 4:25a500ef61fc 72 for (int t = 0; t < 100; t++)
mvanendert 4:25a500ef61fc 73 {
mvanendert 4:25a500ef61fc 74 i = i + LM35.read();
mvanendert 4:25a500ef61fc 75 }
mvanendert 4:25a500ef61fc 76
mvanendert 4:25a500ef61fc 77 pc.printf("Temperatuur in %4.1f graden C \n\r", i * 3.3);
mvanendert 3:1f92895432d2 78 wait(1);
mvanendert 4:25a500ef61fc 79
mvanendert 4:25a500ef61fc 80 // If we've received anything over the host serial link.
Owen 0:a51a6e7da590 81
mvanendert 4:25a500ef61fc 82 // ...add it to the transmit buffer
mvanendert 4:25a500ef61fc 83 sprintf(a, "%f", i * 3.3);
mvanendert 4:25a500ef61fc 84 pc.printf("a %f \n\r", a);
mvanendert 4:25a500ef61fc 85 pc.printf("a1 %c \n\r", a[0]);
mvanendert 4:25a500ef61fc 86 pc.printf("a2 %c \n\r", a[1]);
mvanendert 4:25a500ef61fc 87 pc.printf("a3 %c \n\r", a[2]);
mvanendert 4:25a500ef61fc 88 pc.printf("a4 %c \n\r", a[3]);
mvanendert 4:25a500ef61fc 89 pc.printf("a5 %c \n\r", a[4]);
mvanendert 4:25a500ef61fc 90
mvanendert 4:25a500ef61fc 91
mvanendert 4:25a500ef61fc 92
mvanendert 4:25a500ef61fc 93 for(int x = 0; x <=5; x++)
mvanendert 4:25a500ef61fc 94 {
mvanendert 4:25a500ef61fc 95 txData[x] = a[x];
mvanendert 4:25a500ef61fc 96
mvanendert 4:25a500ef61fc 97 pc.printf("txData[0] %c \n\r", txData[0]);
mvanendert 4:25a500ef61fc 98 pc.printf("txData[1] %c \n\r", txData[1]);
mvanendert 4:25a500ef61fc 99 pc.printf("txData[2] %c \n\r", txData[2]);
mvanendert 4:25a500ef61fc 100 pc.printf("txData[3] %c \n\r", txData[3]);
mvanendert 4:25a500ef61fc 101 pc.printf("txData[4] %c \n\r", txData[4]);
mvanendert 4:25a500ef61fc 102
mvanendert 4:25a500ef61fc 103 }
mvanendert 4:25a500ef61fc 104
mvanendert 4:25a500ef61fc 105
Owen 0:a51a6e7da590 106
mvanendert 4:25a500ef61fc 107 //pc.printf("lengte txData: %d \n\r", sizeof(txData));
mvanendert 4:25a500ef61fc 108 //pc.printf("txData count: %d \n\r", txDataCnt);
Owen 0:a51a6e7da590 109
mvanendert 4:25a500ef61fc 110 // If the transmit buffer is full
mvanendert 4:25a500ef61fc 111 //if ( txDataCnt >= sizeof(txData) ) {
mvanendert 4:25a500ef61fc 112 //pc.printf("eerste if \n\r");
mvanendert 4:25a500ef61fc 113 // Send the transmitbuffer via the nRF24L01+
mvanendert 4:25a500ef61fc 114 my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, txDataCnt );
mvanendert 4:25a500ef61fc 115 pc.printf("Ik heb verzonden");
mvanendert 4:25a500ef61fc 116 txDataCnt = 5;
mvanendert 4:25a500ef61fc 117 //}
Owen 0:a51a6e7da590 118
mvanendert 4:25a500ef61fc 119 // Toggle LED1 (to help debug Host -> nRF24L01+ communication)
mvanendert 4:25a500ef61fc 120 myled1 = !myled1;
Owen 0:a51a6e7da590 121
mvanendert 4:25a500ef61fc 122
mvanendert 4:25a500ef61fc 123 /*// If we've received anything in the nRF24L01+...
ninoderkinderen 2:178e089b3ce9 124 if ( my_nrf24l01p.readable(NRF24L01P_PIPE_P0) ) {
ninoderkinderen 2:178e089b3ce9 125 //pc.printf("tweede if \n\r");
Owen 0:a51a6e7da590 126 // ...read the data into the receive buffer
Owen 0:a51a6e7da590 127 rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, rxData, sizeof( rxData ) );
Owen 0:a51a6e7da590 128
Owen 0:a51a6e7da590 129 // Display the receive buffer contents via the host serial link
Owen 0:a51a6e7da590 130 for ( int i = 0; rxDataCnt > 0; rxDataCnt--, i++ ) {
Owen 0:a51a6e7da590 131
Owen 0:a51a6e7da590 132 pc.putc( rxData[i] );
Owen 0:a51a6e7da590 133 }
Owen 0:a51a6e7da590 134
Owen 0:a51a6e7da590 135 // Toggle LED2 (to help debug nRF24L01+ -> Host communication)
Owen 0:a51a6e7da590 136 myled2 = !myled2;
mvanendert 3:1f92895432d2 137 }*/
Owen 0:a51a6e7da590 138 }
Owen 0:a51a6e7da590 139 }
mvanendert 4:25a500ef61fc 140