Sensor Demo for CTIA
Dependencies: LoRaWAN-lib SX1272Lib lib_gps lib_mma8451q lib_mpl3115a2 mbed
Fork of LoRaWAN-NAMote72-Application-Demo by
Revision 14:172b8e37168c, committed 2016-08-30
- Comitter:
- ubhat
- Date:
- Tue Aug 30 03:57:19 2016 +0000
- Parent:
- 13:238b23d4025c
- Commit message:
- Add Application for Sensor
Changed in this revision
--- a/app/Config.h Fri Aug 19 00:29:34 2016 +0000 +++ b/app/Config.h Tue Aug 30 03:57:19 2016 +0000 @@ -45,7 +45,7 @@ * \remark 1 : Confirmed messages enabled. Must receive ACK from network server 0 : Confirmed messages disabled. */ -#define LORAWAN_CONFIRMED_MSG_ON 0 +#define LORAWAN_CONFIRMED_MSG_ON 1 /*! * LoRaWAN Adaptive Data Rate @@ -63,7 +63,7 @@ /*! * LoRaWAN application port */ -#define LORAWAN_APP_PORT 13 +#define LORAWAN_APP_PORT 5 /*! * LoRaWAN User defined Tx Power @@ -142,6 +142,8 @@ */ #define LORAWAN_APP_DATA_SIZE 11 +#define BAT_VAL_PERCENT + /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
--- a/app/LoRaApp.cpp Fri Aug 19 00:29:34 2016 +0000 +++ b/app/LoRaApp.cpp Tue Aug 30 03:57:19 2016 +0000 @@ -86,6 +86,7 @@ if( ( BuffPtr + 2 ) <= LORAWAN_APP_DATA_SIZE ) { volatile uint8_t stat; + float val; Mpl3115a2.SetModeBarometer(); Mpl3115a2.ToggleOneShot( ); @@ -93,11 +94,14 @@ stat = Mpl3115a2.read(STATUS_REG); while( (stat & 0x04) != 0x04 ) { wait(0.01); - stat = Mpl3115a2.read(STATUS_REG); + stat = Mpl3115a2.read(STATUS_REG); } + + val = Mpl3115a2.ReadBarometer()/100.0; - BuffAddr[BuffPtr++] = Mpl3115a2.read(OUT_P_MSB_REG); - BuffAddr[BuffPtr++] = Mpl3115a2.read(OUT_P_CSB_REG); + BuffAddr[BuffPtr++] = ( ( uint16_t ) val >> 8 ) & 0xFF; + BuffAddr[BuffPtr++] = ( ( uint16_t ) val ) & 0xFF; + } break; } @@ -118,7 +122,13 @@ { if( ( BuffPtr + 1 ) <= LORAWAN_APP_DATA_SIZE ) { +#ifdef BAT_VAL_PERCENT + uint16_t value; + value = BoardGetBatteryLevel(); + BuffAddr[BuffPtr++] = ( value * 100 ) >> 8; // Bat level in % +#else BuffAddr[BuffPtr++] = BoardGetBatteryLevel( ); // Per LoRaWAN spec; 0 = Charging; 1...254 = level, 255 = N/A +#endif } break; } @@ -210,7 +220,9 @@ case AppAcclSensor: { - uint8_t statusReg; + uint8_t statusReg; + uint8_t regVal; + uint16_t axesData; // Read the PS_STATUS register statusReg = Mma8451q.read_single( MMA8451_PL_STATUS ); @@ -229,10 +241,34 @@ } // Read and populate device orientation in Tx Buffer - if( ( BuffPtr + 2 ) <= LORAWAN_APP_DATA_SIZE ) + if( ( BuffPtr + 6 ) <= LORAWAN_APP_DATA_SIZE ) { - Mma8451q.read(MMA8451_OUT_X_MSB, &BuffAddr[BuffPtr], 6); - BuffPtr += 6; + uint8_t addr; + addr = MMA8451_OUT_X_MSB; + + // Read X-axis Data + regVal = Mma8451q.read_single( addr++ ); + axesData = regVal << 8; + regVal = Mma8451q.read_single( addr++ ); + axesData |= regVal; + BuffAddr[BuffPtr++] = ( axesData >> 10 ) & 0xFF; + BuffAddr[BuffPtr++] = ( axesData >> 2 ) & 0xFF; + + // Read Y-axis Data + regVal = Mma8451q.read_single( addr++ ); + axesData = regVal << 8; + regVal = Mma8451q.read_single( addr++ ); + axesData |= regVal; + BuffAddr[BuffPtr++] = ( axesData >> 10 ) & 0xFF; + BuffAddr[BuffPtr++] = ( axesData >> 2 ) & 0xFF; + + // Read Z-axis Data + regVal = Mma8451q.read_single( addr++ ); + axesData = regVal << 8; + regVal = Mma8451q.read_single( addr++ ); + axesData |= regVal; + BuffAddr[BuffPtr++] = ( axesData >> 10 ) & 0xFF; + BuffAddr[BuffPtr++] = ( axesData >> 2 ) & 0xFF; } break;
--- a/app/LoRaEventProc.cpp Fri Aug 19 00:29:34 2016 +0000 +++ b/app/LoRaEventProc.cpp Tue Aug 30 03:57:19 2016 +0000 @@ -268,6 +268,7 @@ default: { // Schedule next packet transmission + TxDutyCycleTime = APP_TX_DUTYCYCLE + randr( -APP_TX_DUTYCYCLE_RND, APP_TX_DUTYCYCLE_RND ); TimerSetValue( &TxNextPacketTimer, TxDutyCycleTime ); TimerStart( &TxNextPacketTimer ); break;