Remote I/O Sensor bus with AT&T flow and M2X cloud

Dependencies:   DHT11 FXOS8700CQ MODSERIAL mbed

Fork of Avnet_ATT_Cellular_IOT by Avnet

Revision:
82:4e608375910a
Parent:
77:c65eae5b9958
--- a/main.cpp	Thu Nov 17 18:21:52 2016 +0000
+++ b/main.cpp	Tue Apr 17 21:29:20 2018 +0000
@@ -22,6 +22,10 @@
 #include "sensors.h"
 #include "cell_modem.h"
 #include "hardware.h"
+#include "DHT.h"
+#include<stdio.h>
+#include<math.h>
+
 
 I2C i2c(PTC11, PTC10);    //SDA, SCL -- define the I2C pins being used
 MODSERIAL pc(USBTX, USBRX, 256, 256); // tx, rx with default tx, rx buffer sizes
@@ -30,6 +34,16 @@
 DigitalOut led_red(LED_RED);
 DigitalOut led_blue(LED_BLUE);
 
+//UART Code
+Serial device(PTB11,PTB10);  // tx, rx
+char temp[10];
+char humid[10];
+char data[100];
+void reverse(char *str, int len);
+int intToStr(int x, char str[], int d);
+void ftoa(float n, char *res, int afterpoint); 
+
+
 
 //********************************************************************************************************************************************
 //* Create string with sensor readings that can be sent to flow as an HTTP get
@@ -77,7 +91,7 @@
     {
         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);
+            sprintf(modem_string, "GET %s%s?serial=%s&temp=%s&humidity=%s&ammeter=%s&voltmeter=%s&light=%s %s%s\r\n\r\n", FLOW_BASE_URL, FLOW_INPUT_NAME, FLOW_DEVICE_NAME, SENSOR_DATA.Temperature, SENSOR_DATA.Humidity,  SENSOR_DATA.Ammeter,  SENSOR_DATA.Voltmeter, SENSOR_DATA.Light, FLOW_URL_TYPE, MY_SERVER_URL);
             break;
         }
         case TEMP_HUMIDITY_ACCELEROMETER:
@@ -235,14 +249,24 @@
 
     // Send and receive data perpetually
     while(1) {
+    
+        
         #ifdef USE_VIRTUAL_SENSORS
         ProcessUsbInterface();
         #endif
+        
         if  (bTimerExpiredFlag)
         {
             bTimerExpiredFlag = false;
             read_sensors(); //read available external sensors from a PMOD and the on-board motion sensor
+            
+            //UART code
+            sprintf(data,"%s&%s&%s&%s&%s",SENSOR_DATA.Temperature, SENSOR_DATA.Humidity, SENSOR_DATA.Light, SENSOR_DATA.Voltmeter, SENSOR_DATA.Ammeter);
             char modem_string[512];
+            PRINTF("%s", data);
+            device.printf("%s", data);
+            //UART Code end
+            
             GenerateModemString(&modem_string[0]);
             char myJsonResponse[512];
             if (cell_modem_Sendreceive(&modem_string[0], &myJsonResponse[0]))
@@ -257,3 +281,4 @@
         } //bTimerExpiredFlag
     } //forever loop
 }
+