Primer proyecto, Ayuda al separar las acciones de cada sensor

hola buen día, tengo un pequeño problema con la programación de mi proyecto soy principiante aun en esto y la verdad no estoy muy familiarizado con todos los comandos de programación, bueno mi problema es que tengo conectado una pantalla LCD 20x4 con I2C al arduino con un sensor DHT11, y un relevador, lo que hace es que en el LCD aparecen las lecturas de Temperatura y Humedad con con uso del sensor DHT11, lo que quiero es que al marcar la lectura de humedad por ejemplo menor a 90% se active el relevador que va ser prender un aspersor para regar y que ese aspersor se prenda cada 2 min cada hora hasta que llegue al 90% y si en el de Temperatura marca mayor a 30 grados se prenda otra vez el relevador y prenda el aspersor para regar otra vez con el mismo tiempo cada 2 min en cada hora hasta que la temperatura de igual o menor a 30 grados, mi problema es que ya tengo todo funcionando conectado y todo pero todo se rige por el mismo código no puedo separar un código del otro para que hagan diferentes funciones como les menciones, nose si alguien me pueda ayudar con esto por favor

les dejo el código para que vean como esta y me puedan ayudar

muchas gracias !!!

#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,20,4);

#define DHTPIN 2 

#define DHTTYPE DHT11

DHT dht(2, DHT11);

void setup(){
  pinMode(13, OUTPUT);
   //Iniciamos el fondo retroiluminado
  lcd.backlight();
  //Iniciamos la pantalla
  lcd.init();
  Serial.begin(9600);
  dht.begin();
}

void loop(){

  int h = dht.readHumidity();
  int t = dht.readTemperature();
  
  int f = (t * 9.0)/5.0 + 32.0;
  
  lcd.clear();//Limpiamos la LCD
  lcd.print("HUMEDAD: ");//Escribimos en la primera linea
  lcd.print(h);
  lcd.print(" % ");
  lcd.setCursor(0,2);//Saltamos a la segunda linea
  lcd.print("TEMPERATURA: ");//Escribimos en la segunda linea
  lcd.print(t);
  lcd.print("\337C");
  
  //Tiempo de espera para que reinicie el ciclo
  delay(500); 
}

void relay(){
  
  digitalWrite(13, HIGH);   // enciende el foco 
  delay(50);              // tiempo de espera
  digitalWrite(13, LOW);    // apaga el foco 
  delay(50);    

}

Hola. En tu función loop no hay llamados a la función relay, por lo tanto es como si no existiera. Arduino no está dirigido a eventos. En la función principal (loop), mediante un if, debes llamar a relay. saludos

Muchas gracias