Example of using the ATT M2X back end. Connect over Wifi with the ESP8266 chip. This code sends random data to M2X. This code can be used for Any board, just change the RX/TX pins the wifi adapter is connected to.

Dependencies:   ESP8266Interface M2XStreamClient jsonlite mbed

Fork of M2X_K64F_Accel_ESP8266-wifi by AT&T Developer Summit Hackathon 2016

Revision:
5:b3bcb048a5a5
Parent:
4:3c1d712dcc48
Child:
6:694279899cf2
--- a/main.cpp	Fri Dec 11 00:25:01 2015 +0000
+++ b/main.cpp	Fri Dec 11 00:37:37 2015 +0000
@@ -1,26 +1,19 @@
 #include "mbed.h"
-#include "FXOS8700Q.h"
 #include "M2XStreamClient.h"
 #include "ESP8266Interface.h"
 #include "TCPSocketConnection.h"
 
-
-#ifndef MAX
-#define max(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a > _b ? _a : _b; })
-#endif
-
-#ifndef MIN
-#define min(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; })
-#endif
-
+//
+// Fill these field in from you ATT M2X Account
+//
 char deviceId[] = "<device id>"; // Device you want to push to
 char streamName[] = "<stream name>"; // Stream you want to push to
 char m2xKey[] = "<m2x api key>"; // Your M2X API Key or Master API Key
 
 /*
-*  ESP8266 Wifi Config, connect it to D0 on Seeed Grove shield
+*  ESP8266 Wifi Config for nucleo 411
 */
-ESP8266Interface wifi(D1,D0,D3,"wifi-name","wifi-password",115200); // TX,RX,Reset,SSID,Password,Baud 
+ESP8266Interface wifi(D8,D2,D3,"wifi-name","wifi-password",115200); // TX,RX,Reset,SSID,Password,Baud 
 
 int main()
 {
@@ -33,37 +26,16 @@
 
     // Initialize the M2X client
     Client client;
-    M2XStreamClient m2xClient(&client, m2xKey,1,"52.22.150.98");
+    M2XStreamClient m2xClient(&client, m2xKey,1,"52.22.150.98"); // api-m2x.att.com
+    
     int ret;
-
-    // Create an accelerometer instance
-    FXOS8700Q_acc acc( PTE25, PTE24, FXOS8700CQ_SLAVE_ADDR1); // Proper Ports and I2C Address for K64F Freedom board
-    acc.enable();
-    printf("\r\n\nFXOS8700Q Who Am I= %X\r\n", acc.whoAmI());
+    volatile int randomNumber = 0;
 
     while (true) {
-
-        float x, y, z;
-        acc.getX(&x);
-        acc.getY(&y);
-        acc.getZ(&z);
-
-        printf("Accel X: %1.2f, Y: %1.2f, Z: %1.2f\n\r", x, y, z);
-
-        // Calculate pitch and roll. Find the maximum tilt angle.
-        float pitch = atan(x / sqrt(y * y + z * z));
-        float roll = atan(y / sqrt(x * x + z * z));
-        float maxTilt =
-            max(abs(roll), abs(pitch)) * 180.0 / 3.14159;
-        printf("pitch: %5.1f roll: %5.1f maxTilt: %5.1f\n\r",
-               pitch, roll, maxTilt);
-
-        // If the maximum title is over 20 degrees, then send
-        // data to stream
-        
-            ret = m2xClient.updateStreamValue(deviceId, streamName, maxTilt);
-            printf("send() returned %d\r\n", ret);
-            wait(1.0);
-        
+        // send a random number to M2X every 5 seconds
+        randomNumber = rand();
+        ret = m2xClient.updateStreamValue(deviceId, streamName, randomNumber);
+        printf("send() returned %d\r\n", ret);
+        wait(5.0);
     }
 }
\ No newline at end of file