Demo of DHT11->mDot->TTN
Dependencies: DHT22 DS18B20_1wire SHTx TSL2561_I2C libmDot mbed-rtos mbed
Fork of mDot_TTN_DHT11 by
Diff: main.cpp
- Revision:
- 4:f649ab1b61d1
- Parent:
- 3:367aa95f9771
- Child:
- 5:48eb9245a914
diff -r 367aa95f9771 -r f649ab1b61d1 main.cpp --- 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