#include <DHT.h>;
#include <Adafruit_GFX.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Fonts/FreeSerif9pt7b.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define led_merah 11
#define led_kuning 12
#define led_hijau 13
#define led_biru 6
#define buzzer 7
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int h;
int t;
void setup()
{
Serial.begin(9600);
Serial.println("Temperature and Humidity Sensor Test");
dht.begin();
lcd.init();
lcd.backlight();
pinMode(buzzer, OUTPUT);
pinMode(led_merah, OUTPUT);
pinMode(led_kuning, OUTPUT);
pinMode(led_hijau, OUTPUT);
pinMode(led_biru, OUTPUT);
}
void loop()
{
h = dht.readHumidity();
t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan (h) || isnan (t) || isnan (f)) {
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %, Temp: ");
Serial.print(t);
Serial.println(" ° Celsius");
lcd.setCursor(1, 0);
lcd.println(" SUHU & KELEMBAPAN ");
if (h <= 44 and h >= 0) {
digitalWrite(led_biru, LOW);
lcd.println("KELEMBAPAN KURANG");
}
else if (h <= 65 and h >= 45) {
digitalWrite(led_biru, HIGH);
lcd.println("KELEMBAPAN CUKUP");
}
else if (h <= 100 and h >= 66) {
digitalWrite(led_biru, LOW);
lcd.println("KELEMBAPAN LEBIH");
}
if (t <= 25 and t >= 15) {
digitalWrite(led_merah, LOW);
digitalWrite(led_kuning, LOW);
digitalWrite(led_hijau, HIGH);
lcd.setCursor(3, 1);
lcd.print("T :");
lcd.print(t);
lcd.println("^C");
lcd.print("H :");
lcd.print(h);
lcd.println("%");
lcd.println("");
lcd.print("SUHU KURANG ");
tone(buzzer, 500);
}
else if (t <= 32 and t >= 26) {
digitalWrite(led_merah, LOW);
digitalWrite(led_kuning, HIGH);
digitalWrite(led_hijau, LOW);
lcd.setCursor(3, 1);
lcd.print("T :");
lcd.print(t);
lcd.println("^C");
lcd.print("H :");
lcd.print(h);
lcd.println("%");
lcd.println("");
lcd.print("SUHU CUKUP ");
tone(buzzer, 1000);
}
else if (t <= 40 and t >= 33) {
digitalWrite(led_merah, HIGH);
digitalWrite(led_kuning, LOW);
digitalWrite(led_hijau, LOW);
lcd.setCursor(3, 1);
lcd.print("T :");
lcd.print(t);
lcd.println("^C");
lcd.print("H :");
lcd.print(h);
lcd.println("%");
lcd.println("");
lcd.print("SUHU LEBIH ");
tone(buzzer, 1500);
}
else {
digitalWrite(led_merah, HIGH);
digitalWrite(led_kuning, HIGH);
digitalWrite(led_hijau, HIGH);
lcd.setCursor(3, 1);
lcd.print("T :");
lcd.print(t);
lcd.println("^C");
lcd.print("H :");
lcd.print(h);
lcd.println("%");
lcd.println("");
lcd.print("SUHU INVALID ");
tone(buzzer, 2000);
}
delay(2000);
}