mbed application board program with most libraries pulled in to create a feature rich starting point for hackathons

Dependencies:   C12832_lcd EthernetInterface HTTPClient LM75B MMA7660 mbed-rtos mbed

Fork of HTTPClient_HelloWorld by Donatien Garnier

AT&T M2M Mobile App Hackathon

Team's Project Pitch Notes

  • Car location and tracking system (GPS + Wifi + Cellular)
  • Temperature / auto vent control for home and industrial use (cellular + servo)
  • GPS triangulation (sonar + cellular)
  • Emergency Tool (Low cost OnStar / Sync Emergency Assistance)
  • Remote Video Conference: Tele-presense (cellular and buttons. Rest was web services)
  • M2M Billboard (LED + Cellular)
  • Order management (restaurants) - Interrupt driven service. Not polled by wait staff (level sensor and cellular)
  • pool manager (simulated ph and chem readings -> cellular)
  • sprest - learning electronic sprinkler system (simulated moisture and weather readings -> cellular)
  • safe traffic signals: stoprite (lots of statistics, used buttons and toy cars to create a scenario)
  • Ecosense

Keywords Used Frequently During Presentation

  • real-time
  • MQTT
  • Arduino
  • 2lemetry
  • HTML5
  • Big data
  • Server side

Participants

  • ARM mbed
  • 2lemetry
  • MSFT
    • One group hacked on windows phone, rest on android / iphone
    • Most were HTML5 (better looking ones)

Pictures from the Event

Revision:
7:f50a7529de41
Parent:
5:83c272535884
--- a/main.cpp	Sun Sep 15 19:37:56 2013 +0000
+++ b/main.cpp	Sun Sep 15 22:04:12 2013 +0000
@@ -37,9 +37,12 @@
 
 //char const *URL = "http://mbed.org/media/uploads/donatien/hello.txt";
 //char const *URL = "http://mbed.org/";
-char const *URL = "https://www.google.com/";
+char const *URL = "http://www.att.com/";
 char const MAC[] = {0x00,0x02,0xF7,0xF0,0x00,0x00};
-void mbed_mac_address(char *mac) { memcpy(mac, MAC, sizeof(MAC)); }
+void mbed_mac_address(char *mac)
+{
+    memcpy(mac, MAC, sizeof(MAC));
+}
 
 int main()
 {
@@ -53,12 +56,15 @@
     }
     // Try to get an IPAddress
     if (0 != eth.connect(30000)) {
-        //error("Connect Failed:\n");
+        error("Connect Failed: Check ethernet connection or try to increase the timeout\n");
     }
     // Now we are part of the network
     printf("IP Address: %s\n", eth.getIPAddress());
+    lcd.cls();
+    lcd.locate(0,0);
+    lcd.printf("TCP/IPv4: %s\n", eth.getIPAddress());
     //GET data
-    printf("\nTrying to fetch page %s\n", URL);
+    printf("Trying to fetch page %s\n", URL);
     if(!http.get(URL, str, WEBPAGE_BUF_SIZE)) {
         printf("Page fetched successfully - read %d characters\n", strlen(str));
         printf("Result: %s\n", str);
@@ -68,17 +74,20 @@
     eth.disconnect();
 
     while(1) {
+        // print the temperature to the LCD
+        float tmp_temp = (temp.read() * 1.8f ) + 32.0f;
         lcd.locate(8,10);
-        //lcd.printf("Temp: %.1fC", temp.read());
-        lcd.printf("Temp: %.1fF", (temp.read()+32*(9/5)));
+        lcd.printf("Temp: %.1fF", tmp_temp);
 
+        // print and display the gyro data
+        float x = fabs(accelerometer.x());
+        float y = fabs(accelerometer.y());
+        float z = fabs(accelerometer.z());
+        r = 1.0f - x;
+        g = 1.0f - y;
+        b = z;
         lcd.locate(8,20);
-        lcd.printf("X: %.1f Y:%.1f Z:%.1f\n", accelerometer.x(), accelerometer.y(), accelerometer.z());
+        lcd.printf("X: %2.1f Y:%2.1f Z:%2.1f\n", x, y, z);
 
-        r = 1.0f - accelerometer.x();
-        g = 1.0f - accelerometer.y();
-        b = 1.0f - accelerometer.z();
-
-        led = (enter) ? 0xf : joystick;
     }
 }