Lora

Dependencies:   Cayenne-LPP HTU21D

Revision:
49:120e166cb735
Parent:
47:b6d132f1079f
--- a/main.cpp	Wed Feb 13 18:37:07 2019 +0000
+++ b/main.cpp	Fri Mar 01 23:54:58 2019 +0000
@@ -19,20 +19,21 @@
 #include "lorawan/LoRaWANInterface.h"
 #include "lorawan/system/lorawan_data_structures.h"
 #include "events/EventQueue.h"
-
+#include "HTU21D.h"
 // Application helpers
 #include "DummySensor.h"
 #include "trace_helper.h"
 #include "lora_radio_helper.h"
-
+#include "CayenneLPP.h"
+#define MAX_SIZE 20
 using namespace events;
 
 // Max payload size can be LORAMAC_PHY_MAXPAYLOAD.
 // This example only communicates with much shorter messages (<30 bytes).
 // If longer messages are used, these buffers must be changed accordingly.
-uint8_t tx_buffer[30];
+//uint8_t tx_buffer[30];
 uint8_t rx_buffer[30];
-
+CayenneLPP Payload(MAX_SIZE);
 /*
  * Sets up an application dependent transmission timer in ms. Used only when Duty Cycling is off for testing
  */
@@ -59,7 +60,7 @@
  * Dummy sensor class object
  */
 DS1820  ds1820(PC_9);
-
+HTU21D temphumid(PB_14, PB_13); //Temp humid sensor || SDA, SCL
 /**
 * This event queue is the global event queue for both the
 * application and stack. To conserve memory, the stack is designed to run
@@ -150,26 +151,28 @@
  */
 static void send_message()
 {
-    uint16_t packet_len;
+    
     int16_t retcode;
-    float sensor_value;
+    int sensor_value;
+    int sensor_value_2;
 
-    if (ds1820.begin()) {
-        ds1820.startConversion();
-        sensor_value = ds1820.read();
-        printf("\r\n Dummy Sensor Value = %3.1f \r\n", sensor_value);
-        ds1820.startConversion();
-    } else {
-        printf("\r\n No sensor found \r\n");
-        return;
-    }
+    sensor_value = temphumid.sample_ctemp();
+    sensor_value_2=temphumid.sample_humid();
+    //uint16_t value=uint16_t(10*sensor_value);
+    // uint8_t tx_buffer[4]={0x01,0x67,uint8_t(value>>8),uint8_t(value%256)};
+    //packet_len=sizeof(tx_buffer);
+    //retcode = lorawan.send(MBED_CONF_LORA_APP_PORT, tx_buffer, packet_len,MSG_UNCONFIRMED_FLAG);
 
-    packet_len = sprintf((char *) tx_buffer, "Dummy Sensor Value is %3.1f",
-                         sensor_value);
+    
+    Payload.reset();
+    Payload.addTemperature(1, float(sensor_value));
+    Payload.addRelativeHumidity(0, float(sensor_value_2));
+    retcode = lorawan.send(MBED_CONF_LORA_APP_PORT, Payload.getBuffer(), Payload.getSize(),MSG_UNCONFIRMED_FLAG);
+    //lorawan.send(Payload.getBuffer(), Payload.getSize());
 
-    retcode = lorawan.send(MBED_CONF_LORA_APP_PORT, tx_buffer, packet_len,
-                           MSG_UNCONFIRMED_FLAG);
-
+    
+    printf("Temperature: %d C\n\r", sensor_value);
+    printf("Humidite: %d \n\r", sensor_value_2);
     if (retcode < 0) {
         retcode == LORAWAN_STATUS_WOULD_BLOCK ? printf("send - WOULD BLOCK\r\n")
         : printf("\r\n send() - Error code %d \r\n", retcode);
@@ -182,9 +185,10 @@
         }
         return;
     }
-
+    /*
     printf("\r\n %d bytes scheduled for transmission \r\n", retcode);
     memset(tx_buffer, 0, sizeof(tx_buffer));
+    */
 }
 
 /**
@@ -206,7 +210,7 @@
         printf("%02x ", rx_buffer[i]);
     }
     printf("\r\n");
-    
+
     memset(rx_buffer, 0, sizeof(rx_buffer));
 }