Temperature reading using NUCLEO-L152RE microcontroller and Grove – Temperature&Humidity Sensor Pro.
Dependencies: DHT LMiC SX1276Lib mbed
Fork of LoRaWAN_send_text by
Diff: main.cpp
- Revision:
- 14:c872172f062c
- Parent:
- 13:d2eb917f9883
--- 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) {