Lora4MakerFaire
Dependencies: HC_SR04_Ultrasonic_Library X_NUCLEO_IKS01A2 mbed LoRaWAN-lib SX1272Lib
Fork of LoRaWANdemo72 by
Revision 10:88f1c052f9e9, committed 2017-12-01
- Comitter:
- rschiano
- Date:
- Fri Dec 01 10:21:46 2017 +0000
- Parent:
- 9:85c85c65299a
- Commit message:
- LoraMakerFaire;
Changed in this revision
app/Commissioning.h | Show annotated file Show diff for this revision Revisions of this file |
app/main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 85c85c65299a -r 88f1c052f9e9 app/Commissioning.h --- a/app/Commissioning.h Fri Nov 17 12:29:00 2017 +0000 +++ b/app/Commissioning.h Fri Dec 01 10:21:46 2017 +0000 @@ -32,10 +32,6 @@ */ #define IEEE_OUI 0x11, 0x22, 0x33 -/*! - * Mote device IEEE EUI (big endian) - */ -#define LORAWAN_DEVICE_EUI { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x13 } /*! * Application IEEE EUI (big endian) @@ -52,20 +48,47 @@ */ #define LORAWAN_NETWORK_ID 0 +#define NODE99 // NODE13 NODE88 NODE99 + +#ifdef NODE13 +/*! + * Mote device IEEE EUI (big endian) + */ +#define LORAWAN_DEVICE_EUI { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x13 } + /*! * Device address on the network (big endian) */ -#define LORAWAN_DEVICE_ADDRESS 0x00000006 +//#define LORAWAN_DEVICE_ADDRESS 0x00000006 /*! * AES encryption/decryption cipher network session key */ -#define LORAWAN_NWKSKEY { 0xA2, 0x5D, 0x17, 0x57, 0xF9, 0x9C, 0xC1, 0x95, 0xE6, 0xD3, 0xD8, 0xD7, 0xF1, 0xAE, 0x9B, 0xF0 } +#define LORAWAN_NWKSKEY { 0xA2, 0x5D, 0x17, 0x57, 0xF9, 0x9C, 0xC1, 0x95, 0xE6, 0xD3, 0xD8, 0xD7, 0xF1, 0xAE, 0x9B, 0xF1 } + //{ 0xA2, 0x5D, 0x17, 0x57, 0xF9, 0x9C, 0xC1, 0x95, 0xE6, 0xD3, 0xD8, 0xD7, 0xF1, 0xAE, 0x9B, 0xF0 } 0x65, 0x6a, 0x43, 0x5e, 0x15, 0x3e, 0x5f, 0x23, 0xcf, 0x0c, 0x11, 0x77, 0x30, 0x83, 0xa3, 0x5d}; // /*! * AES encryption/decryption cipher application session key */ -#define LORAWAN_APPSKEY { 0xFC, 0x43, 0x3B, 0x31, 0x8E, 0x17, 0x7C, 0x78, 0x44, 0xFF, 0x5B, 0x4D, 0x0B, 0x3A, 0xDD, 0x56 } +#define LORAWAN_APPSKEY { 0x65, 0x6a, 0x43, 0x5e, 0x15, 0x3e, 0x5f, 0x23, 0xcf, 0x0c, 0x11, 0x77, 0x30, 0x83, 0xa3, 0x5d} // + //{ 0x3c, 0xc4f, 0xea, 0xd9, 0xbc, 0x77, 0xd9, 0xfc, 0xf9, 0xd0, 0xae, 0x09, 0x62, 0xff, 0x1fd } + +#endif //NODESELECTION + +#ifdef NODE88 +#define LORAWAN_DEVICE_EUI { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 } +#define LORAWAN_DEVICE_ADDRESS 0x00000002 +#define LORAWAN_NWKSKEY {0x2A, 0x91, 0xD4, 0xE6, 0x6B, 0x55, 0x4A, 0x40, 0x1A, 0xE7, 0xD3, 0x7D, 0x47, 0x95, 0xD2, 0x37} +#define LORAWAN_APPSKEY {0x6D, 0x31, 0xDF, 0x5B, 0x8B, 0x8E, 0x87, 0x00, 0x20, 0xBC, 0x1C, 0x2F, 0x89, 0xA6, 0xAD, 0x9D} +#endif //NODESELECTION + +#ifdef NODE99 +#define LORAWAN_DEVICE_EUI { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x99 } +#define LORAWAN_DEVICE_ADDRESS 0x00000001 +#define LORAWAN_NWKSKEY {0x65, 0x6A, 0x43, 0x5E, 0x15, 0x3E, 0x5F, 0x23, 0xCF, 0x0C, 0x11, 0x77, 0x30, 0x83, 0xA3, 0x5D} +#define LORAWAN_APPSKEY {0x3C, 0xC4, 0xFE, 0xAD, 0x9B, 0xC7, 0x7D, 0x9F, 0xCF, 0x9D, 0x0A, 0xE0, 0x96, 0x2F, 0xF1, 0xFD} +#endif //NODESELECTION + #endif // __LORA_COMMISSIONING_H__
diff -r 85c85c65299a -r 88f1c052f9e9 app/main.cpp --- a/app/main.cpp Fri Nov 17 12:29:00 2017 +0000 +++ b/app/main.cpp Fri Dec 01 10:21:46 2017 +0000 @@ -22,17 +22,19 @@ #include "XNucleoIKS01A2.h" #include "string.h" #include "ultrasonic.h" +#include "vt100.h" /* Instantiate the expansion board */ static XNucleoIKS01A2 *mems_expansion_board = XNucleoIKS01A2::instance(D14, D15, D4, D5); ultrasonic usensor(D8, D9, .1, 1); +DigitalOut led(LED2); //static HCSR04 *myUS = ultrasonic::ultrasonic(D8,D9,.1,1) //set the trigger pin to D8 and the Echo pin to D9 /* Retrieve the composing elements of the expansion board */ -//static HTS221Sensor *hum_temp = mems_expansion_board->ht_sensor; +static HTS221Sensor *hum_temp = mems_expansion_board->ht_sensor; //static LSM303AGRAccSensor *accelerometer = mems_expansion_board->accelerometer; //static LSM6DSLSensor *acc_gyro = mems_expansion_board->acc_gyro; -//static LPS22HBSensor *press_temp = mems_expansion_board->pt_sensor; +static LPS22HBSensor *press_temp = mems_expansion_board->pt_sensor; /*! * Defines the application data transmission duty cycle. 5s, value in [ms]. */ @@ -47,7 +49,7 @@ /*! * Default datarate */ -#define LORAWAN_DEFAULT_DATARATE DR_0 //SF 12 +#define LORAWAN_DEFAULT_DATARATE DR_5 //SF 12 /*! * LoRaWAN confirmed messages @@ -91,7 +93,7 @@ /*! * LoRaWAN application port */ -#define LORAWAN_APP_PORT 13 +#define LORAWAN_APP_PORT 13 // 0x44 // /*! * User application data buffer size @@ -248,6 +250,12 @@ * SerialDisplay managment variables */ +/* + * Seriale per comunicare con BBB +*/ + RawSerial mySerial(PC_10,PC_11,115200); + + /*! * Indicates if the MAC layer network join status has changed. */ @@ -335,7 +343,7 @@ /*! * \brief Prepares the payload of the frame */ - float value1, value2; + float value1, value2,value3; char buffer1[32]; long dist1; // int16_t Myaxes_int[3]; @@ -345,28 +353,55 @@ char Cont[64]; // uint32_t Cont[64]; // InterruptIn BlueButton(USER_BUTTON); - + + extern VT100 vt; + char myChar; static void PrepareTxFrame( uint8_t port ) { switch( port ) { - + case 0x44: + //<key:Geiger:192.168.1.1: timestamp: 1425243676924 conteggi: 8.70 stato: attivo> + vt.PutStringAt(70,2,"Ci arriva?"); + while(!mySerial.readable()); + if(mySerial.getc()=='{'){ + int i=0; + do + Cont[i] = mySerial.getc(); + while (Cont[i++]!='}'); + Cont[--i]=0x0; + } + vt.PutStringAt(70,2,(char*) Cont); + AppDataSize = sprintf((char*)AppData, (char*)Cont); + /*int i=0; + do + Cont[i] = mySerial.getc(); + while (Cont[i++]!='>'); + AppDataSize = sprintf((char*)AppData, (char*)Cont);*/ + //<key:Geiger:192.168.1.1,TS:1425243676924,count:8.70,stato: attivo>"); */ + break; case 13: - // hum_temp->get_temperature(&value1); - // hum_temp->get_humidity(&value2); - // press_temp->get_pressure(&value1); - dist1 = usensor.getCurrentDistance(); + hum_temp->get_temperature(&value1); + hum_temp->get_humidity(&value2); + press_temp->get_pressure(&value3); + //dist1 = usensor.getCurrentDistance(); // usensor->getCurrentDistance(&dist1); - strcpy((char*)Cont, (char*) print_double(buffer1,dist1) ); -// strcat((char*)Cont, " " ); - // strcat((char*)Cont, print_double(buffer1,value2) ); - // strcat((char*)Cont, " "); - // strcat((char*)Cont, print_double(buffer1,value2)); - // strcat((char*)Cont, " "); - + //strcpy((char*)Cont, (char*) print_double(buffer1,(double)dist1) ); + //SerialDisplayDrawTitle("Ricchione!!!!"); + /*strcpy((char*)Cont, (char*) "Ricchione!!!" ); + led = !led;*/ + vt.PutStringAt(70,2,"Ci arriva?"); + strcpy((char*)Cont, "{Temperatura:" ); + strcat((char*)Cont, print_double(buffer1,value1) ); + strcat((char*)Cont, ",Umidità:"); + strcat((char*)Cont, print_double(buffer1,value2)); + strcat((char*)Cont, ",Pressione:"); + strcat((char*)Cont, print_double(buffer1,value3)); + strcat((char*)Cont, "}"); + vt.PutStringAt(70,2,(char*) Cont); /* acc_gyro->get_x_axes(axes); strcpy(Cont,(char*) print_double(buffer1,axes[0])); strcat(Cont, " "); @@ -891,9 +926,9 @@ MibRequestConfirm_t mibReq; //enable sensors - // accelerometer -> enable(); - // hum_temp -> enable(); - // press_temp -> enable(); + //accelerometer -> enable(); + hum_temp -> enable(); + press_temp -> enable(); // acc_gyro->enable_x(); // acc_gyro->enable_g(); usensor.startUpdates();