Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: C027_Support HTTPClient-basicAuth M2XStreamClient jsonlite mbed
Revision 0:8ce138308888, committed 2014-09-07
- Comitter:
- kwchang2
- Date:
- Sun Sep 07 20:33:03 2014 +0000
- Commit message:
- working car module code
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/C027_Support.lib Sun Sep 07 20:33:03 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/teams/ublox/code/C027_Support/#18aeacdae391
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HTTPClient-basicAuth.lib Sun Sep 07 20:33:03 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/ansond/code/HTTPClient-basicAuth/#19392aabd83d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/M2XStreamClient.lib Sun Sep 07 20:33:03 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/teams/ATT-M2X-team/code/M2XStreamClient/#4d7109bae9cf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jsonlite.lib Sun Sep 07 20:33:03 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/citrusbyte/code/jsonlite/#807034181e02
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sun Sep 07 20:33:03 2014 +0000
@@ -0,0 +1,157 @@
+#include "mbed.h"
+#include "MDM.h"
+#include "HTTPClient.h"
+#include "M2XStreamClient.h"
+
+// M2X stuff
+char feedId[] = "c6eabf437b8c69efbb4e4a8d5c60c04d"; // Feed you want to post to
+char m2xKey[] = "10bc8a4dc4a37c5dc549b41ffaa6d6c1"; // Your M2X access key
+char streamName[] = "danger_bit"; // Stream you want to post to
+
+// Connected Car stuff
+char ccUser[] = "provider";
+char ccPass[] = "1234";
+char ccOnUrl[] = "http://toy.hack.att.io:3000/remoteservices/v1/vehicle/engineOn/1234567890abcd";
+char ccOffUrl[] = "http://toy.hack.att.io:3000/remoteservices/v1/vehicle/engineOff/1234567890abcd";
+
+Ticker sensortick;
+
+DigitalOut heat(P2_13);
+AnalogIn sensor(P0_23);
+
+int volatile reading;
+bool volatile newReading = false;
+
+void sensor_isr()
+{
+ reading = (int)(sensor.read() * 1000);
+ newReading = true;
+}
+
+int main()
+{
+ MDMSerial mdm;
+
+ Client client;
+ M2XStreamClient m2xClient(&client, m2xKey);
+
+ DigitalOut led(LED);
+
+ led = 1;
+ sensortick.attach(sensor_isr, 2);
+ heat = 1;
+
+ printf("\nConnecting...\n");
+
+ //mdm.setDebug(4); // enable this for debugging issues
+ if (!mdm.connect())
+ {
+ printf("Connect failed!\n");
+ return -1;
+ }
+
+ led = 0;
+ printf("Connected!\n");
+ set_time(0);
+
+ HTTPClient http;
+ HTTPMap map;
+ char str[512];
+ HTTPText inText(str, 512);
+ int ret;
+
+ http.basicAuth(ccUser, ccPass);
+ http.customHeaders(NULL, 0);
+
+ printf("\nTurning on engine...\n");
+ do
+ {
+ ret = http.post(ccOnUrl, map, &inText, 15000);
+ if (!ret)
+ {
+ printf("Executed POST successfully - read %d characters\n", strlen(str));
+ printf("Result: %s\n", str);
+ }
+ else
+ {
+ printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
+ }
+ } while (ret);
+
+ time_t seconds;
+
+ int currentReading, highReading = 1000, prevReading = 1000;
+ bool alarm = true;
+ unsigned int wait = 15;
+
+ while (1)
+ {
+ if (newReading)
+ {
+ led = 1;
+ currentReading = reading; // make a copy because the isr might update it before we're done here
+ seconds = time(NULL);
+ printf("%d:%02d:%02d:%02d ", seconds / 86400, (seconds / 3600) % 24, (seconds / 60) % 60, seconds % 60);
+ printf("Alarm: %s Reading: %d (prev: %d; high: %d)\n", (alarm ? "yes" : "no"), currentReading, prevReading, highReading);
+
+ if (!alarm && ((currentReading - prevReading) > 50))
+ {
+ // rise since previous reading
+ printf("*** Danger!\n");
+
+ printf("Turning off engine...\n");
+ do
+ {
+ ret = http.post(ccOffUrl, map, &inText, 15000);
+ if (!ret)
+ {
+ printf("Executed POST successfully - read %d characters\n", strlen(str));
+ printf("Result: %s\n", str);
+ }
+ else
+ {
+ printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
+ }
+ } while (ret);
+
+ do
+ {
+ printf("Reporting danger...\n");
+ ret = m2xClient.post(feedId, streamName, 1);
+ printf("Post response code: %d\n", ret);
+ } while (ret != 204);
+
+ highReading = currentReading;
+ alarm = true;
+ wait = 0;
+ }
+ else if (alarm && ((highReading - currentReading) > 50))
+ {
+ wait++;
+ if (wait > 15) // 30 s
+ {
+ // fall since last high reading
+ printf("*** Safe!\n");
+
+
+ do
+ {
+ printf("Reporting safe...\n");
+ ret = m2xClient.post(feedId, streamName, 0);
+ printf("Post response code: %d\n", ret);
+ } while (ret != 204);
+
+ alarm = false;
+ }
+ }
+ prevReading = currentReading;
+ newReading = false;
+ led = 0;
+ }
+ }
+
+ /*mdm.disconnect();
+ mdm.powerOff();
+
+ while (1);*/
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sun Sep 07 20:33:03 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/9327015d4013 \ No newline at end of file