Copiez-collez le code ci-dessous :
int relayOUT = D2; //sortie numérique 2 >> commande du relais
int relayIN, magneto, h, t, light;
String str1, str2, str3;
DHT dht(6, DHT11); //sortie numérique 6 >> valeurs de l’humidité et de la température
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(relayOUT, OUTPUT);
//on exécute la fonction “relaySwitch” qui aura pour surnom “relay” [voir plus bas]
Spark.function(“relay”, relaySwitch);
Spark.variable(“h”, &h, INT); //on établit un lien (E/S) avec la valeur de l’humidité qui aura pour surnom “h”
Spark.variable(“t”, &t, INT); //on établit un lien (E/S) avec la valeur de la température qui aura pour surnom “t”
Spark.variable(“str1”, &str1, STRING); //on établit un lien (E/S) avec l’état de la luminosité qui aura pour surnom “str1”
Spark.variable(“str2”, &str2, STRING); //on établit un lien (E/S) avec l’état du relais qui aura pour surnom “str2”
Spark.variable(“str3”, &str3, STRING); //on établit un lien (E/S) avec l’état du contact magnétique qui aura pour surnom “str3”
}
void loop() {
magneto = digitalRead(4); //entrée numérique 4 >> contact magnétique
relayIN = digitalRead(2); //entrée numérique 2 >> état du relais
int light = analogRead(A0);
h = dht.getHumidity(); //valeur de l’humidité
t = dht.getTempCelcius(); //valeur de la température
//on considère qu’une luminosité inférieure à 1000 correspond à un environnement sombre
if (light < 1000) {
str1 = “Lumière éteinte”;
}
else {
str1 = “Lumière allumée”;
}
if (relayIN == HIGH) {
str2 = “Relais ON”;
}
else {
str2 = “Relais OFF”;
}
if (magneto == HIGH) {
str3 = “Porte ouverte”;
}
else {
str3 = “Porte fermée”;
//arrêt automatique du relais lorsque le contact magnétique est magnétisé >> lorsque la porte de garage se ferme
digitalWrite(relayOUT, LOW);
}
}
int relaySwitch(String command) {
if (magneto == HIGH) {
if (command.equalsIgnoreCase(“on”)) {
digitalWrite(relayOUT, HIGH);
return 1; //commande correcte
} else if (command.equalsIgnoreCase(“off”)) {
digitalWrite(relayOUT,