project wireless

Dependencies:   mbed nRF24L01P nRF24L01P_Hello_World TextLCD

Fork of nRF24L01P_Hello_World by Owen Edwards

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?

UserRevisionLine numberNew 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 }