¿como controlar un invernadero inteligente?

hola, soy nuevo en esto de arduino. necesito ayuda con el codigo, me pone errores y no se que es lo que esta mal.

#include <LiquidCrystal.h> //cargamos la libreria de la pantalla
LiquidCrystal lcd(12, 11, 0, 1, 10, 13); //Ponemos los pines de la pantalla
#include “DHT.h” //cargamos la libreria DHT
#define DHTPIN 2 //Seleccionamos el pin en el que se conectara el sensor
#define DHTTYPE DHT22 //Se selecciona el DHT22(hay otros DHT)
DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que sera usada por Arduino para comunicarse con el sensor
#include <Servo.h> // cargamos la libreria Servo
Servo myservo; // create servo object to control a servo
#define bomba 6 ///Seleccionamos el pin en el que se conectara la bomba
#define Calentador 4 ///Seleccionamos el pin en el que se conectara el calentador
#define Ventilador 8 ///Seleccionamos el pin en el que se conectara el ventilador
#define Humidificador 7 ///Seleccionamos el pin en el que se conectara el humidificador
int HumSuelo; // Humedad del suelo
int RefHumSuelo = 55; //Humedad de referencia del suelo
int TolSuelo = 10; // Tolerancia de la humedad del suelo
float TemInterior; //Temperatura interior
int TolTemInterior =3;//Tolerancia temperatura interior
int RefTemInterior = 25; //Temperatura interior de referencia del aire
float HumAire; //Humedad del aire
int TolHumAire =10; //Tolerancia de la humedad del aire
int RefHumAire = 80; //Referencia humedad del aire interior
float TemExterior; //Temperatura exterior
int TolTemExterior =5;//Tolerancia temperatura exterior
int RefTemExterior = 20; //Temperatura exterior de referencia del aire
int ldr=0;//Variable de la ldr
int estado=0 ; // Definimos un estado para elegir cada caso
int menu = 0; //variable que controlara el menu pantalla lcd
void setup() {
lcd.begin(16, 2);//Se inicializa la pantalla lcd
pinMode(8, INPUT);// Pin que controlara el menu de la lcd
Serial.begin(9600); //Se inicia la comunicación serial
dht.begin(); //Se inicia el sensor
pinMode(Ventilador,OUTPUT);//Se declara el pin del rele que activa el ventilador
pinMode(bomba,OUTPUT);
pinMode(Humidificador,OUTPUT);
myservo.attach(5); // attaches the servo on pin 5 to the servo object
pinMode(9, INPUT); //Sensor de lluvia
pinMode(Calentador, OUTPUT); //Se declara el pin del rele que activa el calentador
digitalWrite(Ventilador,HIGH);//Se pone el TODO a 0
digitalWrite(Calentador,HIGH);
digitalWrite(Humidificador,HIGH);
digitalWrite(bomba,HIGH);
myservo.write(0);
}
void loop() {
//Lecturas de sensores
TemExterior = ((((analogRead(A0)/1024.0)*5.0)-0.5)100); //Lee la temperatura exterior
HumAire = dht.readHumidity(); //Se lee la humedad
TemInterior = dht.readTemperature(); //Se lee la temperatura interior
HumSuelo = analogRead(2); // Lee la humedad del suelo
HumSuelo= map(HumSuelo,0, 1023, 100, 0); //Convierte el valor analogico a un valor de de 0 a 100, es decir, un porcentaje.
ldr = analogRead(A1);//Leer el valor de la ldr
ldr= map(ldr,0,1023,0,100);//Convertir el valor de la ldr
/

//Para monitorizarlo por el puerto serie
Serial.println("Temperatura interior: ");
Serial.println(TemInterior);
Serial.println("Temperaturaexterior : ");
Serial.println(TemExterior);
Serial.println("Humedad: ");
Serial.println(HumAire);
Serial.print(“Sensor de Humedad suelo:”);
Serial.println(HumSuelo);
Serial.print("Valor LDR: ");
Serial.println(ldr);
Serial.print("estado: ");
Serial.println(estado);
*/
if(HumSuelo <= RefHumSuelo+TolSuelo && HumSuelo>= RefHumSuelo-TolSuelo){
digitalWrite(bomba,HIGH);
}else{digitalWrite(bomba,LOW);}
if(digitalRead(9)== 1){myservo.write(0);}
if(TemInterior <= RefTemInterior-TolTemInterior){
estado=1;
}
if(TemInterior >= RefTemInterior+TolTemInterior){
estado=2;
}
if(HumAire <= RefHumAire-TolHumAire){
estado=3;
}
if(HumAire >= RefHumAire+TolHumAire){
estado=4;
}

if(TemInterior <= RefTemInterior-TolTemInterior && HumAire <= RefHumAire-TolHumAire){
estado=5;
}
if(TemInterior <= RefTemInterior-TolTemInterior && HumAire >= RefHumAire+TolHumAire){
estado=6;
}
if(TemInterior >= RefTemInterior+TolTemInterior && HumAire <= RefHumAire-TolHumAire){
estado=7;
}
if(TemInterior >= RefTemInterior+TolTemInterior && HumAire >= RefHumAire+TolHumAire){
estado=8;
}
if( TemInterior >= RefTemInterior-TolTemInterior && TemInterior <= RefTemInterior+TolTemInterior && HumAire >= RefHumAire-TolHumAire && HumAire <= RefHumAire+TolHumAire)
{estado=9;}
switch(estado){
case 0:
break;
case 1:
digitalWrite(Calentador,LOW); //Encender calentador
digitalWrite(Humidificador,HIGH);
digitalWrite(Ventilador,HIGH);
myservo.write(0);
break;
case 2:
digitalWrite(Humidificador,HIGH);
digitalWrite(Calentador,HIGH);
if(TemExterior<=TemInterior+TolTemExterior && digitalRead(9)== 1){
myservo.write(180); //Abrir ventana
}
if(TemExterior<=TemInterior+TolTemExterior && digitalRead(9)== 0){
digitalWrite(Ventilador,LOW);//Encender ventilador
}
if(TemExterior>=TemInterior){
digitalWrite(Ventilador,LOW);//Encender ventilador
}
break;
case 3:
digitalWrite(Ventilador,HIGH);
digitalWrite(Calentador,HIGH);
myservo.write(0);
digitalWrite(Humidificador,LOW);//Encender el humidificador
break;
case 4:
digitalWrite(Calentador,HIGH);
digitalWrite(Humidificador,HIGH);
myservo.write(0);
digitalWrite(Ventilador,LOW);//Encender ventilador
break;
case 5:
digitalWrite(Ventilador,HIGH);
myservo.write(0);
//Pin del calentador
digitalWrite(Calentador,LOW);
digitalWrite(Humidificador,LOW);//Encender el humidificador
break;
case 6:
digitalWrite(Humidificador,HIGH);
myservo.write(0);
//Pin del calentador
digitalWrite(Calentador,LOW);
digitalWrite(Ventilador,LOW);//Encender ventilador
break;
case 7:
digitalWrite(Calentador,HIGH);
digitalWrite(Humidificador,LOW);//Encender el humidificador
if(TemExterior<=TemInterior+TolTemExterior && digitalRead(9)== 1){
myservo.write(180);
digitalWrite(Ventilador,HIGH); //Abrir ventana
}
if(TemExterior<=TemInterior+TolTemExterior && digitalRead(9)== 0){
digitalWrite(Ventilador,LOW);//Encender ventilador
myservo.write(0);
}
if(TemExterior>=TemInterior){
digitalWrite(Ventilador,LOW);//Encender ventilador
myservo.write(0);
}
break;
case 8:
digitalWrite(Calentador,HIGH);
digitalWrite(Humidificador,HIGH);
if(TemExterior<=TemInterior+TolTemExterior && digitalRead(9)== 1){
myservo.write(180); //Abrir ventana
digitalWrite(Ventilador,LOW);//Encender ventilador
}
if(TemExterior<=TemInterior+TolTemExterior && digitalRead(9)== 0){
digitalWrite(Ventilador,LOW);//Encender ventilador
myservo.write(0);
}
if(TemExterior>=TemInterior){
digitalWrite(Ventilador,LOW);//Encender ventilador
myservo.write(0);
}
break;
case 9:
digitalWrite(Ventilador,HIGH);//Se pone el TODO a 0
digitalWrite(Calentador,HIGH);
digitalWrite(Humidificador,HIGH);
myservo.write(0);
break;
}
//Datos puerto serie labview
Serial.println(TemInterior);
Serial.println(HumAire);
Serial.println(HumSuelo);
Serial.println(ldr);
Serial.println(estado);
Serial.println(digitalRead(Ventilador));
Serial.println(digitalRead(Calentador));
Serial.println(digitalRead(bomba));
Serial.println(digitalRead(Humidificador));
RefTemInterior= Serial.read();
RefHumSuelo= Serial.read();
//Control de la pantalla lcd
/*if (digitalRead(3) == 1) {
menu++;}
if (menu > 4) {
menu = 0;
}
switch (menu) {
case 0:
lcd.setCursor(0, 0);
lcd.print(" Nico “);
lcd.setCursor(0, 1);
lcd.print(“Proyecto Arduino”);
break;
case 1:
ldr = analogRead(A1);//Leer el valor de la ldr
ldr= map(ldr,0,1023,0,100);//Convertir el valor de la ldr
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Luminosidad”);
lcd.setCursor(0, 1);
lcd.print(ldr);
lcd.print(” %");
break;
case 2:
TemInterior = dht.readTemperature(); //Se lee la temperatura interior
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Temperatura”);
lcd.setCursor(0, 1);
lcd.print(TemInterior);
lcd.print(" C");
break;
case 3:
HumAire = dht.readHumidity(); //Se lee la humedad
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Humedad Relativa”);
lcd.setCursor(0, 1);
lcd.print(HumAire);
lcd.print(" %");
break;
case 4:
HumSuelo = analogRead(2); // Lee la humedad del suelo
HumSuelo= map(HumSuelo,0, 1023, 100, 0); //Convierte el valor analogico a un valor de de 0 a 100, es decir, un porcentaje.
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Humedad Suelo”);
lcd.setCursor(0, 1);
lcd.print(HumAire);
lcd.print(" %");
break;
}
/
}

Que tipo de errores te pone? no encuentro ningún problema de compilación.

me pone este mensaje:

In file included from C:\Users\Hogar\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:22:0:

C:\Users\Hogar\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory

#include <Adafruit_Sensor.h>

^

compilation terminated.

exit status 1
Error compilando para la tarjeta Arduino/Genuino Uno.

El error que presenta es que no encuentra la librería del sensor te adjunto la librería que utilizo yo para el sensor dth22
Libreria DHT_22

y solo con eso, funcionara?

Pues con la librería que falta podrias cargarle al arduino el programa que tienes, pero como no posteas las conexiones ni como exactamente tiene que funcionar te tocaria probar a ti una ves que este cargado y si no funciona como quieres debe tener algún error en el código

oye, pero incluso agregando esa libreria no me lo compila…

Pero si no subes el error no se puede saber cual es el problema

Te envié el primer dia un privado con esta guia para que edites.
Sigues respondiendo sin editar y sin usar las etiquetas.
Te acabo de enviar otro privado, presta atención al mismo!!
Lee las Normas del foro
Luego ve a More (abajo a la derecha), click, luego Modify y estas en modo EDICION.
Si tienes que editar un código → Selecciona todo el código y click en </> arriba del emoticon.
**Si tienes que editar un enlace → Selecciona el enlace. Copialo al portapapeles. Click en el eslabón (ver abajo) y sigue los pasos que habras visto al leer las normas. **

Tags.jpg