// nama kelompok firdaus dan ronldo
#include "DHTesp.h" // Library untuk sensor DHT
#define Echo 32 // Pin Echo sensor ultrasonik
#define Trig 33 // Pin Trig sensor ultrasonik
#define Led 2 // Pin LED
#define Buzzer 4 // Pin Buzzer
const int DHT_PIN = 25; // Pin sensor DHT
DHTesp dhtSensor; // Objek untuk sensor DHT
void setup() {
Serial.begin(9600); // Mulai komunikasi serial dengan kecepatan 9600 baud
dhtSensor.setup(DHT_PIN, DHTesp::DHT22); // Setup sensor DHT
pinMode(Trig, OUTPUT); // Set pin Trig sebagai OUTPUT
pinMode(Echo, INPUT); // Set pin Echo sebagai INPUT
pinMode(Led, OUTPUT); // Set pin LED sebagai OUTPUT
pinMode(Buzzer, OUTPUT); // Set pin Buzzer sebagai OUTPUT
}
void loop() {
int kelembaban; // Variabel untuk menyimpan kelembaban
TempAndHumidity data = dhtSensor.getTempAndHumidity(); // Mendapatkan data suhu dan kelembaban dari sensor DHT
kelembaban = data.humidity; // Mengambil nilai kelembaban
digitalWrite(Trig, HIGH); // Mengirim sinyal HIGH ke pin Trig
delayMicroseconds(10); // Delay selama 10 mikro detik
digitalWrite(Trig, LOW); // Mengirim sinyal LOW ke pin Trig
int duration = pulseIn(Echo, HIGH); // Mengukur durasi sinyal yang diterima oleh pin Echo (waktu tergantung dari refleksi objek)
int distance = duration * 0.034 / 2; // Menghitung jarak berdasarkan durasi sinyal (dalam satuan sentimeter)
if (distance > 100) {
digitalWrite(Led, HIGH); // Menyalakan LED jika jarak lebih dari 100 cm
Serial.println("AMAN");
}
if (distance < 100 && distance >50) {
digitalWrite(Led, LOW); // Mematikan LED
delay(500); // Delay selama 500 milidetik
digitalWrite(Led, HIGH); // Menyalakan LED
delay(500); // Delay selama 500 milidetik
Serial.println("peringatan 1");
}
if (distance <50){
digitalWrite(Led, LOW); // Mematikan LED
Serial.println("BAHAYA");
// Memeriksa kelembaban
if(kelembaban>50){
tone(Buzzer,800); // Menghasilkan nada dengan frekuensi 800 Hz pada buzzer
delay(500); // Delay selama 500 milidetik
noTone(Buzzer); // Mematikan nada pada buzzer
}
if(kelembaban<50){
static int count = 0; // Variabel untuk menghitung jumlah pengulangan
count = count+1; // Menambah nilai variabel count
if(count<50){
tone(Buzzer,800); // Menghasilkan nada dengan frekuensi 800 Hz pada buzzer
delay(500); // Delay selama 500 milidetik
noTone(Buzzer); // Mematikan nada pada buzzer
}
if(count==50){
noTone(Buzzer); // Mematikan nada pada buzzer
}
}
}
Serial.print("Jarak : ");
Serial.println(distance); // Mencetak jarak ke serial monitor
Serial.print("Kelembaban : ");
Serial.println(kelembaban); // Mencetak kelembaban ke serial monitor
Serial.println("kelompok 4 firdaus dan rolando");
delay(500); // Delay selama 500 milidetik sebelum melakukan pengukuran lagi
}