Étape 4: Mettre tout ensemble
Code :
Pluie
const int sensorMin = 0 ; capteur minimal const int sensorMax = 1024 ; capteur maximale
Temp #include « DHT.h » #define DHTPIN 2 / / quelle broche numérique nous sommes reliés à #define DHTTYPE DHT11 / / DHT 11
La lumière int ledPin = 13 ; int lightPin = 1 ; int lightSensivity = 0 ; int lightBarier = 600 ;
DHT dht (DHTPIN, DHTTYPE) ; void setup() {/ / Mettez votre code de configuration ici, pour exécuter une fois : dht.begin() ; pinMode (ledPin, sortie);}
void loop() {/ / Mettez votre code principal ici, pour exécuter à plusieurs reprises : Serial.begin(9600) ; Rain() ; Delay(1000) ; Light() ; Delay(2000) ; Temp() ; Delay(1000) ; }
void Rain() {/ / lecture du capteur analogique A0 : int sensorReading = analogRead(A0); / / carte de la gamme de capteurs (quatre options): / / ex : gamme int 'carte int long (long int, int long, long int, int long, long int)' = carte (sensorReading, sensorMin, sensorMax, 0, 3); / / gamme de valeur : interrupteur (gamme) {case 0: / / capteur obtenir humide Serial.println("Flood") ; break ; case 1: / / capteur obtenir humide Serial.println ("avertissement de pluie"); break ; case 2 : / / Sèche/capteur - taire cela supprimer la "Serial.println ("pleut pas");" ci-dessous. Serial.println ("pleut ne pas") ; rupture ; } }
void Temp() {}
Lecture de température ou humidité prend environ 250 millisecondes ! Lectures du capteur peuvent être aussi jusqu'à 2 secondes « ancienne » (c’est un capteur très lent) flotter h = dht.readHumidity() ; Lire la température en degrés Celsius (la valeur par défaut) flotter t = dht.readTemperature() ; Lire la température en degrés Fahrenheit (isFahrenheit = true) flotteur f = dht.readTemperature(true) ;
Vérifier si des lectures a échoué et arrêter prématurément (pour réessayer). Si (isnan(h) || isnan(t) || isnan(f)) {Serial.println ("Impossible de lire du capteur DHT!"); return;}
Calculer l’indice de chaleur en degrés Fahrenheit (par défaut) flotter hif = dht.computeHeatIndex (f, h) ; Calculer l’indice de chaleur en degrés Celsius (isFahreheit = false) flotter hic = dht.computeHeatIndex (t, h, false) ;
Serial.Print ("humidité:") ; Serial.Print(h) ; Serial.Print ("\t %") ; Serial.Print ("température:") ; Serial.Print(t) ; Serial.Print ("* C") ; Serial.Print(f) ; Serial.Print ("* F\t") ; Serial.Print ("indice de chaleur:") ; Serial.Print(HIC) ; Serial.Print ("* C") ; Serial.Print(HIF) ; Serial.println ("* F") ; }
void Light() {/ / Mettez votre code principal ici, pour exécuter à plusieurs reprises : lightSensivity = analogRead(lightPin) ; Serial.println(lightSensivity) ; if(lightSensivity < lightBarier) {digitalWrite (ledPin, HIGH);} else {digitalWrite (ledPin, LOW);}}