#include <DHT.h> // Menambahkan librari DHT
#define DHTPIN 7 //mendefinisikan pin dht di pin 7
#define DHTTYPE DHT22 // mendefinisikan type dht yang digunakan, yang digunakan DHT22
int pinLDR = A0;
DHT dhtku (DHTPIN , DHTTYPE); // membuat class dht
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
dhtku.begin(); // memanggil class dhtku
pinMode(13, OUTPUT); // pin 13 aduino untuk OUTPUT (led merah)
pinMode(10, OUTPUT); // pin 10 aduino untuk OUTPUT (led biru)
pinMode(8, OUTPUT); // // pin 8 aduino untuk OUTPUT (led kuning)
pinMode(pinLDR, INPUT);// pin analog ldr aduino untuk INPUT (dari LDR)
}
void loop() {
// put your main code here, to run repeatedly:
const float RL10 = 50000; // Nilai resistansi pada luminansi 10 lux
const float gamma = 0.7; // Nilai rasio perubahan resistansi terhadap luminansi pada rentang 10-100 lux
const float R1 = 10000; // Nilai resistansi internal pada voltage divider LDR
float hum = dhtku.readHumidity(); // Function unbtuk membaca humidity
float temp = dhtku.readTemperature(); // Function untuk membaca temperature
float LDR_read = analogRead(pinLDR);
float V = (LDR_read / 1024)*5; //Konversi ADC melalui regresi linear
float R = R1 * V / (5-V); // Konversi V ke R melalui adanya voltage divider
float lux = pow(RL10*pow(10,gamma)/R,1/gamma); //Konversi resistansi ke lux melalui regresi logaritmik
Serial.print("Humidity : ");
Serial.print(hum);
Serial.print("\tTemperature : ");
Serial.println(temp);
Serial.print("\tLux : ");
Serial.println(lux);
delay(1000);
if (temp > 25){
digitalWrite(13,HIGH); // FAN untuk menyala (led merah)
}
else{
digitalWrite(13,LOW); // FAn mati (led merah)
}
if (hum < 80){
digitalWrite(10,HIGH); // FAN untuk menyala (led biru)
}
else{
digitalWrite(10,LOW); // FAn mati (led biru)
}
if (lux > 500){
digitalWrite(8,LOW); //Lampu mati (led kuning)
}
else{
digitalWrite(8,HIGH);//Lampu nyala (led kuning)
}
delay(1000);
}