DHT11 Sensore Temperatura e Umidità per comando relè

Buongiorno a tutti, sono nuovo del forum, vi porgo all'attenzione il mio problema: ho un sensore DHT 11 per rilevare la temperatura e l'umidità ambiente, il quale mi deve comandare due relè e precisamente il primo relè deve essere comandato al superamento di una determinata temperatura, mentre il secondo relè deve essere comandato al superamento di una determinata umidità.
Il sensore funziona correttamente nel senso che mi visualizza sul monitor seriale sia i valori di temperatura che di umidità, solamente che non riesco ad impostare le soglie di temperatura e umidità alle quali devono essere comandati i relè, o meglio il sistema non mi riconosce i valori inseriti nello sketch, con il comando if.

Questo è lo sketch:

// 
//   FILE:  dht11_test1.pde
// PURPOSE: DHT11 library test sketch for Arduino
//

//Celsius to Fahrenheit conversion
double Fahrenheit(double celsius)
{
	return 1.8 * celsius + 32;
}

// fast integer version with rounding
//int Celcius2Fahrenheit(int celcius)
//{
//  return (celsius * 18 + 5)/10 + 32;
//}


//Celsius to Kelvin conversion
double Kelvin(double celsius)
{
	return celsius + 273.15;
}

// dewPoint function NOAA
// reference (1) : http://wahiduddin.net/calc/density_algorithms.htm
// reference (2) : http://www.colorado.edu/geography/weather_station/Geog_site/about.htm
//
double dewPoint(double celsius, double humidity)
{
	// (1) Saturation Vapor Pressure = ESGG(T)
	double RATIO = 373.15 / (273.15 + celsius);
	double RHS = -7.90298 * (RATIO - 1);
	RHS += 5.02808 * log10(RATIO);
	RHS += -1.3816e-7 * (pow(10, (11.344 * (1 - 1/RATIO ))) - 1) ;
	RHS += 8.1328e-3 * (pow(10, (-3.49149 * (RATIO - 1))) - 1) ;
	RHS += log10(1013.246);

        // factor -3 is to adjust units - Vapor Pressure SVP * humidity
	double VP = pow(10, RHS - 3) * humidity;

        // (2) DEWPOINT = F(Vapor Pressure)
	double T = log(VP/0.61078);   // temp var
	return (241.88 * T) / (17.558 - T);
}

// delta max = 0.6544 wrt dewPoint()
// 6.9 x faster than dewPoint()
// reference: http://en.wikipedia.org/wiki/Dew_point
double dewPointFast(double celsius, double humidity)
{
	double a = 17.271;
	double b = 237.7;
	double temp = (a * celsius) / (b + celsius) + log(humidity*0.01);
	double Td = (b * temp) / (a - temp);
	return Td;
}


#include <dht11.h>

dht11 DHT11;

#define DHT11PIN 4

int relePin= 2;

void setup()
{
  Serial.begin(9600);
  Serial.println("DHT11 TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  pinMode(relePin, OUTPUT);
}

void loop()
{
  Serial.println("\n");

  int chk = DHT11.read(DHT11PIN);

  Serial.print("Read sensor: ");
  switch (chk)
  {
    case DHTLIB_OK: 
		Serial.println("OK"); 
		break;
    case DHTLIB_ERROR_CHECKSUM: 
		Serial.println("Checksum error"); 
		break;
    case DHTLIB_ERROR_TIMEOUT: 
		Serial.println("Time out error"); 
		break;
    default: 
		Serial.println("Unknown error"); 
		break;
  }

  Serial.print("Humidity (%): ");
  Serial.println((float)DHT11.humidity, 2);

  Serial.print("Temperature (°C): ");
  Serial.println((float)DHT11.temperature, 2);

  Serial.print("Temperature (°F): ");
  Serial.println(Fahrenheit(DHT11.temperature), 2);

  Serial.print("Temperature (°K): ");
  Serial.println(Kelvin(DHT11.temperature), 2);

  Serial.print("Dew Point (°C): ");
  Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));

  Serial.print("Dew PointFast (°C): ");
  Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));

  delay(2000);
  
  {
      if(Serial.available());
      {
        if(DHT11.temperature,1 > 27);
        digitalWrite(2,HIGH);
        Serial.print("TEMPERATURA ALTA");
        }                           
                {
        if(DHT11.humidity,1 > 60);
        digitalWrite(3,HIGH);
        Serial.print("UMIDITA' ALTA");
        }  
    
    }
  
   
}
//
// END OF FILE
//

moderatore update: added code tags

PLease use English (too) on the international section.

First please modify your post and use code tags around your code ==> # button above the smileys.

if(Serial.available()); <<<<<<<<<< ; may not be there

if(DHT11.temperature,1 > 27); <<<<<<<<<< ; may not be there

if(DHT11.temperature,1 > 27); The ,1 is part of a print statement you copied and paste. It is not correct C

Try this construct

