# ALARM KETINGGIAN AIR AQUARIUM

## 💧 ALARM KETINGGIAN AIR AQUARIUM

Proyek ini akan memantau level air dalam aquarium menggunakan sensor ultrasonik. Ketika air terlalu rendah atau terlalu tinggi, buzzer akan berbunyi sebagai alarm. Interval bunyi menandakan kondisi:

- ****Lambat (interval panjang):****<span style="white-space: pre-wrap;"> Air terlalu tinggi</span>
- ****Cepat (interval pendek):****<span style="white-space: pre-wrap;"> Air terlalu rendah</span>

---

## 🔌 WIRING ATAU RANGKAIAN

<table id="bkmrk-komponenpin-arduinoh"><colgroup><col></col><col></col></colgroup><tbody><tr><th>Komponen

</th><th>Pin Arduino

</th></tr><tr><td>HC-SR04 VCC

</td><td>5V

</td></tr><tr><td>HC-SR04 GND

</td><td>GND

</td></tr><tr><td>HC-SR04 TRIG

</td><td>D9

</td></tr><tr><td>HC-SR04 ECHO

</td><td>D10

</td></tr><tr><td>Buzzer (+)

</td><td>D8

</td></tr><tr><td>Buzzer (–)

</td><td>GND

</td></tr></tbody></table>

---

## 💻 SOURCE CODE

Kode berikut membaca ketinggian air dan mengaktifkan buzzer saat level air tidak normal. Gunakan pembacaan jarak dari atas permukaan ke air.

```c++
#define trigPin 9
#define echoPin 10
#define buzzerPin 8

// Sesuaikan dengan ukuran aquarium (dalam cm)
#define BATAS_ATAS 5    // Air terlalu tinggi jika jarak < 5 cm
#define BATAS_BAWAH 20  // Air terlalu rendah jika jarak > 20 cm

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  long duration;
  float distance;

  // Kirim sinyal ultrasonik
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Hitung jarak
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.0343 / 2;

  Serial.print("Jarak: ");
  Serial.print(distance);
  Serial.println(" cm");

  if (distance < BATAS_ATAS) {
    // Terlalu penuh - bunyi lambat
    tone(buzzerPin, 1000);
    delay(100);
    noTone(buzzerPin);
    delay(1000);
  }
  else if (distance > BATAS_BAWAH) {
    // Terlalu kosong - bunyi cepat
    tone(buzzerPin, 1000);
    delay(100);
    noTone(buzzerPin);
    delay(300);
  }

  delay(500); // jeda antar pembacaan
}
```

---

## 🧠 PENJELASAN PROGRAM

- ****Sensor Ultrasonik:****<span style="white-space: pre-wrap;"> Mengukur jarak dari atas sensor ke permukaan air.</span>
- ****Logika Penuh:****<span style="white-space: pre-wrap;"> Jika air mendekati sensor (jarak &lt; 5 cm), artinya terlalu penuh → buzzer lambat.</span>
- ****Logika Kosong:****<span style="white-space: pre-wrap;"> Jika jarak ke air terlalu jauh (&gt; 20 cm), artinya perlu diisi → buzzer cepat.</span>
- ****Buzzer:****<span style="white-space: pre-wrap;"> Berfungsi sebagai alarm dengan frekuensi dan jeda yang berbeda tergantung kondisinya.</span>

🎯 Alat ini cocok untuk menjaga aquarium kamu tetap aman dari tumpah atau kekurangan air. Bisa juga dipasang ke wadah lain seperti ember penampung otomatis.

---

**Semoga bermanfaat, dan semoga ikan-ikanmu tetap happy! 🐟🔔**