Here is the arduino code
#include <Wire.h> #includeAnd here is the Processing code that uploads the data to Pachube#define samples 5 float H[samples]; float T[samples]; int L[samples]; byte current = 0; LibHumidity humidity=LibHumidity(0); boolean readSerial() { if(Serial.available() && (Serial.read()==65)) { return true; } Serial.flush(); return false; } void setup(){ Serial.begin(9600); pinMode(58, OUTPUT); pinMode(59, OUTPUT); digitalWrite(58, HIGH); digitalWrite(59, LOW); } void loop(){ H[current]=(float)humidity.GetHumidity(); T[current]=(float)(humidity.GetTemperature() * 1.8 )+32; L[current] = analogRead(3); current++; if(current == samples){ current = 0; } if(readSerial() == true){ float h2 = 0; float t2 = 0; int l2 = 0; for(byte a=0;a Serial.print(h2/samples); Serial.print(',',BYTE); Serial.print(t2/samples); Serial.print(',',BYTE); Serial.println(l2/samples); } delay(1000); }
import processing.serial.*; import eeml.*; DataOut dOut; float lastUpdate; Serial myPort; // The serial port int whichKey = -1; // Variable to hold keystoke values String inByte;// = ' '; // Incoming serial data String[] message; float humidity; float temp; int light; void setup() { size(400, 300); // create a font with the third font available to the system: PFont myFont = createFont(PFont.list()[2], 14); textFont(myFont); println(Serial.list()); // List all the available serial ports: String portName = Serial.list()[2]; myPort = new Serial(this, portName, 9600); myPort.bufferUntil(10); // set up DataOut object; requires URL of the EEML you are updating, and your Pachube API key dOut = new DataOut(this, "http://api.pachube.com/v2/feeds/10505.xml", "API KEY GOES HERE"); // and add and tag a datastream dOut.addData(0,"Humidity"); dOut.addData(1,"Temperature"); dOut.addData(2,"Light"); } void draw() { background(0); text("Light: " + light, 10, 220); text("Temp: " + temp, 10, 190); text("Humidity: " + humidity, 10, 160); text("Last Received: " + inByte, 10, 130); text("Last Sent: " + lastUpdate, 10, 100); if ((millis() - lastUpdate) > 60000){ myPort.write(65); delay(5000); println("ready to POST: "); dOut.update(0, humidity); // update the datastream dOut.update(1, temp); // update the datastream dOut.update(2, light); // update the datastream int response = dOut.updatePachube(); // updatePachube() updates by an authenticated PUT HTTP request println(response); // should be 200 if successful; 401 if unauthorized; 404 if feed doesn't exist lastUpdate = millis(); } } void serialEvent(Serial myPort) { inByte = trim(myPort.readString()); message = split(inByte,','); humidity = float(message[0]);//float(myPort.readStringUntil(',')); temp = float(message[1]);//float(myPort.readString()); light = int(message[2]); } void keyPressed() { // Send the keystroke out: myPort.write(65); whichKey = key; }
No comments:
Post a Comment