// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor
#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 4
#define TAMPIL_SERIAL true
#define DHTTYPE DHT22
LiquidCrystal_I2C lcd(0x27, 20, 4); // Alamat I2C, jumlah kolom, jumlah baris
DHT dht(DHTPIN, DHTTYPE);
const byte KARAKTER_DERAJAT = 0;
byte derajat[] = {
B00111,
B00101,
B00111,
B00000,
B00000,
B00000,
B00000,
B00000
};
int hum = 0, temp = 0;
void setup() {
#if TAMPIL_SERIAL
Serial.begin(9600);
Serial.println(F("DHT 22 !"));
lcd.begin(16,2);
lcd.init();
lcd.backlight();
#endif
lcd.init();
lcd.createChar(KARAKTER_DERAJAT, derajat);
lcd.backlight();
lcd.setCursor(5, 0);
lcd.print("DHT 22");
lcd.setCursor(0, 1);
lcd.print("SUHU SEKARANG :");
dht.begin();
}
void loop() {
delay(2000); // Delay untuk
hum = dht.readHumidity();
temp = dht.readTemperature(); // Baca temperatur dalam celcius (default)
#if TAMPIL_SERIAL
Serial.println("\n================");
Serial.print(F("Humidity: ")); Serial.print(hum); Serial.println("%");
Serial.print(F("Temperature: ")); Serial.print(temp);
Serial.println(F("°C "));
#endif
lcd.setCursor(15, 1);
if(temp < 20 ){
lcd.setCursor(16, 1);
lcd.print("DINGIN");
}else if(temp > 32){
lcd.setCursor(16, 1);
lcd.print("PANAS");
}else{
lcd.setCursor(16, 1);
lcd.print("NORMAL");
}
}