Lora4MakerFaire
Dependencies: HC_SR04_Ultrasonic_Library X_NUCLEO_IKS01A2 mbed LoRaWAN-lib SX1272Lib
Fork of LoRaWANdemo72 by
Diff: app/main.cpp
- Revision:
- 10:88f1c052f9e9
- Parent:
- 9:85c85c65299a
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();