I cant seem to code this correctly. Its a basic gardening monitor circuit that alerts me if any of the 4 if statements are true. But the 4 if statments seem to cancel eachother out. As long as one of the if statments are true. My sketch wont do anything. Its supposed to stay green unless one or more f the if statements goes outside my thresholds. But it will only stay green nonmatter what. Please help
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
int greenled = 3;
int redled = 4;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHT Sensor Reading");
pinMode(greenled, OUTPUT);
pinMode(redled, OUTPUT);
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature(true);
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print("Temperature: ");
Serial.println(t);
if(t > 80){
digitalWrite(greenled, LOW);
digitalWrite(redled, HIGH);
} else {
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
}
if(t < 65){
digitalWrite(greenled, LOW);
digitalWrite(redled, HIGH);
} else {
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
}
if(h > 40){
digitalWrite(greenled, LOW);
digitalWrite(redled, HIGH);
} else {
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
}
if(h < 30){
digitalWrite(greenled, LOW);
digitalWrite(redled, HIGH);
} else {
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
}
}