see http://mbed.org/users/okini3939/notebook/wattmeter-shield-on-mbed/

Dependencies:   mbed

Fork of GSwifi_xively by gs fan

Files at this revision

API Documentation at this revision

Comitter:
gsfan
Date:
Fri Mar 29 15:01:57 2013 +0000
Child:
1:0852a9bd5365
Commit message:
1st build

Changed in this revision

GSwifi.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GSwifi.lib	Fri Mar 29 15:01:57 2013 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/gsfan/code/GSwifi/#f5f40c92af00
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Mar 29 15:01:57 2013 +0000
@@ -0,0 +1,75 @@
+#include "mbed.h"
+#include "GSwifi.h"
+
+#define SECURE GSwifi::GSSEC_WPA_PSK
+#define SSID "SSID"
+#define PASS "passkey"
+
+#define FEED_HOST "api.cosm.com"
+#define FEED_ID "000000"
+#define API_KEY "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+
+GSwifi gs(p13, p14, p20); // TX, RX, Reset (no flow control)
+//GSwifi gs(p13, p14, p12, P0_22, p20, NC, 115200); // TX, RX, CTS, RTS, Reset, Alarm
+Serial pc(USBTX, USBRX);
+DigitalOut led1(LED1), led2(LED2);
+
+void onGsReceive (int cid, int len) {
+    int i;
+    char buf[GS_DATA_SIZE + 1];
+    
+    led2 = 1;
+    i = gs.recv(cid, buf, len);
+    buf[i] = 0;
+    pc.printf(buf);
+}
+
+int cosm (char *data) {
+  Host host;
+  int cid;
+  char buf[100];
+
+  host.setName(FEED_HOST);
+  host.setPort(80);
+  cid = gs.open(host, GSwifi::GSPROT_TCP, &onGsReceive);
+  if (cid < 0) return -1;
+  
+  sprintf(buf, "PUT /v2/feeds/" FEED_ID ".csv HTTP/1.1\r\n");
+  gs.send(cid, buf, strlen(buf));
+  sprintf(buf, "Host: " FEED_HOST "\r\n");
+  gs.send(cid, buf, strlen(buf));
+  sprintf(buf, "Connection: close\r\n");
+  gs.send(cid, buf, strlen(buf));
+  sprintf(buf, "X-ApiKey: " API_KEY "\r\n");
+  gs.send(cid, buf, strlen(buf));
+  sprintf(buf, "Content-Type: text/csv\r\n");
+  gs.send(cid, buf, strlen(buf));
+  sprintf(buf, "Content-Length: %d\r\n", strlen(data));
+  gs.send(cid, buf, strlen(buf));
+  gs.send(cid, "\r\n", 2);
+  gs.send(cid, data, strlen(data));
+
+  gs.close(cid);
+  return 0;
+}
+
+int main () {
+    int r;
+    IpAddr ipaddr, netmask, gateway, nameserver;
+    char data[] = "1,123\r\n2,345\r\n";
+
+    led1 = 1;
+    pc.baud(115200);
+    
+    pc.printf("connect\r\n");
+    if (gs.connect(SECURE, SSID, PASS, 0)) {
+        return -1;
+    }
+    gs.getAddress(ipaddr, netmask, gateway, nameserver);
+    pc.printf("ip %d.%d.%d.%d\r\n", ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3]);
+    
+    pc.printf("Cosm\r\n");
+    cosm(data);
+
+    pc.printf("exit\r\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Mar 29 15:01:57 2013 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/5e5da4a5990b
\ No newline at end of file