From d36e30406613e53139fc200e9c342301d778262a Mon Sep 17 00:00:00 2001
From: Tom Igoe <tom.igoe@gmail.com>
Date: Mon, 27 May 2013 12:55:09 -0400
Subject: Added Xively client: currently not working, not sure why

---
 .../Bridge/examples/XivelyClient/XivelyClient.ino  | 105 +++++++++++++++++++++
 1 file changed, 105 insertions(+)
 create mode 100644 libraries/Bridge/examples/XivelyClient/XivelyClient.ino

(limited to 'libraries/Bridge/examples')

diff --git a/libraries/Bridge/examples/XivelyClient/XivelyClient.ino b/libraries/Bridge/examples/XivelyClient/XivelyClient.ino
new file mode 100644
index 0000000..1286230
--- /dev/null
+++ b/libraries/Bridge/examples/XivelyClient/XivelyClient.ino
@@ -0,0 +1,105 @@
+
+/*
+  Xively sensor client with Strings 
+ 
+ This sketch connects an analog sensor to Xively,
+ using an Arduino Yun. 
+ 
+ created  15 March 2010
+ updated 27 May 2013
+ by Tom Igoe
+ 
+ NOT CURRENTLY WORKING as of Arduino 1.5.3 27 May 2013
+ 
+ */
+
+// include all Libraries needed:
+#include <Process.h>
+#include "passwords.h"      // contains my passwords, see below
+
+/*
+  NOTE: passwords.h is not included with this repo because it contains my passwords.
+ You need to create it for your own version of this application.  To do so, make
+ a new tab in Arduino, call it passwords.h, and include the following variables and constants:
+ 
+ #define APIKEY        "foo"                  // replace your pachube api key here
+ #define FEEDID        0000                   // replace your feed ID
+ #define USERAGENT     "my-project"           // user agent is the project name
+ 
+ char ssid[] = "networkname";      //  your network SSID (name)
+ char pass[] = "password";         // your network password
+ 
+ */
+
+
+// set up net client info:
+boolean lastConnected = false;      // state of the connection last time through the main loop
+const unsigned long postingInterval = 60000;  //delay between updates to Pachube.com
+String dataString = "";
+Process xively;
+
+void setup() {
+  // start serial port:
+  Serial.begin(9600);
+  Bridge.begin();
+  delay(2000);
+
+  // reserve space for dataString:
+  dataString.reserve(100);
+}
+
+void loop() {
+  // get a timestamp so you can calculate reading and sending intervals:
+  long now = millis();
+
+  // convert the readings to a String to send it:
+  dataString = "temp,";
+  dataString += random(10) + 20;
+  // add pressure:
+  dataString += "\nPressure,";
+  dataString += random(5) + 100;
+
+  // if there's incoming data from the net connection,
+  // send it out the serial port.  This is for debugging
+  // purposes only:
+  while (xively.available()>0) {
+    char c = xively.read();
+    Serial.write(c);
+  }
+
+
+  // if you're not connected, and the sending interval has passed since
+  // your last connection, then connect again and send data:
+  if(now % postingInterval < 5) {
+    sendData();
+  }
+}
+
+// this method makes a HTTP connection to the server:
+void sendData() {
+  Serial.println("Sending data");
+  xively.begin("curl");
+  dataString = "--data \'" + dataString;
+  dataString += "\'";
+
+  // form the string for the API header parameter:
+  String apiString =  "--header \"X-ApiKey: ";
+  apiString += APIKEY;
+  apiString += "\"";
+
+  // form the string for the URL parameter:
+  String url =  " https://api.xively.com/v2/feeds/";
+  url += FEEDID;
+  url += ".csv";
+
+  // send the HTTP PUT request:
+  xively.addParameter(" -k");
+  xively.addParameter("--request PUT");
+  xively.addParameter(dataString);
+  xively.addParameter(apiString); 
+  xively.addParameter(url);
+  xively.run();
+}
+
+
+
-- 
cgit v1.2.3-18-g5258