Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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;
