Remote I/O Sensor bus with AT&T flow and M2X cloud
Dependencies: DHT11 FXOS8700CQ MODSERIAL mbed
Fork of Avnet_ATT_Cellular_IOT by
Diff: main.cpp
- 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 } +