Temperature reading using NUCLEO-L152RE microcontroller and Grove – Temperature&Humidity Sensor Pro.

Dependencies:   DHT LMiC SX1276Lib mbed

Fork of LoRaWAN_send_text by Thomas Amberg

Revision:
14:c872172f062c
Parent:
13:d2eb917f9883
diff -r d2eb917f9883 -r c872172f062c main.cpp
--- a/main.cpp	Wed Nov 11 18:32:46 2015 +0000
+++ b/main.cpp	Tue Jan 19 09:51:34 2016 +0000
@@ -4,13 +4,17 @@
 #include "lmic.h"
 #include "debug.h"
 
+#include "DHT.h"
+
 #define LORAWAN_NET_ID (uint32_t) 0x00000000
 // TODO: enter device address below, for TTN just set ???
-#define LORAWAN_DEV_ADDR (uint32_t) 0x5A480???
+#define LORAWAN_DEV_ADDR (uint32_t) 0x02031003
 #define LORAWAN_ADR_ON 1
 #define LORAWAN_CONFIRMED_MSG_ON 1
 #define LORAWAN_APP_PORT 3//15
 
+DHT sensor(A1, AM2302);
+
 static uint8_t NwkSKey[] = {
     // TODO: enter network, or use TTN default
     // e.g. for 2B7E151628AED2A6ABF7158809CF4F3C =>
@@ -33,14 +37,35 @@
 void os_getDevEui (uint8_t *buf) {} // ignore
 void os_getDevKey (uint8_t *buf) {} // ignore
 
+float getTemperature() {
+
+    int err = 1;
+  
+    while(err != 0) {
+        wait(2.0f);
+        err = sensor.readData();
+    }
+    
+    return sensor.ReadTemperature(CELCIUS);
+}
+
 void onSendFrame (osjob_t* j) {
-    const char* message = "Hello"; // ASCII only
+ 
+    char message[32];
+    
+    float temperature = getTemperature();
+    printf("Temperature is %4.2f \r\n", temperature);
+    
+    sprintf(message, "%4.2f", temperature);
+    
     int frameLength = strlen(message); // keep it < 32
     for (int i = 0; i < frameLength; i++) {
         LMIC.frame[i] = message[i];
     }
     int result = LMIC_setTxData2(LORAWAN_APP_PORT, LMIC.frame, 
         frameLength, LORAWAN_CONFIRMED_MSG_ON); // calls onEvent()
+        
+    os_setTimedCallback(j, os_getTime() + sec2osticks(60), onSendFrame);
 }
 
 void onInit (osjob_t* j) {