Senin, 14 Januari 2019

Jemuran Otomatis Berbasis Arduino Uno R3 dengan Menggunakan Tenaga Matahari


Kali ini saya akan berbagi mengenai Jemuran Otomatis Berbasis Arduino Uno R3 dengan Menggunakan Tenaga Matahari. Menjemur pakaian merupakan kegiatan rutin yang dilakukan oleh banyak orang.

Namun, sering kali pemilik tidak sempat untuk mengangkat jemuran pada waktu akan turun hujan ataupun hari sudah malam yang dikarenakan pemilik sedang tidak berada di rumah. Untuk mengatasi masalah tersebut perlu adanya sistem kontrol otomatis dengan cara membuat sistem jemuran otomatis.

Dengan menggunakaan sensor cahaya LDR (Light Dependent Resistor) untuk menentukan kondisi cahaya di luar rumah, sensor hujan untuk mendeteksi keadaan hujan diluar rumah dan menggunakan motor DC untuk menggerakkan tali jemuran. Perancangan alat ini menggunakan Arduino untuk membentuk suatu Interface (antarmuka) antar sistem sehingga membentuk integrasi system antara sensor sebagai penerima kondisi dengan motor DC sebagai aktuator.

Untuk sumber tegangan menggunakan Solar Panel agar bisa selalu berjalan dan berfungsi dengan baik meskipun listrik dari sumber PLN sedang mati. Kondisi cuaca di Indonesia yang tidak menentu saat ini menjadikan perancangan sistem jemuran otomatis sangat dimungkinkan untuk digunakan.

Kebutuhan Hardware :
1. Module Arduino Uno R3
2. Module Sensor Hujan
3. Module Sensor Cahaya
4. Limit Switch
5. Module Relay 2 Channel
6. Solar Panel
7. Solar Charger Controller
8. Battery

Berikut ini adalah gambar Schematicnya :



Setelah semua terkoneksi dengan baik, silahkan Upload Sketch Dibawah ini :

    /***************************
    Program Arduino Jemuran Otomatis Berbasis Arduino Uno


    Copyright @2018

    ****************************/
    const int Sensor_Cahaya = 13;
    const int Sensor_Hujan = 12;
    const int LS_1 = 11;
    const int LS_2 = 10;
    const int Motor_1 = 9;
    const int Motor_2 = 8;

    void setup()
    {
      pinMode(Sensor_Cahaya,INPUT);
      pinMode(Sensor_Hujan,INPUT);
      pinMode(LS_1,INPUT);
      pinMode(LS_2,INPUT);
      pinMode(Motor_1,OUTPUT);
      pinMode(Motor_2,OUTPUT);
    }

    void loop()
    {
      int LDR = digitalRead(Sensor_Cahaya);
      int SH = digitalRead(Sensor_Hujan);
      int LS1 = digitalRead(LS_1);
      int LS2 = digitalRead(LS_2);

    // Kondisi Saat Siang Hari dan Tidak Hujan

      if (LDR == HIGH && SH == HIGH && LS1 == LOW && LS2 == HIGH)
      {
        digitalWrite(Motor_1,HIGH);
        digitalWrite(Motor_2,HIGH);
      }
      else if (LDR == HIGH && SH == HIGH && LS1 == LOW && LS2 == LOW)
      {
        digitalWrite(Motor_1,HIGH);
        digitalWrite(Motor_2,LOW);
      }
      else if (LDR == HIGH && SH == HIGH && LS1 == HIGH && LS2 == LOW)
      {
        digitalWrite(Motor_1,HIGH);
        digitalWrite(Motor_2,LOW);
      }

    // Kondisi Saat Siang Hari dan Hujan

      else if (LDR == HIGH && SH == LOW && LS1 == LOW && LS2 == HIGH)
      {
        digitalWrite(Motor_1,LOW);
        digitalWrite(Motor_2,HIGH);
      }
      else if (LDR == HIGH && SH == LOW && LS1 == LOW && LS2 == LOW)
      {
        digitalWrite(Motor_1,LOW);
        digitalWrite(Motor_2,HIGH);
      }
      else if (LDR == HIGH && SH == LOW && LS1 == HIGH && LS2 == LOW)
      {
        digitalWrite(Motor_1,HIGH);
        digitalWrite(Motor_2,HIGH);
      }

    // Kondisi Saat Malam Hari dan Tidak Hujan

      else if (LDR == LOW && SH == HIGH && LS1 == HIGH && LS2 == LOW)
      {
        digitalWrite(Motor_1,HIGH);
        digitalWrite(Motor_2,HIGH);
      }
      else if (LDR == LOW && SH == HIGH && LS1 == LOW && LS2 == HIGH)
      {
        digitalWrite(Motor_1,LOW);
        digitalWrite(Motor_2,HIGH);
      }
      else if (LDR == LOW && SH == HIGH && LS1 == LOW && LS2 == LOW)
      {
        digitalWrite(Motor_1,LOW);
        digitalWrite(Motor_2,HIGH);
      }

    // Kondisi Saat Malam Hari dan Hujan

      else if (LDR == LOW && SH == LOW && LS1 == LOW && LS2 == HIGH)
      {
        digitalWrite(Motor_1,LOW);
        digitalWrite(Motor_2,HIGH);
      }
      else if (LDR == LOW && SH == LOW && LS1 == LOW && LS2 == LOW)
      {
        digitalWrite(Motor_1,LOW);
        digitalWrite(Motor_2,HIGH);
      }
      else if (LDR == LOW && SH == LOW && LS1 == HIGH && LS2 == LOW)
      {
        digitalWrite(Motor_1,HIGH);
        digitalWrite(Motor_2,HIGH);
      }
    }