Jjun Deng / Mbed 2 deprecated WDR_additional_counter

Dependencies:   libmDot mbed-rtos mbed

Fork of CardRead_20170613 by wireless sensor

Files at this revision

API Documentation at this revision

Comitter:
JCheng
Date:
Thu Feb 04 09:52:26 2016 +0000
Parent:
4:36e214ebfa56
Child:
6:f1e7916a9999
Commit message:
initial version or collaboration.; DTH11 supported.

Changed in this revision

DHT.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DHT.lib	Thu Feb 04 09:52:26 2016 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/components/code/DHT/#df22ddf10d75
--- a/main.cpp	Wed Sep 30 19:49:02 2015 +0000
+++ b/main.cpp	Thu Feb 04 09:52:26 2016 +0000
@@ -4,22 +4,31 @@
 #include <string>
 #include <vector>
 #include <algorithm>
+#include "DHT.h"
+ 
+DHT sensor(PB_1, DHT11);
 
 // these options must match the settings on your Conduit
 // uncomment the following lines and edit their values to match your configuration
-//static std::string config_network_name = "<lora network id>";
-//static std::string config_network_pass = "<lora network key>";
-//static uint8_t config_frequency_sub_band = 1;
+static std::string config_network_name = "chinaiot";
+static std::string config_network_pass = "password";
+static uint8_t config_frequency_sub_band = 2;
 
 int main() {
     int32_t ret;
     mDot* dot;
     std::vector<uint8_t> data;
-    std::string data_str = "hello!";
-    
+    std::vector<uint8_t> send_data;
+    std::string data_str = "T&H Sensors";
+    int error = 0;
+//    float h = 0.0f, c = 0.0f, f = 0.0f, k = 0.0f, dp = 0.0f, dpf = 0.0f;
+    float h = 0.0f, c = 0.0f;
+ 
+ 
     // get a mDot handle
     dot = mDot::getInstance();
-    
+
+
     // print library version information
     logInfo("version: %s", dot->getId().c_str());
 
@@ -28,12 +37,12 @@
     //*******************************************
     // reset to default config so we know what state we're in
     dot->resetConfig();
-    
+
     dot->setLogLevel(mts::MTSLog::INFO_LEVEL);
 
     // set up the mDot with our network information: frequency sub band, network name, and network password
     // these can all be saved in NVM so they don't need to be set every time - see mDot::saveConfig()
-    
+
     // frequency sub band is only applicable in the 915 (US) frequency band
     // if using a MultiTech Conduit gateway, use the same sub band as your Conduit (1-8) - the mDot will use the 8 channels in that sub band
     // if using a gateway that supports all 64 channels, use sub band 0 - the mDot will use all 64 channels
@@ -41,17 +50,17 @@
     if ((ret = dot->setFrequencySubBand(config_frequency_sub_band)) != mDot::MDOT_OK) {
         logError("failed to set frequency sub band %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
     }
-    
+
     logInfo("setting network name");
     if ((ret = dot->setNetworkName(config_network_name)) != mDot::MDOT_OK) {
         logError("failed to set network name %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
     }
-    
+
     logInfo("setting network password");
     if ((ret = dot->setNetworkPassphrase(config_network_pass)) != mDot::MDOT_OK) {
         logError("failed to set network password %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
     }
-    
+
     // a higher spreading factor allows for longer range but lower throughput
     // in the 915 (US) frequency band, spreading factors 7 - 10 are available
     // in the 868 (EU) frequency band, spreading factors 7 - 12 are available
@@ -59,13 +68,13 @@
     if ((ret = dot->setTxDataRate(mDot::SF_10)) != mDot::MDOT_OK) {
         logError("failed to set TX datarate %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
     }
-    
+
     // request receive confirmation of packets from the gateway
     logInfo("enabling ACKs");
     if ((ret = dot->setAck(1)) != mDot::MDOT_OK) {
         logError("failed to enable ACKs %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
     }
-    
+
     // save this configuration to the mDot's NVM
     logInfo("saving config");
     if (! dot->saveConfig()) {
@@ -87,6 +96,9 @@
     for (std::string::iterator it = data_str.begin(); it != data_str.end(); it++)
         data.push_back((uint8_t) *it);
 
+    char dataBuf[11];
+    int thflag=0;
+    
     while (true) {
         // send the data to the gateway
         if ((ret = dot->send(data)) != mDot::MDOT_OK) {
@@ -97,7 +109,36 @@
 
         // in the 868 (EU) frequency band, we need to wait until another channel is available before transmitting again
         osDelay(std::max((uint32_t)5000, (uint32_t)dot->getNextTxMs()));
+
+        wait(2.0f);
+        error = sensor.readData();
+        if (0 == error) {
+            c   = sensor.ReadTemperature(CELCIUS);
+//            f   = sensor.ReadTemperature(FARENHEIT);
+//            k   = sensor.ReadTemperature(KELVIN);
+            h   = sensor.ReadHumidity();
+//            dp  = sensor.CalcdewPoint(c, h);
+//            dpf = sensor.CalcdewPointFast(c, h);
+            printf("Temperature: %4.2f Humidity: %4.2f\n\n", c, h);
+
+        if (thflag==0) {
+                sprintf(dataBuf, "T:%4.2f", c);
+                thflag=1;
+                } else {
+                    sprintf(dataBuf, "H:%4.2f", h);
+                    thflag=0;
+                }
+                    
+        data.clear();
+        // probably not the most efficent way to do this
+        for( int i=0; i< strlen(dataBuf); i++ )
+            data.push_back( dataBuf[i] );
+
+        } else {
+            printf("Error: %d\n", error);
+        }
+
     }
 
-    return 0;
+//    return 0;
 }