// A Temperature and Humidity Monitor Based on LED
//
// -----Temp------|-----Humidity----| G | Y | R | B |
// temp > 20 < 40 | humd > 40 < 80 | 1 | 0 | 0 | 0 |
// temp > 40 < 80 | humd > 80 < 100 | 0 | 1 | 0 | 0 |
// temp = 80 | humd = 100 | 0 | 0 | 1 | 0 |
// Other | Other | 0 | 0 | 0 | 1 |
//----------------|-----------------|---|---|---|---|
#include "DHTesp.h"
const int dp = 19;
const int r = 25;
const int y = 27;
const int g = 13;
const int b = 12;
DHTesp ds;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(r, OUTPUT);
pinMode(y, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
ds.setup(dp, DHTesp::DHT22);
Serial.println("Hello, ESP32!");
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
TempAndHumidity data = ds.getTempAndHumidity();
int tah[2] = {data.temperature,data.humidity};
int op;
if(tah[0] > 20 && tah[0] < 40 && tah[1] > 40 && tah[1] < 80)
{ op = 0; }
else if(tah[0] > 40 && tah[0] < 80 && tah[1] > 80 && tah[1] < 100)
{ op = 1; }
else if(tah[0] == 80 && tah[1] == 100)
{ op = 2; }
else { op = 3; }
switch (op)
{
case 0:
digitalWrite(r, LOW);
digitalWrite(y, LOW);
delay(10);
digitalWrite(g , HIGH);
digitalWrite(b, LOW);
break;
case 1:
digitalWrite(r, LOW);
delay(10);
digitalWrite(y, HIGH);
digitalWrite(g , LOW);
digitalWrite(b, LOW);
break;
case 2:
delay(10);
digitalWrite(r, HIGH);
digitalWrite(y, LOW);
digitalWrite(g , LOW);
digitalWrite(b, LOW);
break;
case 3:
digitalWrite(r, LOW);
digitalWrite(y, LOW);
digitalWrite(g, LOW);
delay(10);
digitalWrite(b, HIGH);
break;
default:
break;
}
}