Di musim penghujan seperti sekarang ini, tak sedikit orang memiliki masalah mengenai pakaian yang tak kunjung kering. Penyebabnya antara lain karena pakaian yang sedang dijemur kehujanan sehingga kembali basah. Hal ini seringkali dialami oleh orang-orang yang memiliki kesibukan tinggi dan pelupa seperti orang kantoran dan anak kos. Untuk mengatasi hal tersebut, kami memiliki ide membuat sebuah jemuran otomatis yang dapat menarik tali jemuran secara otomatis jika terjadi hujan atau cuaca mulai gelap. Berhubung masih dalam penelitian, kami membuat prototypenya terlebih dahulu.
Adapun sensor yang digunakan pada Prototype Smart Clothesline yaitu sensor hujan dan sensor ldr. Sensor hujan adalah jenis sensor yang berfungsi untuk mendeteksi adanya hujan atau tidak. Prinsip kerja dari module sensor ini yaitu pada saat ada air hujan turun dan mengenai panel sensor maka akan terjadi proses elektrolisasi oleh air hujan. Terdapat ic komparator yang dimana output dari sensor ini dapat berupa logika high dan low (ON atau OFF) maupun tegangan sehingga dapat dikoneksikan ke pin khusus Arduino yaitu Analog Digital Converter. Sensor LDR (Light Dependent Resistor) adalah jenis sensor berupa resistor dimana nilai resistansinya dipengaruhi oleh intensitas cahaya.. Besarnya nilai hambatan pada sensor LDR bergantung pada besar kecilnya cahaya yang diterima oleh LDR itu sendiri. Pada saat kondisi terang nilai resistansi LDR akan menurun sedangkan pada saat kondisi gelap nilai resistansinya akan menjadi tinggi.
Kedua sensor tersebut berfungsi sebagai inputan untuk mengendalikan motor stepper. Motor stepper digunakan sebagai penarik tali jemuran yang dikendalikan melalui sebuah driver motor yaitu L298N. Driver motor L298N merupakan driver motor yang paling populer digunakan untuk mengontrol kecepatan dan arah pergerakan motor. Pada prinsipnya rangkaian driver motor L298N ini dapat mengatur tegangan dan arus sehingga kecepatan dan arah motor dapat diatur. Berikut merupakan konfigurasi pin dari driver motor L298N :
Prinsip Kerja Prototype Smart Clothesline
Secara umum prinsip kerja dari alat ini adalah sensor hujan dan sensor LDR akan mendeteksi kondisi cuaca yang ada. Data yang diperoleh oleh sensor selanjutnya dikirimkan ke mikrokontroller yang digunakan yaitu Arduino Uno untuk diolah kemudian dikirim menuju motor stepper untuk menggerakkan rel jemuran yang terhubung dengan tali jemuran dan motor berhenti berputar. Terdapat beberapa kondisi diantaranya :
- Terang dan tidak hujan
Pada kondisi ini jemuran akan tertarik ke luar ruangan sehingga terkena cahaya. Matahari (terjemur).
- Terang dan hujan
Pada kondisi ini sensor hujan akan mendeteksi terjadinya hujan sehingga jemuran akan tertarik menuju tempat yang teduh.
- Gelap tapi tidak hujan
Pada kondisi ini sensor LDR akan mendeteksi cuaca mendung atau gelap (malam hari) sehingga jemuran akan tertarik menuju tempat yang teduh.
- Gelap dan hujan
Pada kondisi ini sudah jelas bahwa jemuran akan tertarik ke dalam menjauhi ruang terbuka yang terkena hujan.
Dalam hal ini, karena keterbatasan waktu, kami menggunakan delay untuk mengatur waktu motor stepper berputar dan nilai PWM untuk mengatur kecepatan motor melalui program yang dibuat. Sebenarnya hal ini kurang efektif karena posisi awal jemuran terkadang tidak stabil sehingga mempengaruhi posisi tarikan jemuran. Untuk itu, seharusnya digunakaan encoder untuk menentukan posisi awal jemuran sehingga posisinya dapat stabil dan jemuran akan benar-benar aman jika terjadi hujan dan terjemur jika kondisi cerah.
Alat dan Bahan Prototype Smart Clothesline
- Sensor LDR
- Sensor Hujan
- Arduino Uno
- Motor Stepper
- Driver Motor L298N
- Baterai 12 Volt
- PCB
- Kabel Jumper
- Pipa PVC
- Kardus/ karton
- Rol (2)
- Benang
- Stick
Program Prototype Smart Clothesline
#include <Wire.h> #define LIMIT_LDR 100 // nilai batas intensitas cahaya pada LDR, rendah berarti terang #define LIMIT_RAIN 1000 // nilai batas air pada sensor, tinggi berarti tidak hujan #define LIMIT_MOTOR 25 // nilai batas waktu putaran motor #define LIMIT_SPEED 10 // nilai kecepatan motor byte hold1 = 0; // tahan putaran motor jemur byte hold2 = 0; // tahan putaran motor balik byte Stop = 0; const byte en1 = 2; const byte en2 = 3; const byte speedMotor = 9; void jemur(); void kembali(); void berhenti(); void setup() { Serial.begin(9600); pinMode(A0, INPUT_PULLUP); pinMode(A2, INPUT_PULLUP); pinMode(2, OUTPUT); pinMode(3, OUTPUT); } void loop() { int s_ldr = analogRead(A0); Serial.print("nilai ldr : "); Serial.println(s_ldr); int s_rain = analogRead(A2); Serial.print("nilai hujan : "); Serial.println(s_rain); if ( s_ldr < LIMIT_LDR && s_rain > LIMIT_RAIN) { // TERANG dan TIDAK HUJAN Serial.print("terang"); if ( hold1 == 0) { Serial.print("menjemur"); jemur(); } if ( Stop == 1) { Serial.print("stop njemur"); } } else { if (hold2 == 0 && Stop == 0) { kembali(); } if ( s_ldr > LIMIT_LDR || s_rain < LIMIT_RAIN) { // GELAP ATAU HUJAN Serial.print("gelap"); if ( hold2 == 0) { kembali(); } if ( Stop == 1) { } } delay(200); } } void jemur() { Stop = 0; Serial.print("putar kanan"); for ( int i = 0; i < LIMIT_MOTOR; i++) { analogWrite(speedMotor, LIMIT_SPEED); digitalWrite(en1, LOW); analogWrite(en2, 125); delay(50); if ( i == LIMIT_MOTOR - 1) { hold1 = 1; hold2 = 0; berhenti(); } } } void kembali() { Stop = 0; Serial.print("putar kiri"); for ( int i = 0; i < LIMIT_MOTOR; i++) { analogWrite(speedMotor, LIMIT_SPEED); digitalWrite(en1, HIGH); analogWrite(en2, 255 - 125); delay(50); if ( i == LIMIT_MOTOR - 1) { hold1 = 0; hold2 = 1; berhenti(); } } } void berhenti() { analogWrite(speedMotor, 0); digitalWrite(en1, LOW); analogWrite(en2, 0); Stop = 1; delay(1000); }
Recent Comments