Sensor Box version 090715 17:06

Dependencies:   MMA8451Q mbed nRF24L01P

Committer:
eleim
Date:
Thu Jul 09 16:06:05 2015 +0000
Revision:
0:84ecd53a6958
Child:
1:00312af3c20e
090715 17:05;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eleim 0:84ecd53a6958 1 #include "mbed.h"
eleim 0:84ecd53a6958 2 #include "nRF24L01P.h"
eleim 0:84ecd53a6958 3 #include "MMA8451Q.h"
eleim 0:84ecd53a6958 4 #include <vector>
eleim 0:84ecd53a6958 5 #include <math.h>
eleim 0:84ecd53a6958 6
eleim 0:84ecd53a6958 7 #define MMA8451_I2C_ADDRESS (0x1d<<1)
eleim 0:84ecd53a6958 8 #define TRANSFER_SIZE 24
eleim 0:84ecd53a6958 9
eleim 0:84ecd53a6958 10 Serial pc(USBTX, USBRX); // tx, rx
eleim 0:84ecd53a6958 11
eleim 0:84ecd53a6958 12 PinName const SDA = PTE25;
eleim 0:84ecd53a6958 13 PinName const SCL = PTE24;
eleim 0:84ecd53a6958 14
eleim 0:84ecd53a6958 15 AnalogIn light_ain(A0);
eleim 0:84ecd53a6958 16 AnalogIn temp_ain(A1);
eleim 0:84ecd53a6958 17 AnalogIn pir_ain(A3);
eleim 0:84ecd53a6958 18
eleim 0:84ecd53a6958 19 nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTE1, PTE0, PTD0); // mosi, miso, sck, csn, ce, irq
eleim 0:84ecd53a6958 20
eleim 0:84ecd53a6958 21 DigitalOut myled1(LED1);
eleim 0:84ecd53a6958 22 DigitalOut myled2(LED2);
eleim 0:84ecd53a6958 23
eleim 0:84ecd53a6958 24 int light;
eleim 0:84ecd53a6958 25 int temp;
eleim 0:84ecd53a6958 26 int pir;
eleim 0:84ecd53a6958 27
eleim 0:84ecd53a6958 28 std::vector<int> light_data;
eleim 0:84ecd53a6958 29 std::vector<int> temp_data;
eleim 0:84ecd53a6958 30 std::vector<int> pir_data;
eleim 0:84ecd53a6958 31
eleim 0:84ecd53a6958 32 void getdata()
eleim 0:84ecd53a6958 33 {
eleim 0:84ecd53a6958 34 light = light_ain.read();
eleim 0:84ecd53a6958 35 temp = temp_ain.read();
eleim 0:84ecd53a6958 36 pir = pir_ain.read();
eleim 0:84ecd53a6958 37
eleim 0:84ecd53a6958 38 light_data.push_back (light);
eleim 0:84ecd53a6958 39 temp_data.push_back (temp);
eleim 0:84ecd53a6958 40 pir_data.push_back (pir);
eleim 0:84ecd53a6958 41
eleim 0:84ecd53a6958 42 light_data.pop_back();
eleim 0:84ecd53a6958 43 temp_data.pop_back();
eleim 0:84ecd53a6958 44 pir_data.pop_back();
eleim 0:84ecd53a6958 45
eleim 0:84ecd53a6958 46
eleim 0:84ecd53a6958 47 printf("%f\n", light_data);
eleim 0:84ecd53a6958 48
eleim 0:84ecd53a6958 49 }
eleim 0:84ecd53a6958 50
eleim 0:84ecd53a6958 51
eleim 0:84ecd53a6958 52 int main()
eleim 0:84ecd53a6958 53 {
eleim 0:84ecd53a6958 54
eleim 0:84ecd53a6958 55 MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
eleim 0:84ecd53a6958 56
eleim 0:84ecd53a6958 57 light_data.assign (20,0);
eleim 0:84ecd53a6958 58 temp_data.assign (20,0);
eleim 0:84ecd53a6958 59 pir_data.assign (20,0);
eleim 0:84ecd53a6958 60
eleim 0:84ecd53a6958 61
eleim 0:84ecd53a6958 62 char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE];
eleim 0:84ecd53a6958 63 int txDataCnt = 0;
eleim 0:84ecd53a6958 64 int rxDataCnt = 0;
eleim 0:84ecd53a6958 65
eleim 0:84ecd53a6958 66 my_nrf24l01p.powerUp();
eleim 0:84ecd53a6958 67
eleim 0:84ecd53a6958 68 // Display the (default) setup of the nRF24L01+ chip
eleim 0:84ecd53a6958 69 //pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
eleim 0:84ecd53a6958 70 //pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
eleim 0:84ecd53a6958 71 //pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
eleim 0:84ecd53a6958 72 //pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
eleim 0:84ecd53a6958 73 //pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() );
eleim 0:84ecd53a6958 74
eleim 0:84ecd53a6958 75 //pc.printf( "Type keys to test transfers:\r\n (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE );
eleim 0:84ecd53a6958 76
eleim 0:84ecd53a6958 77 my_nrf24l01p.setTransferSize( TRANSFER_SIZE );
eleim 0:84ecd53a6958 78
eleim 0:84ecd53a6958 79 my_nrf24l01p.setReceiveMode();
eleim 0:84ecd53a6958 80 my_nrf24l01p.enable();
eleim 0:84ecd53a6958 81
eleim 0:84ecd53a6958 82 printf("MMA8451 ID: %d\n", acc.getWhoAmI());
eleim 0:84ecd53a6958 83
eleim 0:84ecd53a6958 84 while (1) {
eleim 0:84ecd53a6958 85 getdata();
eleim 0:84ecd53a6958 86
eleim 0:84ecd53a6958 87 // txDataCnt = sprintf(txData, " %1.3f %1.3f %1.3f\n", x,y,z);
eleim 0:84ecd53a6958 88 //my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, txDataCnt );
eleim 0:84ecd53a6958 89 myled1 = !myled1;
eleim 0:84ecd53a6958 90 wait(0.5);
eleim 0:84ecd53a6958 91 }
eleim 0:84ecd53a6958 92
eleim 0:84ecd53a6958 93 }
eleim 0:84ecd53a6958 94
eleim 0:84ecd53a6958 95