#include <LiquidCrystal_I2C.h> // address, width, height
#include <DHT.h>
#include <Adafruit_Sensor.h>
#define DHTPIN 35 // Pin data DHT11 terhubung ke pin 3
#define DHTTYPE DHT22 // Tipe sensor DHT (DHT22)
#define RelayModule 14
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
int trigPin = 2;
int echoPin = 4;
long duration; //time taken
int panjangCM;
int h; //calculate jarak
void setup() {
lcd.init();
lcd.backlight();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(RelayModule, OUTPUT);
Serial.begin(9600);
dht.begin();
}
void loop() {
//HC-SR04
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(1);
digitalWrite(trigPin, LOW);
duration=pulseIn(echoPin, HIGH);
panjangCM= duration*0.0342/2;
h = 74.57 - panjangCM;
lcd.setCursor(0,0);
lcd.print("HASIL=");
lcd.print(panjangCM);
lcd.print("Cm");
lcd.setCursor(0,1);
lcd.print("\t");
lcd.print("tinggi Air:");
lcd.print(h);
lcd.println(" Cm");
delay(2000);
lcd.clear();
delay(2000); // Tunggu 2 detik antara pembacaan
//DHT11
float humidity = dht.readHumidity(); // Baca kelembaban
float temperatureC = dht.readTemperature(); // Baca suhu dalam Celsius
float temperatureF = dht.readTemperature(true); // Baca suhu dalam Fahrenheit (true)
// Periksa jika pembacaan sukses
Serial.print("T:");
Serial.print(temperatureC);
Serial.print("C");
Serial.print("H:");
Serial.print(humidity);
delay (1000);
if(temperatureC>28);{
digitalWrite(RelayModule, HIGH);
delay(5000);
}
if(temperatureC<=28 && temperatureC>=21);{
digitalWrite(RelayModule, LOW);
delay(5000);
}
}