Finale

 avatar
unknown
c_cpp
2 years ago
5.3 kB
3
Indexable
#include "DHT.h"
#define Relay1 5    //For Vane_1 & Dht_1
#define Relay2 18   //For Vane_2 & Dht_2
#define Relay3 19   //For Vane_3 & Dht_3
#define Relay4 21   //For Pompe water
#define DHT1 4      // Digital pin connected to the DHT1 sensor
#define DHT2 22     // Digital pin connected to the DHT2 sensor
#define DHT3 23     // Digital pin connected to the DHT3 sensor
#define DHTTYPE DHT11   // DHT 11
bool Relay_1 = false , Relay_2 = false, Relay_3 = false ;
bool control = true;
DHT dht1(DHT1, DHTTYPE);
DHT dht2(DHT2, DHTTYPE);
DHT dht3(DHT3, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println(F("DHTxx test!"));
  dht1.begin();
  dht2.begin();
  dht3.begin();
  pinMode(Relay1,OUTPUT);
  pinMode(Relay2,OUTPUT);
  pinMode(Relay3,OUTPUT);
  pinMode(Relay4,OUTPUT);

  digitalWrite(Relay1,LOW) ;
  digitalWrite(Relay2,LOW) ;
  digitalWrite(Relay3,LOW) ;
  digitalWrite(Relay4,LOW) ;
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  //*****for dht 1*****
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h1 = dht1.readHumidity();
  // Read temperature as Celsius (the default)
  float t1 = dht1.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f1 = dht1.readTemperature(true);
  
    //*****for dht 2*****
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h2 = dht2.readHumidity();
  // Read temperature as Celsius (the default)
  float t2 = dht2.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f2 = dht2.readTemperature(true);

      //*****for dht 3*****
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h3 = dht3.readHumidity();
  // Read temperature as Celsius (the default)
  float t3 = dht3.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f3 = dht3.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
 // if (isnan(h1) || isnan(t1) || isnan(f1)||
  //    isnan(h2) || isnan(t2) || isnan(f2)||
   //   isnan(h3) || isnan(t3) || isnan(f3)) {
  //  Serial.println(F("Failed to read from DHT sensor!"));
  //  return;
 // }

  // Compute heat index in Fahrenheit (the default)
  float hif1 = dht1.computeHeatIndex(f1, h1);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic1 = dht1.computeHeatIndex(t1, h1, false);

    // Compute heat index in Fahrenheit (the default)
  float hif2 = dht2.computeHeatIndex(f2, h2);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic2 = dht2.computeHeatIndex(t2, h2, false);

    // Compute heat index in Fahrenheit (the default)
  float hif3 = dht3.computeHeatIndex(f3, h3);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic3 = dht3.computeHeatIndex(t3, h3, false);

  Serial.print(F("Humidity1: "));
  Serial.print(h1);
  Serial.print(F("%  Temperature1: "));
  Serial.print(t1);
  Serial.print(F("°C "));
  Serial.print(f1);
  Serial.print(F("°F  Heat index1: "));
  Serial.print(hic1);
  Serial.print(F("°C "));
  Serial.print(hif1);
  Serial.println(F("°F"));

  Serial.print(F("Humidity2: "));
  Serial.print(h2);
  Serial.print(F("%  Temperature2: "));
  Serial.print(t2);
  Serial.print(F("°C "));
  Serial.print(f2);
  Serial.print(F("°F  Heat index2: "));
  Serial.print(hic2);
  Serial.print(F("°C "));
  Serial.print(hif2);
  Serial.println(F("°F"));

  Serial.print(F("Humidity3: "));
  Serial.print(h3);
  Serial.print(F("%  Temperature3: "));
  Serial.print(t3);
  Serial.print(F("°C "));
  Serial.print(f3);
  Serial.print(F("°F  Heat index3: "));
  Serial.print(hic3);
  Serial.print(F("°C "));
  Serial.print(hif3);
  Serial.println(F("°F"));
  

if (control){
  ///*****Manual*****/////*****************************
char x = Serial.read();
switch(x)
{
case '1': 
digitalWrite(Relay1,HIGH);
break;
case '2': 
digitalWrite(Relay1,LOW);
	break;
case '3': 
digitalWrite(Relay2,HIGH);
	break;
case '4': 
digitalWrite(Relay2,LOW);
	break;
case '5':
digitalWrite(Relay3,HIGH);
	break;
case '6':
digitalWrite(Relay3,LOW);
	break;
case '7':
digitalWrite(Relay4,HIGH);
	break;
case '8':
digitalWrite(Relay4,LOW);
	break;
dufault : Serial.println("Ivalid");
	break;
}
///////////////////////////////////////////////////
}
else{
  ////******Auto*****/////////
  if (h1 > 40 && h1 <90){
  digitalWrite(Relay1,HIGH);
  Relay_1 = true;
  
   }
 else { 
  digitalWrite(Relay1,LOW);
  Relay_1 = false;

}
   if (h2 > 40 && h2 <90){
   digitalWrite(Relay2,HIGH);
   Relay_2 = true;

    }
 else { 
   digitalWrite(Relay2,LOW);
  Relay_2 = false;

 }  

   if (h3 > 40 && h3 <90){
   digitalWrite(Relay3,HIGH);
   Relay_3 = true;
  
    }
   else { 
   digitalWrite(Relay3,LOW);
   Relay_3 = false;

 }

 if ( Relay_1  || Relay_2   || Relay_3 ){
  
    digitalWrite(Relay4,HIGH);
   }
 else { 
   digitalWrite(Relay4,LOW);
}
}

}