Paso 1:
-Arduino Uno
http://www.Sparkfun.com/products/10356
-6 USB cable A B
http://www.Sparkfun.com/products/512
-Protoboard miniatura
http://www.Sparkfun.com/products/137
-Hombre a los cables del puente hombre
http://www.Sparkfun.com/products/9387
-Fotocélula
http://www.Sparkfun.com/products/9088
-Humedad y temperatura
http://www.Sparkfun.com/products/10167
-330 Ohm resistencias
http://www.Sparkfun.com/products/10465
-10 k Ohm resistencias
http://www.Sparkfun.com/products/10466
Software:
1-procesamiento
http:// (http://processing.org/)
2 - Arduino
http:// (http://www.arduino.cc/)
Tercera parte las bibliotecas:
3 - DHT(Arduino)
http://www.Ladyada.net/Learn/sensors/DHT.html
4 - EEML(Processing)
Código de detección 5-urbano (copiar pegar en IDE)
Código de Arduino:
Bosquejo del sensor basado en ladyada DHT (http://www.ladyada.net/learn/sensors/dht.html) y fotocélula (http://www.ladyada.net/learn/sensors/cds.html) código de las muestras
Biblioteca DHT escrito por ladyada (https://github.com/adafruit/DHT-sensor-library)
#include "DHT.h"
#define DHTPIN 2 / / Qué pin estamos conectados a
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
int photocellPin = 0;
int photocellReading;
Conecte la clavija 1 (a la izquierda) de la sonda a + 5V
Conectar el pin 2 del sensor a lo que tu DHTPIN
Conectar el pin 4 (a la derecha) del sensor de suelo
Conecte un resistor de 10K del pin 2 (datos) al pin 1 (potencia) del sensor de
DHT dht (DHTPIN, DHTTYPE);
void setup() {}
Serial.Begin(9600);
DHT.Begin();
}
void loop() {}
Lectura de temperatura o la humedad toma alrededor de 250 milisegundos.
Lecturas del sensor también pueden ser hasta 2 segundos 'old' (es un sensor muy lento)
Float h = dht.readHumidity();
Float t = dht.readTemperature();
photocellReading = analogRead(photocellPin);
Compruebe si devuelve es válidas, si son NaN (no un número) entonces algo salió mal!
Si (isnan(t) || isnan(h)) {}
Serial.println ("error al leer desde DHT");
} else {}
Serial.Print(h); humedad
Serial.Print(",");
Serial.Print(t); temperatura
Serial.Print(",");
Serial.println (photocellReading); //photocell
}
}
Código de procesamiento:
Import processing.serial.*;
Import eeml.*;
Serie myPort;
InString cadena;
String inString0;
String inString1;
String inString2;
Lista de cadenas;
int lf = 10;
Correrá de duda;
Float lastUpdate;
void setup() {}
myPort = serie nueva (esto, Serial.list()[0],9600);
myPort.bufferUntil(lf);
establecer objeto correrá; requiere URL EEML se actualizan y tu clave de API de Pachube
Duda = correrá nuevo (esta, "Su SENSOR alimentación aquí por ejemplo (https://api.pachube.com/v2/feeds/39533.xml)", "Tu API KEY aquí");
Añada y un flujo de datos de la etiqueta
dOut.addData(0,"humidity");
Añada y un flujo de datos de la etiqueta
dOut.addData(1,"temperature");
Añada y un flujo de datos de la etiqueta
dOut.addData(2,"photocell");
Añada y un flujo de datos de la etiqueta
}
void draw()
{
actualizar una vez cada 5 segundos (también podría ser por ejemplo, cada clic del ratón)
Si ((millis()-lastUpdate) > 5000) {}
println ("listo para el POST:");
dOut.update (0, inString0); actualizar el flujo de datos
dOut.update (1, inString1); actualizar el flujo de datos
dOut.update (2, inString2); actualizar el flujo de datos
int respuesta = dOut.updatePachube(); actualizaciones de updatePachube() por una solicitud de HTTP poner autenticada
println(Response); debe ser 200 si tiene éxito; 401 si no autorizados; 404 si no existe alimentación
lastUpdate = millis();
}
}
void serialEvent(Serial p) {}
inString = (myPort.readString());
Lista de cadena [] = split (inString, ',');
inString0 = lista [0];
inString1 = lista [1];
inString2 = lista [2];
}
Servicios de:
-Cuenta Pachube
http:// (http://www.pachube.com/)