#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
int led1 = 13;
int led2 = 12;
int led3 = 11;
LiquidCrystal_I2C lcd(0x27,16,4);
// Deklarasi PIN DHT11 //
#define DHTPIN 2
// Tipe sensor yang digunakan (DHT11 atau DHT22) //
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// Membuat ikon kelelembaban //
byte suhu[8] =
{
B00100,
B01010,
B01010,
B01110,
B11111,
B11111,
B01110,
B00000
};
// Membuat ikon kelelembaban //
byte kelembaban[8] =
{
B00100,
B01010,
B01010,
B10001,
B10001,
B10001,
B01110,
B00000
};
void setup() {
lcd.init();
lcd.backlight();
lcd.createChar(1, kelembaban);
lcd.createChar(2, suhu);
lcd.setCursor(0,0);
lcd.print("Dwi.Ovalia");
lcd.setCursor(0,1);
lcd.print("TeknikElektro22");
dht.begin();
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.write(2);
lcd.print(" Suhu: ");
lcd.setCursor(0,1);
lcd.write(1);
lcd.print(" Lembab: ");
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
// Membaca kelembaban //
float h = dht.readHumidity();
// Membaca suhu dalam satuan Celsius //
float t = dht.readTemperature();
// Membaca suhu dalam satuan Fahrenheit //
float f = dht.readTemperature(true);
if (t<=24){
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
}
if (t>=24){
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
}
if (t>=29){
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
}
// Menampilkan pesan Error jika sensor tidak terbaca //
if (isnan(h) || isnan(t) || isnan(f)) {
lcd.setCursor(8,0);
lcd.print("Error ");
lcd.setCursor(10,1);
lcd.print("Error ");
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
// Menampilkan data ke LCD //
lcd.setCursor(8,0);
lcd.print(t,1);
lcd.print((char)223);
lcd.print("C ");
lcd.setCursor(10,1);
lcd.print(h,0);
lcd.print("% ");
// Jeda Waktu, ubah menjadi 2000 untuk DHT22//
delay(2000);
}