Senin, 09 Oktober 2017

Arduino pendeteksi hujan

Membuat Alat Pendeteksi Hujan Berbasis Arduino dan Rain Sensor

img_20161217_232042

Assalamualaikum.
Salam Sejahtera Untuk Kita Semua Sobat …

Akhir-akhir ini memang sudah memasuki musim hujan. Nah repotnya kalau hujan turun mendadak. Misalnya sedang njemur baju, eh mendadak hujan turun, wah berabe deh hehehe 😀 . Nah pada tutorial kali ini, NP akan share bagaimana cara membuat alat untuk mendeteksi hujan. Monggo disimak sob 😀 .


Komponen yang perlu kita persiapkan yakni :

  • 1 buah Arduino (bisa UNO, MINI, NANO, MEGA, dll, bisa didapat Di Sini)
  • 1 buah LCD 16×2 (Bisa didapat Di Sini)
  • 1 buah Potensio 10K
  • 1 buah Rain Sensor/Sensor Hujan (Bisa didapat Di Sini)
  • Software Arduino IDE (Jika belum punya, maka download Di Sini)
  • Library LiquidCrystal.h (Jika belum punya, bisa download Di Sini)
  • Dan cara menambah library Arduino bisa dibaca Di Sini
  • 1 buah Buzzer
  • Kabel jumper secukupnya


Lalu silahkan dirangkai sesuai dengan skema berikut ini :

sensor-hujan_bb

Keterangan Rangkaian :

  • Bisa Menggunakan Segala Jenis Arduino (UNO, NANO, MEGA, MINI, dll), Tinggal cocokkan Saja Pin-Pin nya.

  • Kaki RS LCD ===> pin 2 Arduino

  • Kaki E LCD ===> pin 3 Arduino

  • Kaki D1 LCD ===> pin 4 Arduino

  • Kaki D2 LCD ===> pin 5 Arduino

  • Kaki D3 LCD ===> pin 6 Arduino

  • Kaki D4 LCD ===> pin 7 Arduino

  • Kaki RW LCD ===> GND (Ground)

  • Kaki VO LCD ===> Output Potensio

  • Pin Outpun Rain Sensor ===> Pin A5 Arduino

  • Pin Positif Buzzer ===> Pin 8 Arduino



Setelah itu, silahkan upload program seperti di bawah ini pada software Arduino IDE milik sobat :

/* -------------- ALAT PENDETEKSI HUJAN ----------------- */
/* ----------- Dibuat oleh : M. Nofgi Y.P.U.------------ */
/* ----------- www.nofgipiston.wordpress.com ----------- */
/* ----------- NF-308 SHOP, Arduino Workshop ----------- */

//Pemanggilan librai LCD
#include <LiquidCrystal.h>

//Inialisasi pin lcd
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
//Inialisasi pin sensor hujan
const int pinHujan = A5;
//Inialisasi pin buzzer
const int pinBuzzer = 8;
//Deklarasi variable data pembacaan sensor hujan
int data;

void setup()
{
 //Inialisasi jumlah baris dan kolom lcd
 lcd.begin(16, 2);
 //Inialisasi status I/O
 pinMode(pinHujan, INPUT);
 pinMode(pinBuzzer, OUTPUT);
 //Menghapus tulisan lcd
 lcd.clear();
 //Menuliskan kata pada lcd
 lcd.setCursor(0, 0);
 lcd.print("Alateteksi");
 lcd.setCursor(0, 1);
 lcd.print("Hujan.");
 delay(3000);
}

void loop()
{
 //Variabel data adalah hasil pembacaan pin sensor hujan
 data = analogRead(pinHujan);

//Range output sensor berkisar 0 sampai 1023
 //Hujan terdeteksi
 //Saat output sensor berniali <= 500
 if (data <= 500)
 {
 //Alarm dibunyikan
 digitalWrite(pinBuzzer, HIGH);
 delay(500);
 digitalWrite(pinBuzzer, LOW);
 delay(500);

//Menulis pada lcd bahwa hujan telah turun
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Waspada
 lcd.setCursor(0, 1);
 lcd.print("Hujann ... !");
 }

//Jika hujan tidak terdeteksi atau nilai data di atas 500
 else
 {
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Hujan
 lcd.setCursor(0, 1);
 lcd.print("Belumn ...");
 delay(300);
 }
}



Dan berikut ini adalah video demonstrasinya di channel Youtube saya :



Sedikit penjelasan dari program di atas yakni :

//Range output sensor berkisar 0 sampai 1023
 //Hujan terdeteksi
 //Saat output sensor berniali <= 500
 if (data <= 500)
 {
 //Alarm dibunyikan
 digitalWrite(pinBuzzer, HIGH);
 delay(500);
 digitalWrite(pinBuzzer, LOW);
 delay(500);

//Menulis pada lcd bahwa hujan telah turun
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Waspada
 lcd.setCursor(0, 1);
 lcd.print("Hujann ... !");
 }

//Jika hujan tidak terdeteksi atau nilai data di atas 500
 else
 {
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Hujan
 lcd.setCursor(0, 1);
 lcd.print("Belumn ...");
 delay(300);
 }
}

Alat ini bertugas untuk mengingatkan kita kala hujan mulai turun. Jadi semisal hujan mulai turun berupa gerimis rintik-rintik, maka air akan mengenai permukaan sensor dan alarm berupa buzzer pun akan berbunyi sebagai pengingatnya.
Mirip saat kita “Mencoding” program untuk mendeteksi ketinggian air, program kali ini juga bermaksud untuk membaca tegangan analog dari output sensor. Tegangan ini sudah disetting oleh pabrikan sensor yaitu berkisar antara 0v – 5v. Nah data ini akan dicacah oleh Arduino menjadi 1024 bagian, yakni mulai dari 0 sampai dengan 1023.
Nah sifat dari sensor ini yakni ada dua output, yang satu tipe digital (HIGH-LOW), dan yang satunya lagi bertipe analog (0-1023). Nah kali ini yang NP pakai adalah yang tipe analog. Dalam tipe data analog, semakin banyak air yang jatuh di atas sensor, maka nilai output data nya akan semakin kecil.
Pada program yang NP buat ini, NP setting agar alarm berupa buzzer tersebut menyala saat nilai data analog lebih kecil atau sama dengan 500 (<= 500). Jadi saat ada tetesan air yang menetes di atas sensor, maka alarm pun berbunyi.
Nah kita bisa mensetting sensitifitas dari sensor ini lewat program di atas. Bisa saja nilai <=500 nya sobat ganti semisal dengan <=900. Nah saat sensor disetting sedemikian rupa, maka sensor akan semakin sensitif oleh tetesan air. Makin tinggi nilai yang diatur, maka makin sensitif pula pembacaan sensor terhadap tetesan air, demikian pula sebaliknya.

Nah demikianlah tutorial singkat tentang bagaimana cara membuat alat untuk mendeteksi hujan berbasis Arduino.
Jika ada yang kurang jelas ataupun kurang faham, silahkan ditanyakan lewat komentar sob … 😀 .
Salam Teknologi … Salam Arduino … 🙂 .
Wassalamualaikum.

Tidak ada komentar:

Posting Komentar