Rabu, 21 November 2012

Alat Pendeteksi Ketinggian Air + Alarm Banjir

Berikut adalah ide kami bertiga yang prihatin dengan musibah banjir di Indonesia. Kami ingin membantu warga dalam mendeteksi banjir sehingga meminimalisir dampak yang terjadi. Dengan menggunakan arduino kami membuat alat tersebut.

Cara Kerja:
Alat ini menggunakan sensor ultrasonik sebagai pendeteksi dari benda dengan cara pemantulan suara oleh transmiter dan di tangkap leh receiver. Respon itu di eksekusi oleh arduino sebagai komponen mikrokontroler sederhana atau bisa di katakan sebagai otak dari sistem alat ini. Dalam program Arduino dapat menampilkan Output sesuai keinginan kita, sesuai program yang kita buat. Output dari sistem kerja ini, berupa display dari LCD 16x2 dan action dari Lampu LED dan Buzzer. Buzzer dan Lampu LED ini aktif jika nilai dari ketinggian yang di tangkap oleh sensor terpenuhi.
Berikut komponen-komponen yang dibutuhkan :
- Sensor Ultrasonik Ping
- LCD 16x2
- Arduino
- LED
- Buzzer


Setelah mendapatkan komponen tersebut, kita hanya perlu menghubungkannya satu persatu sesuai dengan gambar dibawah ini.
Berikut Videonya :
Video Rakitan di Protoboard
Video Simulasi

16 komentar:

  1. Diharapkan alat ini bisa digunakan tanpa perlu komputer lagi. Untuk itu, perlu ditambahkan sebuah alat (potensio atau tombol naik&turun) untuk mengatur batas maksimum ketinggian air secara fleksibel (sesuai keinginan), yang hasilnya ditampilkan di LCD. Jadi ketika sensor mendeteksi ketinggian air yang lebih dari batas maksimum yang ditampilkan di LCD, maka seharusnya buzzer berbunyi. Jadi LCD harus menampilkan 2 buah nilai, yaitu nilai ketinggian yang dibaca oleh sensor dan nilai batas maksimum ketinggian.

    BalasHapus
  2. ane bisa mnta code program di arduino nya ga gan.. untuk mengukur ketinggian air dengan ultrasonic ping

    BalasHapus
  3. mas knapa pakai komputer alatnya

    BalasHapus
  4. Boleh minta rincian harganya?

    BalasHapus
  5. boleh minta coding arduinonya untuk alat pendeteksi banjirnya, kak?

    BalasHapus
  6. bang boleh minta rangkaian ISIS nya ?

    BalasHapus
  7. boleh minta codingannya engga? makasiih

    BalasHapus
  8. Bolem mnta kodingnya gk om buat tugas akhir saya please ariidrianto@gmail.com

    BalasHapus
  9. gan mnta kodingnya om please ariidrianto@gmail.com

    BalasHapus
  10. Mas Bisa minta source codenya ga? buat tugas kuliah. nama agan nanti tak cantumin di skripsi . kirim ke eky.riyadani@students.unnes.ac.id
    makasih

    BalasHapus
  11. Balasan
    1. ‌#include

      LiquidCrystal lcd(3,4,5,6,7,8);

      #define TH1 45
      #define TH2 95
      #define TH3 200
      #define TH4 400
      #define TH5 600

      #define CONV_FACTOR 0.00812

      int ledArray [] = {10,11,12,13,9};
      int geiger_input = 2;
      long count = 0;
      long countPerMinute = 0;
      long timePrevious = 0;
      long timePreviousMeassure = 0;
      long time = 0;
      long countPrevious = 0;
      float radiationValue = 0.0;

      void setup(){
      pinMode(geiger_input, INPUT);
      digitalWrite(geiger_input,HIGH);
      for (int i=0;i<5;i++){
      pinMode(ledArray[i],OUTPUT);
      }

      Serial.begin(19200);

      lcd.begin(16, 2);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Radiation Sensor");
      lcd.setCursor(0,1);
      lcd.print("Board - Arduino");
      delay(1000);

      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Program percobaan");
      delay(1000);

      lcd.clear();
      lcd.setCursor(0,1);
      lcd.print("Radiasi nuklir");
      delay(500);
      for (int i=0;i<5;i++){
      delay(200);
      lcd.scrollDisplayLeft();
      }
      delay(500);

      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print(" - Libelium -");
      lcd.setCursor(0,1);
      lcd.print("www.libelium.com");
      delay(1000);

      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("CPM=");
      lcd.setCursor(4,0);
      lcd.print(6*count);
      lcd.setCursor(0,1);
      lcd.print(radiationValue);

      attachInterrupt(0,countPulse,FALLING);
      }

      void loop(){
      if (millis()-timePreviousMeassure > 10000){
      countPerMinute = 6*count;
      radiationValue = countPerMinute * CONV_FACTOR;
      timePreviousMeassure = millis();
      Serial.print("cpm = ");
      Serial.print(countPerMinute,DEC);
      Serial.print(" - ");
      Serial.print("uSv/h = ");
      Serial.println(radiationValue,4);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("CPM=");
      lcd.setCursor(4,0);
      lcd.print(countPerMinute);
      lcd.setCursor(0,1);
      lcd.print(radiationValue,4);
      lcd.setCursor(6,1);
      lcd.print(" uSv/h");

      if(countPerMinute <= TH1) ledVar(0);
      if((countPerMinute <= TH2)&&(countPerMinute>TH1)) ledVar(1);
      if((countPerMinute <= TH3)&&(countPerMinute>TH2)) ledVar(2);
      if((countPerMinute <= TH4)&&(countPerMinute>TH3)) ledVar(3);
      if((countPerMinute <= TH5)&&(countPerMinute>TH4)) ledVar(4);
      if(countPerMinute>TH5) ledVar(5);

      count = 0;
      }
      }

      void countPulse(){
      detachInterrupt(0);
      count++;
      while(digitalRead(2)==0){
      }
      attachInterrupt(0,countPulse,FALLING);
      }

      void ledVar(int value){
      if (value > 0){
      for(int i=0;i<=value;i++){
      digitalWrite(ledArray[i],HIGH);
      }
      for(int i=5;i>value;i--){
      digitalWrite(ledArray[i],LOW);
      }
      }
      else {
      for(int i=5;i>=0;i--){
      digitalWrite(ledArray[i],LOW);
      }
      }
      }

      Hapus
  12. Gan Ada produk siap pakainya gan
    Kalau Ada boleh rekomendasikan ke Saya utk di implememtasikan real,

    Contact Saya :
    tony.panjaitan@gmail.com
    WA. 081210030365

    BalasHapus