if (DHT11.temperature > 27)
{
        digitalWrite(2,HIGH);
}
if (DHT11.temperature < 26)  // use a different level to prevent continuous ON/OFF cycles of the relays.
{
        digitalWrite(2, LOW);
}

Tank you very much.

// 
//   FILE:  dht11_test1.pde
// PURPOSE: DHT11 library test sketch for Arduino
//

//Celsius to Fahrenheit conversion
double Fahrenheit(double celsius)
{
	return 1.8 * celsius + 32;
}

// fast integer version with rounding
//int Celcius2Fahrenheit(int celcius)
//{
//  return (celsius * 18 + 5)/10 + 32;
//}

//Celsius to Kelvin conversion
double Kelvin(double celsius)
{
	return celsius + 273.15;
}

// dewPoint function NOAA
// reference (1) : http://wahiduddin.net/calc/density_algorithms.htm
// reference (2) : http://www.colorado.edu/geography/weather_station/Geog_site/about.htm
//
double dewPoint(double celsius, double humidity)
{
	// (1) Saturation Vapor Pressure = ESGG(T)
	double RATIO = 373.15 / (273.15 + celsius);
	double RHS = -7.90298 * (RATIO - 1);
	RHS += 5.02808 * log10(RATIO);
	RHS += -1.3816e-7 * (pow(10, (11.344 * (1 - 1/RATIO ))) - 1) ;
	RHS += 8.1328e-3 * (pow(10, (-3.49149 * (RATIO - 1))) - 1) ;
	RHS += log10(1013.246);

        // factor -3 is to adjust units - Vapor Pressure SVP * humidity
	double VP = pow(10, RHS - 3) * humidity;

        // (2) DEWPOINT = F(Vapor Pressure)
	double T = log(VP/0.61078);   // temp var
	return (241.88 * T) / (17.558 - T);
}

// delta max = 0.6544 wrt dewPoint()
// 6.9 x faster than dewPoint()
// reference: http://en.wikipedia.org/wiki/Dew_point
double dewPointFast(double celsius, double humidity)
{
	double a = 17.271;
	double b = 237.7;
	double temp = (a * celsius) / (b + celsius) + log(humidity*0.01);
	double Td = (b * temp) / (a - temp);
	return Td;
}


#include <dht11.h>

dht11 DHT11;

#define DHT11PIN 4

int relePin1= 2;
int relePin2= 3;

void setup()
{
  Serial.begin(9600);
  Serial.println("DHT11 TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  pinMode(relePin1, OUTPUT);
  pinMode(relePin2, OUTPUT);
}

void loop()
{
  Serial.println("\n");

  int chk = DHT11.read(DHT11PIN);

  Serial.print("Read sensor: ");
  switch (chk)
  {
    case DHTLIB_OK: 
		Serial.println("OK"); 
		break;
    case DHTLIB_ERROR_CHECKSUM: 
		Serial.println("Checksum error"); 
		break;
    case DHTLIB_ERROR_TIMEOUT: 
		Serial.println("Time out error"); 
		break;
    default: 
		Serial.println("Unknown error"); 
		break;
  }

  Serial.print("Humidity (%): ");
  Serial.println((float)DHT11.humidity, 2);

  Serial.print("Temperature (°C): ");
  Serial.println((float)DHT11.temperature, 2);

  Serial.print("Temperature (°F): ");
  Serial.println(Fahrenheit(DHT11.temperature), 2);

  Serial.print("Temperature (°K): ");
  Serial.println(Kelvin(DHT11.temperature), 2);

  Serial.print("Dew Point (°C): ");
  Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));

  Serial.print("Dew PointFast (°C): ");
  Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));

  delay(2000);
  
  if (DHT11.temperature > 27)
{
        digitalWrite(2,HIGH);
}
if (DHT11.temperature < 27)  // use a different level to prevent continuous ON/OFF cycles of the relays.
{
        digitalWrite(2, LOW);
        
}
   if (DHT11.humidity > 50)
{
        digitalWrite(3,HIGH);
}
if (DHT11.humidity < 50)  // use a different level to prevent continuous ON/OFF cycles of the relays.
{
        digitalWrite(3, LOW);
}
   
}
//
// END OF FILE
//

did it work as you intended?
personally I would create a bigger difference between the ON and OFF.
For temperature (~2C) ==> if temp > 27 switch on .... if temp < 25 switch off

and the humidity (~5%)

as that is about the accuracy of the sensor.

Furthermore move the delay(2000) to the end of the loop makes more sense.
As that synchronizes the actions of the print statements and the relays.

Be aware that NOT all relays can be connected directly to Arduino.

Is working properly, I listened to your advice and I increased the range between maximum and minimum temperature (27 and 25 ° C) and humidity (50 and 55%).
For the control system I used two relays (http://www.plexishop.it/it/arduino/rele-e-transistor-per-arduino/modulo-1-rele-optoisolato.html) and these also work correctly .
Thank you.