This program simply connects to a HTS221 I2C device to read Temperature

Dependencies:   FXOS8700CQ mbed

Files at this revision

API Documentation at this revision

Comitter:
stefanrousseau
Date:
Tue Jul 12 21:56:51 2016 +0000
Parent:
11:e6602513730f
Child:
13:df9c49662797
Commit message:
Fixed GET string format and added 3 options for the sensors to be read.

Changed in this revision

Flow_parameters.h Show diff for this revision Revisions of this file
config_me.h 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
sensors.h Show annotated file Show diff for this revision Revisions of this file
--- a/Flow_parameters.h	Tue Jul 12 03:11:05 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/******************************************************
- *                    Constants
- ******************************************************/
-
-//sockwrite_mdm("GET \r\n/f653d97537235/a31c2684a02c/d35e42196968fd6/in/flow/climate?deviceID=foo&temp=41.0&humidity=87.33\r\n HTTP/1.1\r\nHost: run-east.att.io:80\r\nAccept: */*\r\n\r\n");
-//#define FLOW_CALLBACK_URL_START      "GET \r\n/f653d97537235/a31c2684a02c/d35e42196968fd6/in/flow/climate"
-//#define FLOW_CALLBACK_URL_END        "\r\n HTTP/1.1 Host: run-east.att.io:80 Accept: */*\r\n\r\n"
-
-#define FLOW_CALLBACK_URL_START      "GET \r\n/1e464b19cdcde/774c88d68202/86694923d5bf28a/in/flow/climate"
-#define FLOW_CALLBACK_URL_END        "\r\n HTTP/1.1 Host: run-west.att.io:80 Accept: */*\r\n\r\n"
-
-/******************************************************
- *                 Type Definitions
- ******************************************************/
-#define FLOW_FIELD_LEN_LIMIT  32
-// Flow Message Definition //
-typedef struct
-{
-    char URL_start[256];
-    char URL_end[256];
-    char Device_ID[128];
-
-    float latitude;
-    float longitude;
-    long elevation;
-} Flow_datapoint_t;
--- a/config_me.h	Tue Jul 12 03:11:05 2016 +0000
+++ b/config_me.h	Tue Jul 12 21:56:51 2016 +0000
@@ -2,10 +2,19 @@
 #define __CONFIG_ME_H_
 
 // User must set these for own context:
-static const char * MY_FLOW_DEVICE_ID_STR = "48482f";
-//static const char * MY_SERVER_URL         = "run-east.att.io";
-static const char * MY_SERVER_URL         = "run-west.att.io";
-static const char * MY_APN_STR            = "m2m.com.attz";
-static const char * MY_PORT_STR           = "80";
+//static const char * MY_SERVER_URL       = "run-east.att.io";
+static const char * MY_SERVER_URL       = "run-west.att.io";
+#define FLOW_BASE_URL                   "/1e464b19cdcde/774c88d68202/86694923d5bf28a/in/flow"
+#define FLOW_INPUT_NAME                 "/climate"
+#define FLOW_DEVICE_NAME                "vstarterkit001"
+#define FLOW_URL_TYPE                   " HTTP/1.1\r\nHost: "
+
+#define TEMP_HUMIDITY_ONLY                      1
+#define TEMP_HUMIDITY_ACCELEROMETER             2
+#define TEMP_HUMIDITY_ACCELEROMETER_PMODSENSORS 3
+static int iSensorsToReport = TEMP_HUMIDITY_ACCELEROMETER_PMODSENSORS;
+
+static const char * MY_APN_STR          = "m2m.com.attz";
+static const char * MY_PORT_STR         = "80"; //This is for normal HTTP.  If you want to use TCP to a specific port, change that here
 
 #endif
--- a/main.cpp	Tue Jul 12 03:11:05 2016 +0000
+++ b/main.cpp	Tue Jul 12 21:56:51 2016 +0000
@@ -242,19 +242,52 @@
 
 #define CTOF(x)  ((x)*1.8+32)
 
-#include "Flow_parameters.h"
 //********************************************************************************************************************************************
-//* Create string that can be sent to flow as an HTTP get
+//* Create string with sensor readings that can be sent to flow as an HTTP get
 //********************************************************************************************************************************************
-static Flow_datapoint_t  FLOW_DATAPOINT =
+K64F_Sensors_t  SENSOR_DATA =
 {
-    .URL_start     = FLOW_CALLBACK_URL_START,
-    .URL_end       = FLOW_CALLBACK_URL_END
+    .Temperature        = "0",
+    .Humidity           = "0",
+    .AccelX             = "0",
+    .AccelY             = "0",
+    .AccelZ             = "0",
+    .MagnetometerX      = "0",
+    .MagnetometerY      = "0",
+    .MagnetometerZ      = "0",
+    .AmbientLightVis    = "0",
+    .AmbientLightIr     = "0",
+    .UVindex            = "0",
+    .Proximity          = "0",
+    .Temperature_Si7020 = "0",
+    .Humidity_Si7020    = "0"
 };
