- Membuat Sistem Penanganan Banjir Otomatis Berbasis Mikrokontroler dengan menggunakan sensor rain, sensor ultrasonik, dan waterflow sensor.
- Mengetahui codingan pada program arduino
1. Arduino
Arduino merupakan sebuah perangkat elektronik yang bersifat open source dan sering digunakan untuk merancang dan membuat perangkat elektronik serta software yang mudah untuk digunakan. Arduino ini dirancang sedemikian rupa untuk mempermudah penggunaan perangkat elektronik di berbagai bidang.
Arduino ini memiliki beberapa komponen penting di dalamnya, seperti pin, mikrokontroler, dan konektor yang nanti akan dibahas lebih dalam selanjutnya. Selain itu, Arduino juga sudah menggunakan bahasa pemrograman Arduino Language yang sedikit mirip dengan bahasa pemrograman C++.
2. Potensiometer
Potensiometer adalah salah satu jenis resistor tiga terminal yang berfungsi untuk mengatur tegangan, arus dan resistensi listrik dalam sebuah rangkaian. Rangkaian potensiometer umumnya dibuat dengan menggunakan tiga komponen dasar, yakni elemen resistif, penyapu (wiper), dan terminal.Elemen resistif sendiri bentuknya dibuat menjadi jalur melingkar. Terbuat juga dari bahan yang sifatnya resistif, biasanya grafit, plastik partikel karbon, kawat resistansi.
Cara kerja potensiometer adalah dengan mengendalikan besar hambatan atau resistansi pada sebuah rangkaian elektronika. Semakin besar hambatan yang diterima, maka besar tegangan yang dikeluarkan semakin kecil. Begitu pun sebaliknya.
3. Resistor
Resistor merupakan komponen penting dan sering dijumpai dalam sirkuit Elektronik. Boleh dikatakan hampir setiap sirkuit Elektronik pasti ada Resistor. Tetapi banyak diantara kita yang bekerja di perusahaan perakitan Elektronik maupun yang menggunakan per an Elektronik tersebut tidak mengetahui cara membaca kode warna ataupun kode angka yang ada ditubuh Resistor itu sendiri.
4. Sensor Ultrasonik
Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik (bunyi ultrasonik).
5. LCD
LCD 16×2 (Liquid Crystal Display) merupakan modul penampil data yang mepergunakan kristal cair sebagai bahan untuk penampil data yang berupa tulisan maupun gambar.
Adapun fitur – fitur yang tersedia antara lain :
- Terdiri dari 16 kolom dan 2 baris
- Dilengkapi dengan back light
- Mempunyai 192 karakter tersimpan
- Dapat dialamati dengan mode 4-bit dan 8-bit
- Terdapat karakter generator terprogram
Sensor HL-83 adalah sensor yang peka terhadap air, ketika ada cairan yang mendekati PCB maka sensor ini dapat mendeteksinya.
7. LED
LED (Light Emitting Diode) adalah Sebuah lampu kecil yang digunakan sebagai penanda atau pointer. Light Emitting Diode adalah salah satu komponen elektronika yang terbuat dari bahan semi konduktor jenis dioda yang mempu mengeluarkan cahaya. Strukturnya juga sama dengan dioda, tetapi pada LED elektron menerjang sambungan P-N (Positif-Negatif). Untuk mendapatkan emisi cahaya pada semikonduktor, doping yang pakai adalah galium, arsenic dan phosporus. Jenis doping yang berbeda menghasilkan warna cahaya yang berbeda pula.
8. Baterai
Baterai (Battery) adalah sebuah alat yang dapat merubah energi kimia yang disimpannya menjadi energi Listrik yang dapat digunakan oleh suatu perangkat Elektronik. Hampir semua perangkat elektronik yang portabel seperti Handphone, Laptop, Senter, ataupun Remote Control menggunakan Baterai sebagai sumber listriknya. Dengan adanya Baterai, kita tidak perlu menyambungkan kabel listrik untuk dapat mengaktifkan perangkat elektronik kita sehingga dapat dengan mudah dibawa kemana-mana. Dalam kehidupan kita sehari-hari, kita dapat menemui dua jenis Baterai yaitu Baterai yang hanya dapat dipakai sekali saja (Single Use) dan Baterai yang dapat di isi ulang (Rechargeable).
9. Buzzer
10. Motor
Digunakan untuk output dari rangkaian dan berjalan jika sensor infrared berlogika 1
Grafik Motor DC :
11. Signal Generator
Generator sinyal adalah salah satu kelas perangkat elektronik yang menghasilkan sinyal listrik dengan sifat amplitudo, frekuensi, dan bentuk gelombang yang ditetapkan. Sinyal yang dihasilkan ini digunakan sebagai stimulus untuk pengukuran elektronik, biasanya digunakan dalam perancangan, pengujian, pemecahan masalah, dan perbaikan perangkat elektronik atau elektroakustik, meskipun seringkali juga memiliki kegunaan artistik
12. Driver L293D
IC L293D adalah IC yang didesain khusus sebagai driver motor DC dan dapat dikendalikan dengan rangkaian TTL maupun mikrokontroler. Motor DC yang dikontrol dengan driver IC L293D dapat dihubungkan ke ground maupun ke sumber tegangan positif karena di dalam driver L293D sistem driver yang digunakan adalah totem pool. Dalam 1 unit chip IC L293D terdiri dari 4 buah driver motor DC yang berdiri sendiri sendiri dengan kemampuan mengalirkan arus 1 Ampere tiap drivernya. Sehingga dapat digunakan untuk membuat driver H-bridge untuk 2 buah motor DC.
13. Waterflow Sensor
Water Flow sensor adalah sensor yang mempunyai fungsi sebagai penghitung debit air yang mengalir yang dimana terjadi pergerakan motor yang akan dikonversi kedalam nilai satuan Liter. Sensor ini terdiri dari beberapa bagian yaitu katup plastik, rotor air, dan sensor hall efek.
Motor yang ada di module akan bergerak dengan kecepatan yang berubah-ubah sesuai dengan kecepatan aliran air yang mengalir.
Sedangkan pada sensor hall efek yang terdapat pada sensor ini akan membaca sinyal yang berupa tegangan yang diubah menjadi pulsa dan dikirim ke mikrokontroler dalam hal ini Arduino Uno dan diolah sebagai data laju akan debit air yang mengalir.
1. Sensor Rain
Rain sensor merupakan sensor yang berfungsi untuk mendeteksi hujan turun atau tidak. Intinya sensor ini jika terkena air pada papan sensornya maka resistansinya akan berubah, semakin banyak semakin kecil dan sebaliknya. Untuk pengaplikasiannya sensor ini dapat digunakan untuk jemuran otomatis jadi ketika hujan turun sensor mendeteksi dan akan memberikan peringatan atau untuk tambahan dapat digunakan penutup yang dapat melindungi jemuran pada saat hujan. Untuk jenisnya di pasaran terdapat FC-37 dan YL-83.
GRAFIK RESPON RAIN SENSOR
Prinsip kerja sensor ini yaitu pada saat ada air hujan turun dan mengenai panel sensor maka akan terjadi proses elektrolisasi oleh air hujan. Dan karena air hujan termasuk dalam golongan cairan elektrolit yang dimana cairan tersebut akan menghantarkan arus listrik.
Berdasarkan grafik di atas kita tahu bahwa semakin banyak intensitas hujan maka semakin kecil resistansi yang dihasilkan.
2. Sensor Ultrasonik
Sensor ultrasonik bekerja berdasarkan pada prinsip pantulan suatu gelombang bunyi sehingga gelombang pantul tersebut dapat digunakan untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut dengan sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik dalam pengoperasiannya.Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut:
- Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi tertentu dan dengan durasi waktu tertentu. Sinyal tersebut berfrekuensi diatas 20kHz. Untuk mengukur jarak benda (sensor jarak), frekuensi yang umum digunakan adalah 40kHz.
- Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi dengan kecepatan sekitar 340 m/s. Ketika menumbuk suatu benda, maka sinyal tersebut akan dipantulkan oleh benda tersebut.
- Setelah gelombang pantulan sampai di alat penerima, maka sinyal tersebut akan diproses untuk menghitung jarak benda tersebut. Jarak benda dihitung berdasarkan rumus :
S = 340.t/2
Grafik sensor ultrasonik terhadap jarak:
3. Waterflow sensor
Water Flow sensor adalah sensor yang mempunyai fungsi sebagai penghitung debit air yang mengalir yang dimana terjadi pergerakan motor yang akan dikonversi kedalam nilai satuan Liter. Sensor ini terdiri dari beberapa bagian yaitu katup plastik, rotor air, dan sensor hall efek.
A. Prosedur [Kembali]
1) Download library yang diperlukan (dapat dilihat pada bagian download dalam blog) 2) Buka proteus yang sudah diinstal untuk membuat rangkaian.3) Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.4) Buka Arduino IDE yang sudah diinstal.5) Di Arduino IDE, pergi ke menu "File" > "Preferences".6) Pastikan opsi "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.7) Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.8) Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.9) Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.10) Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.11) Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.l2) Jalankan simulasi di Proteus
B. Hardware dan Diagram Blok [Kembali]
C. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Prinsip Kerja
Arduino akan memproses data dari semua sensor tersebut. Jika ketinggian air mencapai batas tertentu, atau jika terjadi hujan dengan intensitas tertentu, atau jika debit air mencapai batas tertentu, maka Arduino akan memberikan perintah kepada motor servo untuk membuka pintu.
Pintu yang dibuka dapat berupa pintu air, pintu penyelamatan, atau pintu lainnya yang diperlukan. Pembukaan pintu ini akan membantu mengurangi dampak banjir.
- Sensor ultrasonik akan terus mengukur ketinggian air. Data ketinggian air ini akan dikirimkan ke Arduino dalam bentuk sinyal digital. Arduino akan memproses data ini dan membandingkannya dengan batas ketinggian air yang telah ditentukan. Pada kasus ini dikondisikan dalam 2 kategori, yaitu kategori aman yaitu <55c m dan siaga >=55 cm.
- Sensor hujan akan terus mendeteksi hujan. Data intensitas hujan ini akan dikirimkan ke Arduino dalam bentuk sinyal digital. Arduino akan memproses data ini dan membandingkannya dengan batas intensitas hujan yang telah ditentukan. Jika intensitas hujan mencapai batas tersebut, maka Arduino akan memberikan perintah kepada motor servo untuk membuka pintu.
- Sensor water flow akan terus mengukur debit air. Data debit air ini akan dikirimkan ke Arduino dalam bentuk sinyal digital. Arduino akan memproses data ini dan membandingkannya dengan batas debit air yang telah ditentukan. data ini akan ditampilkan pada LCD
- Sensor vibration akan terus mendeteksi getaran/gempa. Data amplitudo getaran/gempa ini akan dikirimkan ke Arduino dalam bentuk sinyal digital. Arduino akan memproses data ini dan membandingkannya dengan batas amplitudo getaran/gempa yang telah ditentukan. Jika amplitudo getaran/gempa mencapai batas tersebut maka buzzer/speaker akan berbunyi.
- Sound sensor akan terus mendeteksi buzzer yang berbunyi. Data amplitudo suara ini akan dikirimkan ke Arduino dalam bentuk sinyal digital. Arduino akan memproses data ini dan membandingkannya dengan batas amplitudo suara yang telah ditentukan. Jika amplitudo suara mencapai batas tersebut, maka Arduino akan memberikan perintah kepada motor servo untuk membuka pintu pada ruang kontrol.
D. Flowchart dan Listing Program [Kembali]
a). Flowchart
b). Listing Program
#include <LiquidCrystal.h>
int water = 3;int trigpin = 13;int echopin = 12;int led1 = 10; int led2 = 9; int led3 = 8; int Vs = 7;int buz = 6; int Ss = 5;int mot = 4; int val; long duration;int distance; float vol = 0.0,l_minute;unsigned char flowsensor = 2; // Sensor Inputunsigned long currentTime; //unsigned long cloopTime; //unsigned long flow_frequency; //LiquidCrystal lcd(9, 2, A0, A1, A2, A3); //
void flow () // Interrupt function to increment flow{ flow_frequency++;}
void setup() {
Serial.begin(9600); pinMode(flowsensor, INPUT);// digitalWrite(flowsensor, HIGH); // Optional Internal Pull-Up // attachInterrupt(digitalPinToInterrupt(flowsensor), flow, RISING); // pinMode(water,INPUT); // pinMode(trigpin, OUTPUT); pinMode(echopin, INPUT); pinMode(Vs, INPUT); pinMode(Ss, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(buz, OUTPUT); pinMode(mot, OUTPUT);
lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0,0); lcd.print("Water FlowMeter"); lcd.setCursor(0,1); lcd.print(" sensing... "); delay(500); currentTime = millis(); cloopTime = currentTime;}
void loop() {
digitalWrite(trigpin, LOW); delayMicroseconds(2); // Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigpin, HIGH); delayMicroseconds(10); digitalWrite(trigpin, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds duration = pulseIn(echopin, HIGH); // Calculating the distance distance = duration * 0.0034 / 2; // Prints the distance on the Serial Monitor Serial.print("Distance: "); Serial.println(distance);
int val = digitalRead(water);
currentTime = millis(); // Every second, calculate and print litres/hour if(currentTime >= (cloopTime + 1000)) { cloopTime = currentTime; // Updates cloopTime if(flow_frequency != 0) { l_minute = (flow_frequency / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour lcd.clear(); lcd.setCursor(0,0); lcd.print("Rate: "); lcd.print(flow_frequency); lcd.print(" m^3/s"); l_minute = l_minute/60; lcd.setCursor(0,1); vol = vol +l_minute; lcd.print("Vol:"); lcd.print(vol); lcd.print(" L"); flow_frequency = 0; // Reset Counter Serial.print(l_minute, DEC); // Print litres/hour Serial.println(" L/Sec"); } else { Serial.println(" flow rate = 0 "); lcd.clear(); lcd.setCursor(0,0); lcd.print("Rate: "); lcd.print( flow_frequency ); lcd.print(" m^3/s"); lcd.setCursor(0,1); lcd.print("Vol:"); lcd.print(vol); lcd.print(" L"); } }
if (distance <= 100 && distance > 75 ) { // check if the sensor is HIGH digitalWrite(led1, HIGH); // turn LED OFF digitalWrite(led2, LOW); // turn LED OFF digitalWrite(led3, LOW); // turn LED OFF
} else if (distance <= 75 && distance > 50 ) { digitalWrite(led1, LOW); // turn LED OFF digitalWrite(led2, HIGH); // turn LED OFF digitalWrite(led3, LOW); // turn LED OFF
} else if (distance < 50 ) { digitalWrite(led1, LOW); // turn LED OFF digitalWrite(led2, LOW); // turn LED OFF digitalWrite(led3, HIGH); // turn LED OFF } // Touch Sensor int VValue = digitalRead(Vs); if (VValue == HIGH) { digitalWrite(buz, HIGH); } else { digitalWrite(buz, LOW); } int SValue = digitalRead(Ss); if (SValue == HIGH) { digitalWrite(mot, HIGH); } else { digitalWrite(mot, LOW); }}
E. Kondisi [Kembali]
F. Video Simulasi [Kembali]
G. Download File [Kembali]
- Download File HTML klik disini
- Download Rangkaian klik disini.
- Download Rangkaian Visual Designer dan Flowchart klik disini.
- Download Program Arduino klik disini.
- Download Video Simulasi klik disini
- Download File Library Semua Sensor yang digunakan klik disini.
- Download File Library Rain sensor klik disini
- Download Data Sheet Arduino : klik disini
- Download Data Sheet Resistor klik disini.
- Download Data Sheet Dioda klik disini.
- Download Data Sheet Relay klik disini.
- Download Data Sheet LED klik disini.
- Download Data Sheet Motor DC klik disini
- Download Data Sheet Rain Sensor klik disini.
- Download Data Sheet LCD klik disini.
0 komentar:
Posting Komentar