project wireless
Dependencies: mbed nRF24L01P nRF24L01P_Hello_World TextLCD
Fork of nRF24L01P_Hello_World by
main.cpp@4:da91478e0ca4, 2015-05-19 (annotated)
- Committer:
- ninoderkinderen
- Date:
- Tue May 19 17:26:07 2015 +0000
- Revision:
- 4:da91478e0ca4
- Parent:
- 3:de3b4b509e70
uitvoer - wireless
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Owen | 0:a51a6e7da590 | 1 | #include "mbed.h" |
Owen | 0:a51a6e7da590 | 2 | #include "nRF24L01P.h" |
ninoderkinderen | 4:da91478e0ca4 | 3 | #include "TextLCD.h" |
ninoderkinderen | 4:da91478e0ca4 | 4 | #include "SerialRPCInterface.h" |
ninoderkinderen | 4:da91478e0ca4 | 5 | SerialRPCInterface SerialInterface(USBTX, USBRX); |
Owen | 0:a51a6e7da590 | 6 | Serial pc(USBTX, USBRX); // tx, rx |
ninoderkinderen | 4:da91478e0ca4 | 7 | TextLCD lcd(p15, p16, p21, p22, p23, p24); // rs, e, d4-d7 |
Owen | 0:a51a6e7da590 | 8 | nRF24L01P my_nrf24l01p(p5, p6, p7, p8, p9, p10); // mosi, miso, sck, csn, ce, irq |
Owen | 0:a51a6e7da590 | 9 | |
Owen | 0:a51a6e7da590 | 10 | DigitalOut myled1(LED1); |
Owen | 0:a51a6e7da590 | 11 | DigitalOut myled2(LED2); |
ninoderkinderen | 4:da91478e0ca4 | 12 | DigitalOut ledlicht(p30); |
ninoderkinderen | 4:da91478e0ca4 | 13 | DigitalOut lednorm(p29); |
ninoderkinderen | 4:da91478e0ca4 | 14 | DigitalOut leddonk(p28); |
ninoderkinderen | 4:da91478e0ca4 | 15 | char a[5]; //temp |
ninoderkinderen | 4:da91478e0ca4 | 16 | char b[5];//licht |
ninoderkinderen | 4:da91478e0ca4 | 17 | char buffer[6];//buffer |
ninoderkinderen | 4:da91478e0ca4 | 18 | char aa = '?';//temp |
ninoderkinderen | 4:da91478e0ca4 | 19 | char bb = '?';//licht |
ninoderkinderen | 4:da91478e0ca4 | 20 | float temp = 0;//rpc |
ninoderkinderen | 4:da91478e0ca4 | 21 | float licht = 0;//rpc |
Owen | 0:a51a6e7da590 | 22 | |
ninoderkinderen | 4:da91478e0ca4 | 23 | RPCVariable<float> rpc_temp(&temp,"temp"); |
ninoderkinderen | 4:da91478e0ca4 | 24 | RPCVariable<float> rpc_licht(&licht,"licht"); |
Owen | 0:a51a6e7da590 | 25 | |
ninoderkinderen | 4:da91478e0ca4 | 26 | int main() |
ninoderkinderen | 4:da91478e0ca4 | 27 | { |
ninoderkinderen | 4:da91478e0ca4 | 28 | //Labview |
ninoderkinderen | 4:da91478e0ca4 | 29 | Base::add_rpc_class<AnalogIn>(); |
ninoderkinderen | 4:da91478e0ca4 | 30 | Base::add_rpc_class<AnalogOut>(); |
ninoderkinderen | 4:da91478e0ca4 | 31 | Base::add_rpc_class<DigitalIn>(); |
ninoderkinderen | 4:da91478e0ca4 | 32 | Base::add_rpc_class<DigitalOut>(); |
ninoderkinderen | 4:da91478e0ca4 | 33 | Base::add_rpc_class<DigitalInOut>(); |
ninoderkinderen | 4:da91478e0ca4 | 34 | Base::add_rpc_class<PwmOut>(); |
ninoderkinderen | 4:da91478e0ca4 | 35 | Base::add_rpc_class<Timer>(); |
ninoderkinderen | 4:da91478e0ca4 | 36 | Base::add_rpc_class<SPI>(); |
ninoderkinderen | 4:da91478e0ca4 | 37 | Base::add_rpc_class<BusOut>(); |
ninoderkinderen | 4:da91478e0ca4 | 38 | Base::add_rpc_class<BusIn>(); |
ninoderkinderen | 4:da91478e0ca4 | 39 | Base::add_rpc_class<BusInOut>(); |
ninoderkinderen | 4:da91478e0ca4 | 40 | Base::add_rpc_class<Serial>(); |
ninoderkinderen | 4:da91478e0ca4 | 41 | |
ninoderkinderen | 4:da91478e0ca4 | 42 | char buf[256], outbuf[256]; |
ninoderkinderen | 4:da91478e0ca4 | 43 | |
ninoderkinderen | 4:da91478e0ca4 | 44 | #define TRANSFER_SIZE 6 |
Owen | 0:a51a6e7da590 | 45 | |
Owen | 0:a51a6e7da590 | 46 | char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE]; |
ninoderkinderen | 4:da91478e0ca4 | 47 | int txDataCnt = 0; |
Owen | 0:a51a6e7da590 | 48 | int rxDataCnt = 0; |
Owen | 0:a51a6e7da590 | 49 | |
Owen | 0:a51a6e7da590 | 50 | my_nrf24l01p.powerUp(); |
ninoderkinderen | 2:178e089b3ce9 | 51 | |
ninoderkinderen | 2:178e089b3ce9 | 52 | //Set Device |
ninoderkinderen | 2:178e089b3ce9 | 53 | my_nrf24l01p.setTxAddress(0xE7E7E7E7E7,5); |
ninoderkinderen | 2:178e089b3ce9 | 54 | //my_nrf24l01p.setRxAddress(0xE7E7E7E7E7,5); |
ninoderkinderen | 2:178e089b3ce9 | 55 | my_nrf24l01p.setRfFrequency(2450); |
ninoderkinderen | 2:178e089b3ce9 | 56 | my_nrf24l01p.setRfOutputPower(0); |
Owen | 0:a51a6e7da590 | 57 | |
Owen | 0:a51a6e7da590 | 58 | // Display the (default) setup of the nRF24L01+ chip |
ninoderkinderen | 4:da91478e0ca4 | 59 | // pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() ); |
ninoderkinderen | 4:da91478e0ca4 | 60 | // pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() ); |
ninoderkinderen | 4:da91478e0ca4 | 61 | // pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() ); |
ninoderkinderen | 4:da91478e0ca4 | 62 | // pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() ); |
ninoderkinderen | 4:da91478e0ca4 | 63 | // pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress(0) ); |
Owen | 0:a51a6e7da590 | 64 | |
ninoderkinderen | 4:da91478e0ca4 | 65 | //pc.printf( "Type keys to test transfers:\r\n (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE ); |
Owen | 0:a51a6e7da590 | 66 | |
Owen | 0:a51a6e7da590 | 67 | my_nrf24l01p.setTransferSize( TRANSFER_SIZE ); |
Owen | 0:a51a6e7da590 | 68 | |
Owen | 0:a51a6e7da590 | 69 | my_nrf24l01p.setReceiveMode(); |
Owen | 0:a51a6e7da590 | 70 | my_nrf24l01p.enable(); |
Owen | 0:a51a6e7da590 | 71 | |
Owen | 0:a51a6e7da590 | 72 | |
ninoderkinderen | 4:da91478e0ca4 | 73 | |
ninoderkinderen | 4:da91478e0ca4 | 74 | lcd.cls();//LCD clear |
ninoderkinderen | 4:da91478e0ca4 | 75 | lcd.locate(0,0); |
ninoderkinderen | 4:da91478e0ca4 | 76 | lcd.printf("Project wireless"); |
ninoderkinderen | 4:da91478e0ca4 | 77 | lcd.locate(0,1); |
ninoderkinderen | 4:da91478e0ca4 | 78 | lcd.printf("Bjorn Vranken"); |
ninoderkinderen | 4:da91478e0ca4 | 79 | lcd.locate(0,1); |
ninoderkinderen | 4:da91478e0ca4 | 80 | wait(1); |
ninoderkinderen | 4:da91478e0ca4 | 81 | lcd.printf("Michiel VEndert"); |
ninoderkinderen | 4:da91478e0ca4 | 82 | lcd.locate(0,1); |
ninoderkinderen | 4:da91478e0ca4 | 83 | wait(1); |
ninoderkinderen | 4:da91478e0ca4 | 84 | lcd.printf("Nino DerKinderen"); |
ninoderkinderen | 4:da91478e0ca4 | 85 | wait(2); |
ninoderkinderen | 4:da91478e0ca4 | 86 | |
ninoderkinderen | 4:da91478e0ca4 | 87 | lcd.cls();//LCD clear |
ninoderkinderen | 4:da91478e0ca4 | 88 | lcd.locate(0,0); |
ninoderkinderen | 4:da91478e0ca4 | 89 | lcd.printf("Temp:"); |
ninoderkinderen | 4:da91478e0ca4 | 90 | lcd.locate(0,1); |
ninoderkinderen | 4:da91478e0ca4 | 91 | lcd.printf("Licht:"); |
ninoderkinderen | 4:da91478e0ca4 | 92 | lcd.locate(12,0); |
ninoderkinderen | 4:da91478e0ca4 | 93 | lcd.printf("C"); |
ninoderkinderen | 4:da91478e0ca4 | 94 | lcd.locate(12,1); |
ninoderkinderen | 4:da91478e0ca4 | 95 | lcd.putc(37); |
ninoderkinderen | 4:da91478e0ca4 | 96 | |
ninoderkinderen | 4:da91478e0ca4 | 97 | temp = 10; |
ninoderkinderen | 4:da91478e0ca4 | 98 | licht = 50; |
ninoderkinderen | 4:da91478e0ca4 | 99 | |
ninoderkinderen | 4:da91478e0ca4 | 100 | while (1) |
ninoderkinderen | 4:da91478e0ca4 | 101 | { |
ninoderkinderen | 4:da91478e0ca4 | 102 | pc.gets(buf,256); |
ninoderkinderen | 4:da91478e0ca4 | 103 | rpc(buf,outbuf); |
ninoderkinderen | 4:da91478e0ca4 | 104 | pc.printf("%s\n",outbuf); |
ninoderkinderen | 4:da91478e0ca4 | 105 | |
ninoderkinderen | 4:da91478e0ca4 | 106 | for(int i = 0;i <= 20; i++) |
ninoderkinderen | 4:da91478e0ca4 | 107 | { |
ninoderkinderen | 4:da91478e0ca4 | 108 | wait(0.05); |
Owen | 0:a51a6e7da590 | 109 | // If we've received anything in the nRF24L01+... |
ninoderkinderen | 2:178e089b3ce9 | 110 | if ( my_nrf24l01p.readable(NRF24L01P_PIPE_P0) ) { |
Owen | 0:a51a6e7da590 | 111 | // ...read the data into the receive buffer |
Owen | 0:a51a6e7da590 | 112 | rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, rxData, sizeof( rxData ) ); |
Owen | 0:a51a6e7da590 | 113 | |
Owen | 0:a51a6e7da590 | 114 | // Display the receive buffer contents via the host serial link |
ninoderkinderen | 4:da91478e0ca4 | 115 | for ( int i = 0; rxDataCnt > 0; rxDataCnt--, i++ ) |
ninoderkinderen | 4:da91478e0ca4 | 116 | { |
ninoderkinderen | 4:da91478e0ca4 | 117 | buffer[i] = rxData[i]; |
ninoderkinderen | 4:da91478e0ca4 | 118 | //pc.putc( rxData[i] ); |
Owen | 0:a51a6e7da590 | 119 | } |
Owen | 0:a51a6e7da590 | 120 | |
ninoderkinderen | 4:da91478e0ca4 | 121 | // Toggle LED1 (to help debug nRF24L01+ -> Host communication) |
ninoderkinderen | 4:da91478e0ca4 | 122 | myled1 = !myled1; |
ninoderkinderen | 4:da91478e0ca4 | 123 | //pc.printf("\r\n"); |
ninoderkinderen | 4:da91478e0ca4 | 124 | |
ninoderkinderen | 4:da91478e0ca4 | 125 | if (buffer[5] == 'T') |
ninoderkinderen | 4:da91478e0ca4 | 126 | { |
ninoderkinderen | 4:da91478e0ca4 | 127 | //pc.printf("Temperatuur\r\n"); |
ninoderkinderen | 4:da91478e0ca4 | 128 | for(int x = 0; x <=4; x++) |
ninoderkinderen | 4:da91478e0ca4 | 129 | { |
ninoderkinderen | 4:da91478e0ca4 | 130 | a[x] = buffer[x]; |
ninoderkinderen | 4:da91478e0ca4 | 131 | aa = a[x]; |
ninoderkinderen | 4:da91478e0ca4 | 132 | lcd.locate(6+x,0); |
ninoderkinderen | 4:da91478e0ca4 | 133 | lcd.putc(aa); |
ninoderkinderen | 4:da91478e0ca4 | 134 | } |
ninoderkinderen | 4:da91478e0ca4 | 135 | temp = atof(a); |
ninoderkinderen | 4:da91478e0ca4 | 136 | //pc.printf("t : %f \r\n",temp); |
ninoderkinderen | 4:da91478e0ca4 | 137 | } |
ninoderkinderen | 4:da91478e0ca4 | 138 | else if (buffer[5] == 'L') |
ninoderkinderen | 4:da91478e0ca4 | 139 | { |
ninoderkinderen | 4:da91478e0ca4 | 140 | //pc.printf("Lichtwaarde\r\n"); |
ninoderkinderen | 4:da91478e0ca4 | 141 | for(int x = 0; x <=4; x++) |
ninoderkinderen | 4:da91478e0ca4 | 142 | { |
ninoderkinderen | 4:da91478e0ca4 | 143 | b[x] = buffer[x]; |
ninoderkinderen | 4:da91478e0ca4 | 144 | bb = b[x]; |
ninoderkinderen | 4:da91478e0ca4 | 145 | lcd.locate(6+x,1); |
ninoderkinderen | 4:da91478e0ca4 | 146 | lcd.putc(bb); |
ninoderkinderen | 4:da91478e0ca4 | 147 | } |
ninoderkinderen | 4:da91478e0ca4 | 148 | licht = atof(b); |
ninoderkinderen | 4:da91478e0ca4 | 149 | //pc.printf("l : %f \r\n",licht); |
ninoderkinderen | 4:da91478e0ca4 | 150 | if(licht > 85) |
ninoderkinderen | 4:da91478e0ca4 | 151 | { |
ninoderkinderen | 4:da91478e0ca4 | 152 | ledlicht = 1; |
ninoderkinderen | 4:da91478e0ca4 | 153 | lednorm = 0; |
ninoderkinderen | 4:da91478e0ca4 | 154 | leddonk = 0; |
ninoderkinderen | 4:da91478e0ca4 | 155 | } |
ninoderkinderen | 4:da91478e0ca4 | 156 | else if(licht <= 85 && licht > 30) |
ninoderkinderen | 4:da91478e0ca4 | 157 | { |
ninoderkinderen | 4:da91478e0ca4 | 158 | ledlicht = 0; |
ninoderkinderen | 4:da91478e0ca4 | 159 | lednorm = 1; |
ninoderkinderen | 4:da91478e0ca4 | 160 | leddonk = 0; |
ninoderkinderen | 4:da91478e0ca4 | 161 | } |
ninoderkinderen | 4:da91478e0ca4 | 162 | else if(licht <= 30) |
ninoderkinderen | 4:da91478e0ca4 | 163 | { |
ninoderkinderen | 4:da91478e0ca4 | 164 | ledlicht = 0; |
ninoderkinderen | 4:da91478e0ca4 | 165 | lednorm = 0; |
ninoderkinderen | 4:da91478e0ca4 | 166 | leddonk = 1; |
ninoderkinderen | 4:da91478e0ca4 | 167 | } |
ninoderkinderen | 4:da91478e0ca4 | 168 | } |
ninoderkinderen | 4:da91478e0ca4 | 169 | else |
ninoderkinderen | 4:da91478e0ca4 | 170 | { |
ninoderkinderen | 4:da91478e0ca4 | 171 | //pc.printf("Verkeerde DATA!!!\r\n"); |
ninoderkinderen | 4:da91478e0ca4 | 172 | } |
ninoderkinderen | 4:da91478e0ca4 | 173 | } |
Owen | 0:a51a6e7da590 | 174 | } |
Owen | 0:a51a6e7da590 | 175 | } |
Owen | 0:a51a6e7da590 | 176 | } |