Membuat Alat Pendeteksi Hujan Berbasis Arduino dan Rain Sensor
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 :
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