#include <DHT22.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27,20,4);
#define kipas 3
#define pinDATA 2
#define pemanas 4
#define lampu 13
#define ldr A0
DHT22 dht22(pinDATA);
void setup() {
// put your setup code here, to run once:
pinMode(kipas, OUTPUT);
pinMode(ldr, INPUT);
pinMode(lampu, OUTPUT);
pinMode(pemanas, OUTPUT);
Serial.begin(115200); //1bit=10µs
Serial.println("\ntest capteur DTH22");
lcd.init();
lcd.backlight();
}
void loop() {
// put your main code here, to run repeatedly:
int membaca_analog = analogRead(ldr);
Serial.print("Hasil baca: ");
Serial.println(membaca_analog);
float suhu = dht22.getTemperature();
float lembab = dht22.getHumidity();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Suhu:");
lcd.print(suhu);
lcd.setCursor(0,1);
lcd.print("Kelembaban: ");
lcd.print(lembab);
lcd.setCursor(0,2);
lcd.print("Kecerahan: ");
lcd.print(membaca_analog);
if (dht22.getLastError() != dht22.OK) {
Serial.print("last error :");
Serial.println(dht22.getLastError());
}
else if (membaca_analog <= 10){
digitalWrite(lampu, LOW);
}
else if (membaca_analog >= 10 && membaca_analog <= 800){
digitalWrite(lampu, HIGH);
}
else if (suhu > 20){
digitalWrite(kipas, HIGH);
digitalWrite(pemanas, LOW);
}
else {
digitalWrite(kipas, LOW);
digitalWrite(pemanas, HIGH);
digitalWrite(lampu, LOW);
}
Serial.print("lembab=");Serial.print(lembab,1);Serial.print("\t");
Serial.print("suhu=");Serial.println(suhu,1);
delay(2000);
}