Étape 9: Écrire le code pour la maison verte
C’est le code que j’ai écrit pour ma maison verte qui demander de l’eau si l’humidité est inférieure à 50 %
Copiez le code et le formater dans l’IDE de Aduino donc c’est plus facile à lire (ctrl + T)
#include « DHT.h » / / Bibliothèque de DHT & AM2302
#include / / bibliothèque de servo
Version numéro const float fVerNum = 0,03 ;
Broche de données connecté à AM2302 #define DHTPIN 2
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
DHT dht (DHTPIN, DHTTYPE) ; Broches de la LED
Servo myservo ; Créez l’objet servo pour contrôler un servo / / peut être créé à un maximum de huit objets de servo
int pos = 0 ; variable pour stocker la position du servo
/ / / / SETUP / / void setup() {/ / Setup serial monitor Serial.begin(9600) ;
servo broche 9 myservo.attach(9) ;
Attendre 3 secondes delay(3000) ;
Serial.println (F ("capteur de \nAM2302")) ; Serial.Print (F ("Version:")) ; Serial.println(fVerNum) ; Serial.println (F ("Arduino - Derek Erb\n")) ; Delay(5000) ;
DHT.Begin() ; }
void loop() {}
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() ; flotteur t = dht.readTemperature() ;
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 (F ("Impossible de lire à partir de DHT"));} else {Serial.print (F (« humidité: ")) ; Serial.Print(h) ; Serial.Print (F ("\t %")) ; Serial.Print (F (« température: ")) ; Serial.Print(t) ; Serial.println (F("C")) ;
Si (h < 50) {/ / si l’humidité est inférieure à 50 puis les plantes doivent être waterd pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés {/ / par incréments de 1 degré myservo.write(pos); / / dire servo pour aller à positionner dans la variables « pos »}} else {pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés {myservo.write(pos); / / dire servo pour aller à positionner dans la variables « pos » / / attend 15ms pour le servo atteindre la position}}}
Attendre 3 secondes delay(3000) ; }