#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
//#include "RTClib.h"
//RTC_DS1307 rtc;
Servo myservo;
//char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
const int buzzer = 3;
const int relay = 5;
const int led1 = 6;
const int led2 = 7;
const int led3 = 8;
const int led4 = 9;
const int led5 = 10;
const int led6 = 11;
const int servo = 12;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("kontrol relay dengan sensor suhu");
lcd.begin(16, 2);
dht.begin();
pinMode(relay, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
myservo.attach(11);
}
void loop() {
// put your main code here, to run repeatedly:
float t = dht.readTemperature(); //menghitung suhu
float h = dht.readHumidity();
delay(1000);
if( t >= 24){
digitalWrite(relay, HIGH);
digitalWrite(buzzer, HIGH);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
myservo.write(180);
delay(1000);
myservo.write(0);
delay(100);
//Menampilkan di LCD
lcd.setCursor(0,0);
lcd.println("Suhu=");
lcd.print(t);
lcd.println("°C");
lcd.setCursor(0,1);
lcd.println("Lembab=");
lcd.print(h);
lcd.println("%");
//Menampilkan di serial monitor
Serial.println("Suhu = ");
Serial.print(t);
Serial.println("°C");
Serial.println("Kelembaban = ");
Serial.print(h);
Serial.println("%");
}else{
digitalWrite(relay, LOW);
digitalWrite(buzzer, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, HIGH);
myservo.write(0);
delay(100);
//Menampilkan di LCD
lcd.setCursor(0,0);
lcd.println("Suhu=");
lcd.print(t);
lcd.println("°C");
lcd.setCursor(0,1);
lcd.println("Lembab=");
lcd.print(h);
lcd.println("%");
//Menampilkan di serial monitor
Serial.println("Suhu = ");
Serial.print(t);
Serial.println("°C");
Serial.println("Kelembaban = ");
Serial.print(h);
Serial.println("%");
}
delay(1000);
Serial.print("Suhu: ");
Serial.print(t);
Serial.println("°C");
}