#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include "DHTesp.h"
#include <Wire.h>
#define DHTPIN 15 // Pin data sensor DHT22 terhubung ke pin 2
#define DHTTYPE DHTesp::DHT22 // Tipe sensor DHT22
DHTesp dhtSensor;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C umumnya adalah 0x27
int relayPin1 = 4; // Pin yang mengendalikan Relay 1
int relayPin2 = 5; // Pin yang mengendalikan Relay 2
void setup() {
Serial.begin(9600);
dhtSensor.setup(DHTPIN, DHTesp::DHT22);
lcd.init();
lcd.backlight();
// Inisialisasi pin-pi untuk relay sebagai OUTPUT
pinMode(relayPin1, OUTPUT);
pinMode(relayPin2, OUTPUT);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Selamat Datang!");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tegar Oktavianto S");
lcd.setCursor(0, 1);
lcd.print("21082010140");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Raihana");
lcd.setCursor(0, 1);
lcd.print("21082010140");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("febry");
lcd.setCursor(0, 1);
lcd.print("21082010140");
delay(3000);
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float humidity = data.humidity;
float temperature = data.temperature;
delay(5000); // Delay sebelum membaca suhu
if (isnan(humidity) || isnan(temperature)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Error membaca sensor");
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu: " + String(temperature) + " C");
}
// Menghidupkan Relay 1 (lampu pemanas) berdasarkan kondisi suhu
if (temperature < 32 ) {
digitalWrite(relayPin1, HIGH); // Hidupkan Relay 1
lcd.setCursor(0, 1);
lcd.print("Lampu Pemanas ON");
} else {
digitalWrite(relayPin1, LOW); // Matikan Relay 1
lcd.setCursor(0, 1);
lcd.print("Suhu Normal");
}
// Menghidupkan Relay 2 (kipas pendingin) berdasarkan kondisi suhu
if (temperature > 35) {
digitalWrite(relayPin2, HIGH); // Hidupkan Relay 2
lcd.setCursor(0, 1);
lcd.print("Kipas pendingin ON");
} else {
digitalWrite(relayPin2, LOW); // Matikan Relay 2
lcd.setCursor(0, 1);
lcd.print("Suhu Normal");
}
delay(10000); // Delay antara bacaan suhu
}