Étape 1 :
-Arduino Uno
http://www.Sparkfun.com/Products/10356
-B câble USB A 6'
http://www.Sparkfun.com/Products/512
-Maquette miniature
http://www.Sparkfun.com/Products/137
-Mâle de fils de raccordement mâle
http://www.Sparkfun.com/Products/9387
-Photocellule
http://www.Sparkfun.com/Products/9088
-Humidité et capteur de température
http://www.Sparkfun.com/Products/10167
-Résistances 330 ohms
http://www.Sparkfun.com/Products/10465
-10 k Ohm résistances
http://www.Sparkfun.com/Products/10466
Logiciel :
1-traitement
http:// (http://processing.org/)
2 - Arduino
http:// (http://www.arduino.cc/)
Troisième partie bibliothèques :
3 - DHT(Arduino)
http://www.Ladyada.net/learn/sensors/DHT.html
4 - EEML(Processing)
Code de détection 5-urbain (copier coller en IDE)
Code de l’Arduino :
Croquis de capteur basé sur ladyada DHT (http://www.ladyada.net/learn/sensors/dht.html) et la cellule photoélectrique (http://www.ladyada.net/learn/sensors/cds.html) des échantillons de code
Bibliothèque DHT écrit par ladyada (https://github.com/adafruit/DHT-sensor-library)
#include « DHT.h »
#define DHTPIN 2 / / quelle broche nous sommes connectés à
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
int photocellPin = 0 ;
int photocellReading ;
Connecter la broche 1 (à gauche) du capteur à + 5V
Relier la broche 2 du capteur à tout ce qui est votre DHTPIN
Relier la broche 4 (à droite) du capteur au sol
Connecter une résistance de 10K de la broche 2 (données) à la broche 1 (puissance) du capteur
DHT dht (DHTPIN, DHTTYPE) ;
void setup() {}
Serial.Begin(9600) ;
DHT.Begin() ;
}
void loop() {}
Lecture de température ou humidité prend environ 250 millisecondes !
Lectures du capteur peuvent également être jusqu'à 2 secondes « ancienne » (c’est un capteur très lent)
flotter h = dht.readHumidity() ;
flotteur t = dht.readTemperature() ;
photocellReading = analogRead(photocellPin) ;
vérifier si les retours sont valables, s’ils sont NaN (pas un nombre), puis quelque chose s’est mal passé !
Si (isnan(t) || isnan(h)) {}
Serial.println ("Impossible de lire de DHT") ;
} else {}
Serial.Print(h) ; humidité
Serial.Print(",") ;
Serial.Print(t) ; température
Serial.Print(",") ;
Serial.println (photocellReading); //photocell
}
}
Code de traitement :
Import processing.serial.* ;
Import eeml.* ;
Serial myPort ;
String inString ;
String inString0 ;
String inString1 ;
String inString2 ;
Liste de chaînes ;
int lf = 10 ;
DataOut dOut ;
flotteur lastUpdate ;
void setup() {}
myPort = nouvelle série (cela, Serial.list()[0],9600) ;
myPort.bufferUntil(lf) ;
mettre en place l’objet DataOut ; requiert des URL du EEML vous mettez à jour et votre clé API Pachube
dOut = new DataOut (this, « Votre capteur nourrir ici par exemple (https://api.pachube.com/v2/feeds/39533.xml) », « Votre clé API ici ») ;
et ajouter et baliser un flux de données
dOut.addData(0,"humidity") ;
et ajouter et baliser un flux de données
dOut.addData(1,"temperature") ;
et ajouter et baliser un flux de données
dOut.addData(2,"photocell") ;
et ajouter et baliser un flux de données
}
void draw()
{
mettre à jour une fois toutes les 5 secondes (peut être par exemple chaque clic de souris)
Si ((millis()-lastUpdate) > 5000) {}
println ("prêt à POST:") ;
dOut.update (0, inString0) ; mise à jour le flux de données
dOut.update (1, inString1) ; mise à jour le flux de données
dOut.update (2, inString2) ; mise à jour le flux de données
réponse d’int = dOut.updatePachube() ; updatePachube() mises à jour par une demande de mettre HTTP authentifié
println(Response) ; devrait être de 200 cas de réussite ; 401 si non autorisé ; 404 si l’alimentation n’existe pas
lastUpdate = millis() ;
}
}
void serialEvent(Serial p) {}
inString = (myPort.readString()) ;
Liste de chaînes [] = split (inString, ',') ;
inString0 = liste [0] ;
inString1 = liste [1] ;
inString2 = liste [2] ;
}
Services :
-Pachube compte
http:// (http://www.pachube.com/)