#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 10
#define DHTTYPE DHT22
DHT dht(DHTPIN,DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD biasanya 0x27 untuk module 16x2
const int trigPin = 7; // Pin trigger sensor ultrasonik
const int echoPin = 6; // Pin echo sensor ultrasonik
void setup() {
lcd.begin(16, 2); // Inisialisasi LCD dengan ukuran 16x2
lcd.setCursor(0, 1);
lcd.print("Jarak: ");
lcd.setCursor(0, 2);
lcd.print("Suhu: ");
dht.begin();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Mengirim sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Membaca waktu pantulan gelombang ultrasonik
long duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan waktu pantulan
int jarak = duration * 0.034 / 2; // Mengubah waktu menjadi jarak dalam cm
// Menampilkan hasil pada LCD
lcd.setCursor(7, 1);
lcd.print(" "); // Menghapus nilai sebelumnya
lcd.setCursor(7, 1);
lcd.print(jarak);
lcd.print(" cm");
float t =dht.readTemperature();
float h =dht.readHumidity();
lcd.setCursor(7,2);
lcd.print(" "); // Menghapus nilai sebelumnya
lcd.setCursor(7, 2);
lcd.print(t);
lcd.print(" celcius");
lcd.setCursor(14,2);
lcd.print(" "); // Menghapus nilai sebelumnya
lcd.setCursor(14, 2);
lcd.print(h);
lcd.print(" RH");
}