Demo of DHT11->mDot->TTN

Dependencies:   DHT22 DS18B20_1wire SHTx TSL2561_I2C libmDot mbed-rtos mbed

Fork of mDot_TTN_DHT11 by Chris Merck

Revision:
4:f649ab1b61d1
Parent:
3:367aa95f9771
Child:
5:48eb9245a914
--- a/main.cpp	Tue Sep 22 13:58:59 2015 +0000
+++ b/main.cpp	Thu Oct 15 20:34:52 2015 +0000
@@ -1,5 +1,5 @@
 /** mDot_DS18B20 - Simple mDot temperature sensor using Dallas Semiconductors DS18B20 OneWire temperature sensor.
- * It used the OTA_AUTO join mode using saved parameters. If the config is to be reset then pin A2 on the 
+ * It used the OTA_AUTO join mode using saved parameters. If the config is to be reset then pin A2 on the
  * dev board must be held low during a reset or power up.
  *
  * Uses MultiTech mDot developer board http://www.multitech.com/models/94558010LF
@@ -24,10 +24,13 @@
 
 using namespace mts;
 
+#define MIN(a,b) (((a)<(b))?(a):(b))
+#define MAX(a,b) (((a)>(b))?(a):(b))
+
 // these options must match the settings on your Conduit in
 // /var/config/lora/lora-network-server.conf
-static std::string config_network_name = "<network name>";
-static std::string config_network_pass = "<network password>";
+static std::string config_network_name = "ThingInnovations";
+static std::string config_network_pass = "donkey123";
 // Ignoring sub band for EU modules.
 //static uint8_t config_frequency_sub_band = 1;
 
@@ -71,8 +74,8 @@
     // get a mDot handle
     dot = mDot::getInstance();
 
-    dot->setLogLevel(MTSLog::WARNING_LEVEL);
-//    dot->setLogLevel(MTSLog::TRACE_LEVEL);
+//    dot->setLogLevel(MTSLog::WARNING_LEVEL);
+    dot->setLogLevel(MTSLog::TRACE_LEVEL);
 
     logInfo("Checking Config");
 
@@ -139,11 +142,15 @@
         logInfo("Using existing Config");
     }
 
+    logInfo("Joining Network");
+
     while ((ret = dot->joinNetwork()) != mDot::MDOT_OK) {
         logError("failed to join network [%d][%s]", ret, mDot::getReturnCodeString(ret).c_str());
         wait_ms(dot->getNextTxMs() + 1);
     }
 
+    logInfo("Joined Network");
+
     probe.setResolution(9);
 
     char dataBuf[50];
@@ -167,7 +174,7 @@
         }
 
         // Should  sleep here and wakeup after a set interval.
-        uint32_t sleep_time = (dot->getNextTxMs() / 1000) + 60;
+        uint32_t sleep_time = MAX((dot->getNextTxMs() / 1000), 60);
         logInfo("going to sleep for %d seconds", sleep_time);
 
         // go to sleep and wake up automatically sleep_time seconds later