/* 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
}