Étape 3: Code de l’Arduino
Ce code laisse Arduino pour envoyer les valeurs de température et d’humidité à Xively, via Ethernet Shield.
La température se fait par capteur de DHT22
Auteur Giacomo Bellazzi
*/
#include
#include
#include
#include
#include
#include « DHT.h »
#define DHTPIN 3 / / PIN données de DHT22
#define DHTTYPE DHT11 / / DHT 11
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
#define DHTTYPE DHT21 / / DHT 21 (AM2301)
DHT dht (DHTPIN, DHTTYPE) ;
Adresse MAC de votre bouclier Ethernet
la mac de Byte [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED} ;
Votre clé de Xively pour vous permettre de télécharger les données
Char [] xivelyKey = "" ;
Définir les chaînes de notre flux de données IDs
Char [] sensorId1 = "Température" ;
char sensorId2 [] = "Humidité" ;
XivelyDatastream espaces de données [] = {}
XivelyDatastream (sensorId1, strlen(sensorId1), DATASTREAM_FLOAT),
XivelyDatastream (sensorId2, strlen(sensorId2), DATASTREAM_FLOAT),
};
Enfin, enroulez le flux de données dans un flux. Définissez la valeur de l’alimentation au lieu de 12345678
XivelyFeed d’alimentation (12345678, flux de données, 2 / * nombre d’espaces de données * /) ;
EthernetClient client ;
XivelyClient xivelyclient(client) ;
void setup() {}
Serial.Begin(9600) ;
Serial.println ("Starting datastream simple upload vers Xively...") ;
Serial.println() ;
DHT.Begin() ;
tandis que (Ethernet.begin(mac)! = 1)
{
Serial.println ("erreur obtention d’adresse IP via DHCP, essayer encore une fois...") ;
Delay(15000) ;
}
Serial.Print ("serveur est à") ;
Serial.println(Ethernet.localIP()) ;
}
void loop() {}
flotter h = dht.readHumidity() ; Valeur de Temp
flotteur t = dht.readTemperature() ; Valeur d’humidité
Datastreams[0].SetFloat(t) ; Valeur de Temp
Datastreams[1].SetFloat(h) ; Valeur d’humidité
Serial.Print ("valeur de capteur de lecture") ;
Serial.println(Datastreams[0].GetFloat()) ;
Serial.println (« Uploader sur Xively") ;
Envoyer des données à Xively
int ret = xivelyclient.put (aliments, xivelyKey) ;
Serial.Print ("xivelyclient.put retourné ») ;
Serial.println(ret) ;
Delay(15000) ;
}
Pour être en mesure de le faire fonctionner, vous devez entrer les données Flux des ID et API à leur place, dans le code.
Maintenant que nous avons tout mis en place, nous pouvons enfin compiler et voir le résultat final !