Detektor Level Permukaan Air Sungai: Alat Sederhana Juga

Pendahuluan

Pada tulisan sebelumnya, saya sudah paparkan perancangan alat sederhana untuk mendeteksi kemunginkan terjadinya banjir ( http://profmikra.org/?p=405 ). Alat tersebut memiliki prinsip kerja yang sangat sederhana yaitu mendeteksi dua keadaan ketinggian permukaan air: aman atau berbahaya. Jika ketinggian permukaan air aman (di bawah ketinggian ambang) maka alat tidak mengeluarkan isyarat apa-apa. Namun, jika ketinggian permukaan melebihi ketinggian ambang maka sirine berbunyi. Bunyi sirine bukan bearti sudah terjadi banjir, tetapi peringatan bahwa ketinggian permukaan air sudah mendekati ketinggian bagi terjadinya banjir. Namun, berapa ketinggian permukaan air suatu saat tidak diketahui.

Pada tulisan ini saya paparkan desain alat sederhana yang dapat memberikan informasi ketinggian air. Saya tidak akan desain alat yang terlalu rumit dulu. Tinggi permukaan air di sini hanya dalam empat keadaan, yaitu: aman, siaga 2, siaga 1, bahaya. Keempat keadaan tersebut ditampilkan dalam bentuk:

  1. Lampu biru untuk keadaan aman
  2. Lampu kuning untuk keadaan siaga 2
  3. Lampu merah untuk keadaan siaga 1
  4. Sirine untuk keadaan bahaya

Desain Alat

Untuk mendeteksi ketinggian permukaan air saya gunakan sensor ultrasonik HS-SR04 seperti pada Gambar 1. Sudah banyak orang yang menggunakan komponen ini untuk segala macam aplikasi penentuan jarak karena ketelitian yang cukup baik dan mudah diaplikasikan langsung ke peralatan digital lainnya. Saya pernah menggunakan komponen ini untuk membuat Senter Ultrasonik (http://profmikra.org/?p=125). Komponen ini saya kombinasikan dengan Arduiono Uno sebagai pemberi trigger dan pendeteksi sinyal echo. Alat ini memberikan informasi lama waktu sejak pengiriman sinyal trigger sampai deteksi kembali sinyal echo. Karena laju rambat bunyi di udara diketahui maka dari pengukuran selang waktu tersebut, jarak tempuh gelombang ultrasonik dapat diketahui.

Gambar 1 Sensor ultrasonik HS-SR04

Alat ini memiliki dua bagian utama, yaitu transmitter dan receiver (bentuk silinder pada Gambar 1). Transmitter ditandai dengan huruf T dan receiver ditandai dengan huruf R. Transmitter mengirimkan pulsa ultrasonik ketika sinyal trigger diberikan. Ketika receiver menerima pulsa ultrasonik tersebut maka sinyal echo dihasilkan. Jadi, fungsi Arduino adalah memberikan sinyal trigger, kemudian menunggu munculnya sinyal echo.

Dalam aplikasi deteksi, maka alat ini umumnya menggunakan metode pemantulan seperti pada Gambar 2. Gelombang ultrasonik yang dipancarkan transmitter, dipantulkan oleh benda yang akan diukur jaraknya. Gelombang pantul tersebut ditangkap oleh receiver dan dihasilkan pulsa echo. Selang waktu sejak sinyal dikirim sampai ditangkap sama dengan waktu tempung bolak-balik gelombang ultrasonik tersebut. Dengan demikian, jarak benda adalah setengah jarak tempuh tersebut.

Gambar 2 Metode pengukuran dengan sensor ultrasonik berdasarkan prinsip pemantulan.

Untuk mendeteksi ketinggian permukaan air, mungkin cara yang paling mudah adalah mengarahkan sensor tersebut ke arah permukaan air. Transmitter mengirim gelombang ke arah permukaan air. Gelombang kemudian dipantulkan oleh permukaan air dan ditangkap oleh receiver. Dengan prinsip di atas maka jarak sensor ke permukaan air dapat dihitung. Dengan cara ini maka perubahan ketinggian permukaan air setiap saat dapat dihitung.

Namun permasahalan tama adalah apabila ada benda yang mengalir terbawa air (terapung di permukaan air). Ketika kebetulan ada benda terapung di permukaan air dan kebetulan berada di bawah sensor maka sensor akan mendeteksi benda yang jaraknya lebih pendek. Dengan demikian informasi yang dihasilkan adalah: seolah-olah permukaan air sudah tinggi. Tentu pengukuran seperti ini tidak kita harapkan. Lebih parah lagi jika benda tersebut tersangkut tepat di bawah sensor. Ini bisa terjadi saat bajir di mana banyak sekali barang atau sampah yang terbawa arus.

Untuk mengatasi hal tersebut maka permukaan air yang dideteksi oleh sensor harus bebas dari sampah atau benda hanyut lainnya. Di permukaan air tersebut juga tidak boleh ada benda yang tersangkut. Bagaimana caranya? Caranya adalah mengamankan permukaan air yang akan diukur dari benda pengganggu. Untuk maksud tersebut, saya mengisolasi permukaan air yang akan diukur dalam pipa paralon ukuran 4 inci. Ujung bawah pipa ditutup dengan dop. Penutup di ujung bawah dan di sekeliling pipa bagian bawah dilubangi sebagai tempat masuknya air ke dalam pipa. Ukuran lubang tidak terlalu besar sehingga sampah tidak masuk. Kita akan dapatkan tinggi permukaan air di dalam pipa dengan di luar pipa sama, tetapi sampah tidak bisa masuk ke ruang di dalam pipa. Dengan cara isolasi seperti ini maka kita dapat deteksi jarak permukaan air tanpa khawatir adanya benda penggangu yang terapung di permukaan air. Gambar 3 adalah pipa tersebut.

Gambar 3 Pipa paralon 4 inci yang dilubangi.

Namun, persoalan lain muncul. Ukuran pipa hanya 4 inci. Jika kita tempatkan sensor di ujung atas pipa lalu mengarahkan ke permukaan air yang ada dalam pipa maka pemantulan dapat dilakukan oleh dinding sisi dalam pipa yang jaraknya hanya beberapa centimeter dari sensor. Ini disebabkan karena “beam angle” dari gelombang ultrasonik yang dipancarkan HC-SR04 adalah 15 derajat. Hanya pipa ukuran sangat besar yang tidak memantulkan gelombang melalui dindingnya karena tidak terjangkau oleh ultrasonik. Jadi receiver tidak hanya menerima gelombang pantulan oleh permukaan air, tetapi juga oleh dinding pipa. Karena sinyal echo akan dihasilkan sejak pertama kali receiver menerima gelombang pantulan, maka jarak yang dicatat menjadi sangat dekat. Walaupun jarak permukaan air ke sensor sekitar 1 meter, damun jarak yang dicatat hanya belasan centimeter. Kondisi ini tentu tidak kita harapkan. Bagaimana mengakalinya?

Pertama saya coba menggunakan dua sensor. Satu sensor di ujung atas pipa dan satu sensor dipasang di ujung atas pelampung. Saya membuat pelampung seperti pada desain alat sebelumnya (http://profmikra.org/?p=405). Perbedaannya adalah, pada ujung pipa desain sebelumnya saya pasang bola konduktor. Namun, pada desain yang sekarang, saya pasang sensor. Jadi, ada dua sensor berhadap-hadapan. Caranya sebagai berikut:

  1. Pada sensor pertama, yang berada di ujung atas pipa (disambung ke Arduino), transmitter saya tutup dengan logam sehingga gelombang yang dihasilkan transmitter tersebut tidak dapat keluar.
  2. Pada sensor kedua yang berada di ujung pipa pelampung, receiver saya tutup dengan logam sehingga tidak dapat menerima gelombang.
  3. Trigger dua sensor disambung dan disambung ke satu kaki Arduino. Dengan demikian, ketika sinyal trigger diberikan maka dua sensor mendapat trigger secara bersamaan sehingga memancarkan ultrasonik secara bersamaan dalam arah berlawanan (saling menembakkan ultrasonik).
  4. Receiver pada ujung atas pipa (disambung ke Arduino) “kita bohongi”. Receiver tersebut tidak menangkap gelombang dari transmitter pasangannya, tetapi menangkap gelombang dari transmitter yang dipasang di ujung pelampung. Jadi, kita hanya menangkap gelombang langsung (bukan gelombang pantul) dari transmitter di ujung pelampung ke receiver di ujung atas pipa (tersambung ke Arduno).

Hasilnya? Gagal. Ternyata receiver harus menerima sinyal yang dipancarkan transmitter dari satu board agar menghasilkan pulsa echo. Walaupun dua sensor ditrigger dengan sinyal yang sama, namun saat diterime receiver, sinyal pantulan dari transmitter lain tidak dikenal.

Lalu, adakah cara lain?

Akhirnya saya coba menggunakan dua sensor di mana receiver dua sensor tersebut dikoneksi dua kakinya. Receiver pada sensor di ujung atas pipa (disambung dengan Ardunio) ditutup dengan logam sehingga tidak dapat menerima gelombang ultrasonik.

Sensor yang kedua dipasang di ujung pipa pelampung tanpa diberi catu daya. Kita hanya memanfaatkan receivernya. Supaya lebih rapi, sensor tersebut saya potong dua dan hanya mengambil bagian receiver saja. Gambar 4 adalah komponen yang dibuat. Dengan cara ini maka seolah-olah receiver sensor pertama saya pindahkan ke ujung atas pelampung. Dengan cara ini maka pengukuran berjalan dengan baik.

Gambar 4 Dua sensor dia mana salah satu dipotong untuk mendapatkan receiver.

Setelah masalah ini teratasi, kita mulai merancang rangkaian. Kita gunakan Arduino Uno untuk menjalankan sensor, menghitung jarak dan menyalakan lampu dan sirine. Untuk menyalakan lampu dan sirine, saya gunakan empat buah Relay seperti pad Gambar 5. Relay ini dapat kita beli di olshop.

Gambar 5 Relay untuk menyalakan lampu dan sirine.

Skema rangkaian Arduino, sensor, dan relay tampak pada Gambar 6. Dari skema tersebut, pin Arduino yang digunakan sebagai berikut:

  1. Pin D8 : menghidupkan relay sirine
  2. Pin D9: menghidupkan relay lampu biru
  3. Pin D10: menghidupkan relay lampu kuning
  4. Pin D11: menghidupkan relay lampu merah
  5. Pin D12: memberi trigger pada HC-SR04
  6. Pin D13: mendeteksi echo dari HC-SR04
Gambar 6 Skeman rangkaian.

Rangkaian yang dibuat dan dimasukkan dalam tutup paralon 3 inci tampak pada Gambar 7.

Gambar 7 Rangkaian yang dibuat

Yang kita deteksi bukan posisi permukaan air, tetapi jarak antara ujung atas pipa pelampung (tempat receiver) dan transmitter di ujung atas alat (posisi tetap). Skema lengkap alat tampak pada Gambar 8.

Gambar 8 Skema lengkap alat.

Jika permukaan air bertambah tinggi maka jarak transmitter ke receiver makin dekat. Jarak antara transmitter dan receiver tidak diukur sekali, tetapi diukur lima kali. Nilai rata-rata lima kali pengukuran tersebut yang diambil sebagai data pengukuran,

Kemudian level permukaan air kita bagi sebagai berikut.

  1. Jika jarak transmitter ke receiver > 100 cm maka nyalakan lampu biru
  2. Jika jarak transmitter ke receiver antara 75 cm – 100 cm maka nyalakan lampu kuning
  3. Jika jarak transmitter ke receiver antara 50 cm – 75 cm maka nyalakan lampu merah
  4. Jika jarak transmitter ke receiver kurang dari 50 cm maka nyalakan sirine.

Program yang diisikan ke dalam Ardunio untuk menjalankan sistem di atas sebagai berikut:

// **************************

// definisi nomor-nomor pin

const int trigPin = 12;

const int echoPin = 13;

const int lampuHijau = 9;

const int lampuKuning = 10;

const int lampuMerah = 11;

const int sirine = 8;

//

// definisi variabel-variabel

//

long durasi,rataJarak;

int jarak[5];

int i;

//

void setup() {

  // set up modus pin-pin

  //

   pinMode(trigPin, OUTPUT); // trigPin berfungsi sebagai Output

   pinMode(echoPin, INPUT); // echoPin berfungsi sebagai Input

   pinMode(lampuHijau, OUTPUT); // lampuHijau berfungsi sebagai Output

   pinMode(lampuKuning, OUTPUT); // lampuKuning berfungsi sebagai Output

   pinMode(lampuMerah, OUTPUT); // lampuMerah berfungsi sebagai Output

   pinMode(sirine, OUTPUT); // sirine berfungsi sebagai Output  

}

void loop()

{

//

// ukur jarak lima kali dalam selang waktu 5 derik dimulai dengan mengaktifkan trigger  

//

   delay(1000);

   for (i=1; i<= 5;i++)

   { 

      digitalWrite(trigPin, LOW);

      delayMicroseconds(2);

      digitalWrite(trigPin, HIGH);

      delayMicroseconds(10);

      digitalWrite(trigPin, LOW);

//

//    Baca echoPin dalam bentuk waktu tempuh dalam satuan microseconds

      durasi = pulseIn(echoPin, HIGH);

//

//    Hitung jarak ke-i

      jarak[i]= durasi*0.034;

      delay(3000);

   }

// Hitung jarak rata-rata

//

   rataJarak = (jarak[1]+jarak[2]+jarak[3]+jarak[4]+jarak[5])/5;

//

//   Pilih lampu atau sirine yang dinyalakan

//  

   if (rataJarak > 100) // Nyalakan lampu Hijau

   {

      digitalWrite(lampuHijau,HIGH);

      digitalWrite(lampuKuning,LOW);

      digitalWrite(lampuMerah,LOW);

      digitalWrite(sirine,LOW);

   }

   if (rataJarak <= 100 && rataJarak > 75) // Nyalakan lampu kuning

   {

      digitalWrite(lampuHijau,LOW);

      digitalWrite(lampuKuning,HIGH);

      digitalWrite(lampuMerah,LOW);

      digitalWrite(sirine,LOW);

   }

   if (rataJarak <= 75 && rataJarak > 50)  // Nyalakan lampu merah

   {

      digitalWrite(lampuHijau,LOW);

      digitalWrite(lampuKuning,LOW);

      digitalWrite(lampuMerah,HIGH);

      digitalWrite(sirine,LOW);

   }

   if (rataJarak < 50) // Nyalakan sirine

   {

      digitalWrite(lampuHijau,LOW);

      digitalWrite(lampuKuning,LOW);

      digitalWrite(lampuMerah,LOW);

      digitalWrite(sirine,HIGH);

   }

   delay(2000);

} // ***************************

Setelah semuanya siap, maka rangkaian dipasang ke dalam pipa yang memiliki diameter 3 inci. Pipa tersebut disampungkan ke pipa 4 inci yang di dalamnya terdapat pelampung. Rangkaian ada di ujung bagian atas pipa (lihat Gambar 8).

Pengujian

Supaya tidak menggangu tetangga, untuk sementara sirine saya ganti dengan lampu. Jadi kita menggunakan empat lampu: biru, kuning, merak, dan pijar.

Untuk mengubah ketinggian pelampung, saya menggunakan air dari keran. Selang dimasukkan pada salah satu lubang sedangkan semua lubang lainnya ditutup. Pengisin air ke dalam pipa sama dengan menaikkan tinggi permukaan air. Pengujian dilakukan di halaman rumah. Lampu saya pasang di pohon palem. Sistem elektronik dan pipa saya letakkan di dekatnya. Gambar 9 adalah pemasangan alat untuk pengetesan.

Gambar 9 Pengetesan alat di halaman rumah.

Hasil

Gambar 10 menunjukkan lampu biru menyala. Kondisi ini diperoleh saat air belum dimasukkan ke dalam pipa.

Gambar 11 menunjukkan lampu kuning menyala. Pelampung mulai naik ketika air dimasukkan dalam pipa.

Gambar 12 menunjukkan lampu merah menyala. Pelampung naik lebih tinggi lagi.

Gambar 13 menunjukkan lampu bohlam (sirine) menyala. Pelampung naik sangat tinggi lagi dan ketinggian permukaan air sudah sampai pada level bahaya.

Gambar 10 Lampu biru menyala.
Gambar 11 Lampu kuning menyala.
Gambar 12 Lampu merah menyala.
Gambar 13 Lampu bohlam (sirine) menyala.

Sumber gambar fitur: merdeka.com

Jika merasa bermanfaat, silakan share dan like:

49 thoughts on “Detektor Level Permukaan Air Sungai: Alat Sederhana Juga

  1. Pingback: ttdownloader
  2. Pingback: 柚 月 あい
  3. Pingback: bonanza178
  4. Pingback: buy iget cart
  5. Pingback: 20132 zip code
  6. Pingback: here
  7. Pingback: bandar togel
  8. Pingback: see here
  9. Pingback: poker-info.net
  10. Pingback: pgslot
  11. Pingback: สล็อต
  12. Pingback: super kaya 88
  13. Pingback: kaya 88
  14. Pingback: slotjili
  15. Pingback: Hunter898
  16. Pingback: Arcade Game

Leave a Reply