Stap 1:
-Arduino Uno
http://www.Sparkfun.com/products/10356
-6' USB A naar B-kabel
http://www.Sparkfun.com/products/512
-Breadboard miniatuur
http://www.Sparkfun.com/products/137
-Male naar mannelijke jumper draden
http://www.Sparkfun.com/products/9387
-Fotocel
http://www.Sparkfun.com/products/9088
-Vocht en temperatuursensor
http://www.Sparkfun.com/products/10167
-330 Ohm weerstanden
http://www.Sparkfun.com/products/10465
-10 k Ohm weerstanden
http://www.Sparkfun.com/products/10466
Software:
1-verwerking
http:// (http://processing.org/)
2 - Arduino
http:// (http://www.arduino.cc/)
Derde deel-bibliotheken:
3 - DHT(Arduino)
http://www.ladyada.net/Learn/sensors/DHT.html
4 - EEML(Processing)
5-stedelijke Sensing Code (kopie plakken IDE)
Arduino Code:
Schets van de sensor op basis van ladyada DHT (http://www.ladyada.net/learn/sensors/dht.html) en fotocel (http://www.ladyada.net/learn/sensors/cds.html) code monsters
DHT library, geschreven door ladyada (https://github.com/adafruit/DHT-sensor-library)
#include "DHT.h"
#define DHTPIN 2 / / welke pin wij verbonden bent met
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
int photocellPin = 0;
int photocellReading;
Aansluiten aan vastmaken 1 (aan de linkerkant) van de sensor + 5V
Verbinden met pin 2 van de sensor wat uw DHTPIN is
Pin 4 (aan de rechterkant) van de sensor verbinden met grond
Verbinding maken met een 10K Ohm weerstand van pin 2 (gegevens) aan pin 1 (kracht) van de sensor
DHT dht (DHTPIN, DHTTYPE);
VOID Setup {}
Serial.begin(9600);
DHT.begin();
}
void loop {}
Lezing temperatuur of vochtigheid neemt ongeveer 250 milliseconden!
Sensor lezingen kan maximaal 2 seconden 'oude' (het is een zeer langzame sensor)
zweven h = dht.readHumidity();
zweven t = dht.readTemperature();
photocellReading = analogRead(photocellPin);
Controleer als opbrengsten geldig zijn, indien zij NaN (geen getal zijn) dan iets mis gegaan!
Als (isnan(t) || isnan(h)) {}
Serial.println ("kon aflezen uit DHT");
} else {}
Serial.Print(h); vochtigheid
Serial.Print(",");
Serial.Print(t); temperatuur
Serial.Print(",");
Serial.println (photocellReading), //photocell
}
}
Verwerking van Code:
importeren van processing.serial.*;
importeren van eeml.*;
Seriële myPort;
String inString;
String inString0;
String inString1;
String inString2;
Lijst met tekenreeksen;
int lf = 10;
DataOut dOut;
float lastUpdate;
VOID Setup {}
myPort = nieuwe Serial (dit, Serial.list()[0],9600);
myPort.bufferUntil(lf);
DataOut object; instellen URL van de EEML die u wilt bijwerken, en uw Pachube API-sleutel vereist
dOut = nieuwe DataOut (, "Uw SENSOR FEED hier BV (https://api.pachube.com/v2/feeds/39533.xml)", "Uw API-sleutel hier");
toevoegen en labelen van een datastream
dOut.addData(0,"humidity");
toevoegen en labelen van een datastream
dOut.addData(1,"temperature");
toevoegen en labelen van een datastream
dOut.addData(2,"photocell");
toevoegen en labelen van een datastream
}
VOID draw()
{
bijwerken eens om de 5 seconden (ook zou bijvoorbeeld elke mouseClick)
Als ((millis()-lastUpdate) > 5000) {}
println ("klaar om POST:");
dOut.update (0, inString0); Update de datastream
dOut.update (1, inString1); Update de datastream
dOut.update (2, inString2); Update de datastream
int reactie = dOut.updatePachube(); updatePachube() updates door een geverifieerde zetten HTTP-aanvraag
println(Response); moet 200 als succesvol; 401 als onbevoegde; 404 als diervoeders niet bestaat
lastUpdate = millis();
}
}
VOID serialEvent(Serial p) {}
inString = (myPort.readString());
Lijst met tekenreeksen [] = split (inString, ',');
inString0 = lijst [0];
inString1 = lijst [1];
inString2 = lijst [2];
}
Diensten:
-Pachube Account
http:// (http://www.pachube.com/)