Lora4MakerFaire

Dependencies:   HC_SR04_Ultrasonic_Library X_NUCLEO_IKS01A2 mbed LoRaWAN-lib SX1272Lib

Fork of LoRaWANdemo72 by FabLab LoRa

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();