Paso 9: Escriba el código de la casa verde
Este es el código que escribí para mi casa verde que pedir agua si la humedad es inferior al 50%
copia el código y formato en el IDE Aduino tan fácil de leer (ctrl + T)
#include "DHT.h" / / biblioteca de DHT & AM2302
#include / / librería servo
Versión número const float fVerNum = 0,03;
Pin de datos conectado a AM2302 #define DHTPIN 2
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
DHT dht (DHTPIN, DHTTYPE); Pasadores LED
Servo myservo; crear objeto servo para controlar un servo / / se puede crear un máximo de ocho objetos de servo
int pos = 0; variable para almacenar la posición del servo
/ / / / SETUP / / void setup() {/ / configurar monitor serial Serial.begin(9600);
servo pin 9 myservo.attach(9);
Esperar 3 segundos delay(3000);
Serial.println (F "(Sensor de \nAM2302 del)); Serial.Print (F ("versión:")); Serial.println(fVerNum); Serial.println (F ("Arduino - Derek Erb\n")); Delay(5000);
DHT.Begin(); }
void loop() {}
Lectura de temperatura o la humedad toma alrededor de 250 milisegundos. Lecturas del sensor también pueden ser de hasta 2 segundos 'old' (es un sensor muy lento) flotador h = dht.readHumidity(); Float t = dht.readTemperature();
Compruebe si devuelve es válidas, si son NaN (no un número) entonces algo salió mal! Si (isnan(t) || isnan(h)) {Serial.println (F ("error al leer desde DHT"));} else {Serial.print (F ("humedad:")); Serial.Print(h); Serial.Print (F ("% \t")); Serial.Print (F ("temperatura:")); Serial.Print(t); Serial.println (F("C"));
Si (h < 50) {/ si la humedad es inferior a 50 entonces las plantas deben ser waterd para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados {/ / en pasos de 1 grado de myservo.write(pos); / / enviar a servo a la posición en la variable 'pos'}} más {para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados {myservo.write(pos); / / enviar a servo a la posición en la variable 'pos' / / espera 15ms para el servo llegar a la posición}}}
Esperar 3 segundos delay(3000); }