/* Program Indikator Suhu DHT11 dengan LED dibuat oleh Indobot */

#include "DHT.h"            //Library DHT
#define DHTPIN 5            //Inisialisasi DHT pada pin D5
#define DHTTYPE DHT22       //Inisialisasi tipe DHT

DHT dht (DHTPIN,DHTTYPE);   //Mengenalkan pin dan tipe DHT

float temp;  //Variabel penampung nilai suhu
float hum; //Variabel penampung nilai kelembaban

const int Buzzer = 6; //memberikan nama alias Buzzer
int LEDM = 2;   //LED merah pada pin D2
int LEDK = 3;   //LED kuning pada pin D3
int LEDH = 4;   //LED hijau pada pin D4

void setup() {
  Serial.begin(9600);     //Mulai komunikasi serial
  dht.begin();            //Mulai DHT
  pinMode(LEDM, OUTPUT);  //Setting LED Merah sebagai output
  pinMode(LEDK, OUTPUT);  //deklarasi nama alias LED kuning sebagai output
  pinMode(LEDH, OUTPUT);  //deklarasi nama alias LED Hijau sebagai output
  pinMode(Buzzer, OUTPUT); //deklarasi nama alias Buzzer sebagai output
}

void loop() {
  temp = dht.readTemperature();    //Baca suhu
  hum = dht.readHumidity();
  Serial.print("Kelembaban: ");
  Serial.print(hum);
  Serial.print(" %, Suhu: ");
  Serial.print(temp);
  Serial.println(" Celsius");
 
  if (temp <= 30){                 //Jika suhu <= 30*C, maka
    digitalWrite(LEDM, LOW); 
    digitalWrite(LEDK, LOW);
    digitalWrite(LEDH, HIGH);   //LED hijau menyala
  }
  else if (temp <= 70){            //Jika suhu <= 70*C, maka
    digitalWrite(LEDM, LOW);
    digitalWrite(LEDK, HIGH);   //LED kuning menyala
    digitalWrite(LEDH, LOW);
  }
  else if (temp > 70){             //Jika suhu > 70*C, maka
    digitalWrite(LEDM, HIGH);   //LED merah menyala
    digitalWrite(LEDK, LOW);
    digitalWrite(LEDH, LOW);
  }

  /*
    if (temp <= 30){                 //Jika suhu <= 30*C, maka
    digitalWrite(LEDM, LOW); 
    digitalWrite(LEDK, LOW);
    digitalWrite(LEDH, HIGH);   //LED hijau menyala
  }
  else if (temp <= 70 && temp >= 31 ){     //Jika suhu antara >=31 dan <=70, maka
    digitalWrite(LEDM, LOW);
    digitalWrite(LEDK, HIGH);   //LED kuning menyala
    digitalWrite(LEDH, LOW);
  }
  else if (temp > 71){             //Jika suhu > 35*C, maka
    digitalWrite(LEDM, HIGH);   //LED merah menyala
    digitalWrite(LEDK, LOW);
    digitalWrite(LEDH, LOW);
  }
  */

  if (temp > 60){                 //Jika suhu > 60*C, maka Buzzer akan menyala
    tone(Buzzer, 500);
    delay (100);
    noTone(Buzzer);
    delay (100);
  }
  delay(1000);                  //Jeda pembacaan 1000ms
}
$abcdeabcde151015202530fghijfghij