//Pembuat Program: Anbi Atmaja Yahwidhi 20210130127
int ldrPin = A0; // LDR pin
int ldrVal = 0; // Value of LDR
int ledPin2 = 2; // Build in LED pin
int ledPin3 = 3; // Build in LED pin
int ledPin4 = 4; // Build in LED pin
#include "DHT.h" // Library untuk sensor DHT
#define dhtPin 12 // data pin
//#define dhtType DHT11 // tipe sensor: DHT 11
#define dhtType DHT11 // DHT 11 (AM2302), AM2321
//#define dhtType DHT11 // DHT 11 (AM2301)
DHT dht(dhtPin, dhtType); // Initialise the DHT library
float humidityVal; // humidity %
float tempValC; // temperature in degrees Celcius
// LDR Characteristics
const float GAMMA = 0.7;
const float RL10 = 50;
void setup() {
Serial.begin(9600); // Initialise the serial monitor
dht.begin(); // start with reading the DHT sensor
pinMode(ledPin4, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop() {
ldrVal = analogRead(ldrPin); // Read the analog value of the LDR
float voltage = ldrVal / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
humidityVal = dht.readHumidity(); // humidity
tempValC = dht.readTemperature(); // temperatur Celcius
if(tempValC < 29 ){ //pengatur led
digitalWrite(ledPin4, HIGH);
Serial.print("Humidity: ");
Serial.print(humidityVal);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(tempValC);
Serial.println(" °C ");
delay(4000);
digitalWrite(ledPin4, LOW);
}
else{
digitalWrite(ledPin4, LOW);
delay(1000);
}
if(tempValC > 31 ){ //pengatur led
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin3, HIGH);
Serial.print("Humidity: ");
Serial.print(humidityVal);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(tempValC);
Serial.println(" °C ");
delay(4000);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin3, LOW);
}
else{
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin3, LOW);
delay(1000);
}
if (lux == 0) { // If the LDR value is lower than 200
digitalWrite(ledPin2, HIGH); // Turn buildin LED on
} else {
digitalWrite(ledPin2, LOW); // Turn buildin LED off
}
Serial.println(lux); // Show the value in the serial monitor
delay(1000); // Pause 1000ms
}