+
 void GenerateModemString(char * modem_string)
 {
-    //sprintf(modem_string, "%s?deviceID=%s&temp=%s&humidity=%s %s", FLOW_DATAPOINT.URL_start, FLOW_DATAPOINT.Device_ID, SENSOR_DATA.Temperature, SENSOR_DATA.Humidity, FLOW_DATAPOINT.URL_end);
-    sprintf(modem_string, "%s?serial=vstarterkit001&temp=%s&humidity=%s %s", FLOW_DATAPOINT.URL_start, SENSOR_DATA.Temperature, SENSOR_DATA.Humidity, FLOW_DATAPOINT.URL_end);
+    switch(iSensorsToReport)
+    {
+        case TEMP_HUMIDITY_ONLY:
+        {
+            sprintf(modem_string, "GET %s%s?serial=%s&temp=%s&humidity=%s %s%s\r\n\r\n", FLOW_BASE_URL, FLOW_INPUT_NAME, FLOW_DEVICE_NAME, SENSOR_DATA.Temperature, SENSOR_DATA.Humidity, FLOW_URL_TYPE, MY_SERVER_URL);
+            break;
+        }
+        case TEMP_HUMIDITY_ACCELEROMETER:
+        {
+            sprintf(modem_string, "GET %s%s?serial=%s&temp=%s&humidity=%s&accelX=%s&accelY=%s&accelZ=%s %s%s\r\n\r\n", FLOW_BASE_URL, FLOW_INPUT_NAME, FLOW_DEVICE_NAME, SENSOR_DATA.Temperature, SENSOR_DATA.Humidity, SENSOR_DATA.AccelX,SENSOR_DATA.AccelY,SENSOR_DATA.AccelZ, FLOW_URL_TYPE, MY_SERVER_URL);
+            break;
+        }
+        case TEMP_HUMIDITY_ACCELEROMETER_PMODSENSORS:
+        {
+            sprintf(modem_string, "GET %s%s?serial=%s&temp=%s&humidity=%s&accelX=%s&accelY=%s&accelZ=%s&proximity=%s&light_uv=%s&light_vis=%s&light_ir=%s %s%s\r\n\r\n", FLOW_BASE_URL, FLOW_INPUT_NAME, FLOW_DEVICE_NAME, SENSOR_DATA.Temperature, SENSOR_DATA.Humidity, SENSOR_DATA.AccelX,SENSOR_DATA.AccelY,SENSOR_DATA.AccelZ, SENSOR_DATA.Proximity, SENSOR_DATA.UVindex, SENSOR_DATA.AmbientLightVis, SENSOR_DATA.AmbientLightIr, FLOW_URL_TYPE, MY_SERVER_URL);
+            break;
+        }
+        default:
+        {
+            sprintf(modem_string, "Invalid sensor selected\r\n\r\n");
+            break;
+        }
+    } //switch(*ucCommandIndex)
 } //GenerateModemString        
             
             
@@ -295,6 +328,7 @@
     printf("Humid is: %02d %%\n\r",hts221.readHumidity());
     
     sensors_init();
+    read_sensors();
 
     // Initialize the modem
     printf(GRN "Modem initializing... will take up to 60 seconds" DEF "\r\n");
@@ -326,16 +360,17 @@
             char modem_string[512];
             GenerateModemString(&modem_string[0]);
             printf(DEF "Sending to modem : %s\n", modem_string); 
-            //sockwrite_mdm("GET \r\n/f653d97537235/a31c2684a02c/d35e42196968fd6/in/flow/climate?deviceID=foo&temp=41.0&humidity=87.33\r\n HTTP/1.1\r\nHost: run-east.att.io:80\r\nAccept: */*\r\n\r\n");
             sockwrite_mdm(modem_string);
             sockread_mdm(&MySocketData, 1024, 20);
             sockclose_mdm();
         } //bTimerExpiredFlag
     } //forever loop
 
+#if (0)
     string * pStr;
     while (1)
     {
        send_wnc_cmd("AT", &pStr, WNC_TIMEOUT_MS);
     }
+#endif    
 }
--- a/sensors.h	Tue Jul 12 03:11:05 2016 +0000
+++ b/sensors.h	Tue Jul 12 21:56:51 2016 +0000
@@ -1,3 +1,6 @@
+#ifndef __SENSORS_H_
+#define __SENSORS_H_
+
 void sensors_init(void);
 void read_sensors(void);
 
@@ -20,21 +23,6 @@
     char  Humidity_Si7020[SENSOR_FIELD_LEN_LIMIT];
 } K64F_Sensors_t ;
 
-static K64F_Sensors_t  SENSOR_DATA =
-{
-    .Temperature        = "0",
-    .Humidity           = "0",
-    .AccelX             = "0",
-    .AccelY             = "0",
-    .AccelZ             = "0",
-    .MagnetometerX      = "0",
-    .MagnetometerY      = "0",
-    .MagnetometerZ      = "0",
-    .AmbientLightVis    = "0",
-    .AmbientLightIr     = "0",
-    .UVindex            = "0",
-    .Proximity          = "0",
-    .Temperature_Si7020 = "0",
-    .Humidity_Si7020    = "0"
-};
+extern K64F_Sensors_t  SENSOR_DATA;
 
+#endif
\ No newline at end of file