Raghav Ganesh
/
AvnetATT_shape_hackathon
This program simply connects to a HTS221 I2C device to read Temperature
Revision 12:7c94ec5069dc, committed 2016-07-12
- 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
--- 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