Programa estación meteorológica

En este espacio tienes acceso a las librerías necesarias para que se pueda ejecutar de forma segura:

#include <DHT.h>
#include <DHT_U.h>
#include <Wire.h>   
#include <LiquidCrystal_I2C.h>

// Configuración de la pantalla LCD: Dirección I2C 0x27
LiquidCrystal_I2C lcd(0x27, ______, ______); // PISTA 1: Número de columnas y filas

int LEDazul = 6;
int LEDrojo = 5;
int LEDamarillo = 11;
int LEDverde = 3;

int SensorLuz = A1; 
int SensorHyT = 2;
int Temperatura;
int Humedad;

int valorSensorLuz;
int porcentajeLuz;
DHT dht(SensorHyT, DHT11); 
     
void setup(){   
  // Inicializamos la pantalla LCD I2C
  lcd.________(); // PISTA 2: Comando para iniciar la pantalla
  lcd.backlight(); 
  
  dht.begin();
  
  pinMode(LEDazul, _________); // PISTA 3: ¿Un LED es entrada o salida?
  pinMode(LEDrojo, _________);
  pinMode(LEDamarillo, _________);
  pinMode(LEDverde, _________);
}

void loop(){
  Temperatura = dht.__________________(); // PISTA 4: Función para leer temperatura
  Humedad = dht.__________________();     // PISTA 5: Función para leer humedad

  valorSensorLuz = ______________(SensorLuz); // PISTA 6: Comando para leer un pin A (analógico)
  
  // PISTA 7: Convertir lectura. ¿Cuál es el valor máximo del conversor analógico de Arduino (10 bits)?
  porcentajeLuz = map(valorSensorLuz, 0, ________, 0, 100); 
  
  if (porcentajeLuz > 80) {
    digitalWrite(LEDazul, ________); // PISTA 8: Comando para enviar voltaje (encender)
  } else {
    digitalWrite(LEDazul, ________); // PISTA 9: Comando para quitar voltaje (apagar)
  }
  
  if (Temperatura > 30) {
    digitalWrite(LEDrojo, HIGH);
  } else {
    digitalWrite(LEDrojo, LOW);
  }
  
  if (Humedad > 80) {
    digitalWrite(LEDamarillo, HIGH);
  } else {
    digitalWrite(LEDamarillo, LOW);
  }
    
  // PISTA 10: Operador lógico AND (Y) para que todas las condiciones se deban cumplir
  if ((porcentajeLuz < 80) ______ (Temperatura < 30) ______ (Humedad < 80)) {
    digitalWrite(LEDverde, HIGH);
  } else {
    digitalWrite(LEDverde, LOW);
  }
  
  // --- PRESENTACIÓN EN PANTALLA LCD I2C ---
  lcd.________(); // PISTA 11: Comando para limpiar la pantalla y evitar "fantasmas"
  
  // Fila 1 (Arriba): Temperatura y Humedad
  lcd.setCursor(0, ______); // PISTA 12: Coordenada Y para la primera fila (¡recuerda que se cuenta desde el 0!)
  lcd.print("T:");
  lcd.print(Temperatura);  
  lcd.print("C  ");
  
  lcd.setCursor(8, 0); 
  lcd.print("H:");
  lcd.print(Humedad);  
  lcd.print("%"); 

  // Fila 2 (Abajo): Porcentaje de Luz
  lcd.setCursor(0, ______); // PISTA 13: Coordenada Y para la segunda fila
  lcd.print("Luz: "); 
  lcd.print(porcentajeLuz);  
  lcd.print("%"); 
  
  delay(1000); 
}