#include <DHT.h>
#define TRIGGER_PIN 2
#define ECHO_PIN 3
#define DHT_PIN 4
#define DHT_TYPE DHT22
DHT dht(DHT_PIN, DHT_TYPE);
void setup() {
Serial.begin(9600);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
dht.begin();
}
void loop() {
// Mengukur suhu dan kelembapan
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Mengkoreksi kecepatan suara berdasarkan suhu dan kelembapan
float speedOfSound = 331.4 + (0.606 * temperature) + (0.0124 * humidity);
// Mengirimkan sinyal ultrasonik
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
// Membaca waktu tempuh gelombang suara
unsigned long duration = pulseIn(ECHO_PIN, HIGH);
// Menghitung jarak berdasarkan waktu tempuh
float distance = (duration / 2.0) * (speedOfSound / 10000.0);
// Menampilkan hasil pengukuran
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Menampilkan suhu dan kelembapan
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.print(" °C");
Serial.print(" | Kelembapan: ");
Serial.print(humidity);
Serial.println(" %");
delay(1000);
}