Tugas Besar




Kontrol Produksi Pada Kebun Kakao

1. Pendahuluan
[Kembali]
            Kakao adalah salah satu komoditas utama dalam industri pertanian dan pangan global. Kehadirannya memberikan kontribusi signifikan terhadap perekonomian banyak negara, sementara sektor kebun kakao menjadi tulang punggung bagi industri cokelat. Dalam konteks ini, pengelolaan produksi kakao menjadi krusial untuk memastikan kualitas dan kuantitas yang optimal. Kontrol produksi pada kebun kakao menjadi langkah strategis untuk meningkatkan hasil, efisiensi, dan berkelanjutan lingkungan.

    Pohon kakao dapat tumbuh dilingkungan kering, namun tidak menutup kemungkinan terjadinya kemarau sehingga dibutuhkan air buat kebun kakao, maka di buat sensor yang diletakkan di atas kolam terpal untuk menampung air hujan. Selain itu agar didapatkan hasil panen yang berkualitas maka dibuat kontrol untuk menjaga kelembaban tanah, PH tanah, dan suhu pada kebun kakao. Kelembaban tanah yang cocok pada kebun kakao yaitu 60, sedangkan untuk PH sekitaran  6 - 7.5, dan untuk suhu yaitu 25 c - 30 c.


2. Tujuan [Kembali]
  • Memenuhi tugas Mikroprosesor dan Mikrokontroler 
  • Mempelajari rangkaian aplikasi menggunakan arduino, keypad, dan LCD
  • Mempelajari prinsip kerja Sensor soil mosture, sensor ph, sensor infrared, sensor rain, dan sensor suhu LM35
  • Mempelajari simulasi rangkaian Sensor soil mosture, sensor ph, sensor infrared, sensor rain, dan sensor suhu LM35

3. Alat dan Bahan [Kembali]

1. Alat
1. Power Supply


2. Bahan 
1). Arduino uno

               
     Spesifikasi 

2). Keypad

          Spesifikasi  :     
  • 12 tombol (dengan fungsi tergantung pada aplikasi).
  • Konfigurasi 4 baris (input scanning) dan 3 kolom (output scanning).
  • Kompatibel penuh dengan DT-51 Low Cost Series dan DT-AVR Low Cost Series. Mendukung DT-51 Minimum Systemver 3.0, DT-51 PetraFuz, DT-BASIC Series, dan sistem lain.
  • Dilengkapi dengan contoh program.
  • Dimensi : 9 cm (P) x 5,4 cm (L) x 1,8 cm (T)
  • Perlengkapan : 1 buah DT-I/O 3 x 4 Keypad Module

3). LCD 

         Spesifikasi :
  • Tegangan operasi LCD ini adalah 4.7V-5.3V
  • Ini mencakup dua baris di mana setiap baris dapat menghasilkan 16 karakter.
  • Pemanfaatan arus adalah 1mA tanpa lampu latar
  • Setiap karakter dapat dibangun dengan kotak 5×8 piksel
  • Alfanumerik LCD alfabet & angka
  • Apakah tampilan dapat bekerja pada dua mode seperti 4-bit & 8-bit
  • Ini dapat diperoleh dalam Lampu Latar Biru & Hijau
  • Ini menampilkan beberapa karakter yang dibuat khusus

4). Sensor Infrared

    
5). Sensor Moisture
                               

spesifikasi



6). Sensor Rain
Spesifikasi :
  • Adoptshigh quality of RF-04 double sidedmaterial.
  • Area:5cm x 4cm nickel plateon side,
  • Anti-oxidation,anti-conductivity, with long use time;
  • Comparator output signal clean waveform is good, driving ability, over 15mA;
  • Potentiometer adjust the sensitivity;
  • Working voltage 5V;
  • Output format: Digital switching output (0 and 1) and analog voltage output AO;
  • With bolt holes for easy installation;
  • Small board PCB size: 3.2cm x 1.4cm;
  • Usesa wide voltage LM393 comparator
7). Sensor LM35

Spesifikasi :
8). Sensor PH

Spesifikasi :
  • Daya masuk: + 5.00V
  • Ukuran Modul: 43mm x 32mm
  • Rentang pengukuran: 0-14 PH
  • Mengukur ttemperatur: 0-60 ° C
  • Akurasi: ± 0.1 PH (25 °C)
  • Waktu tanggapan: ≤ 1 menit
9). Resistor
Spesifikasi :

10).Transistor NPN

Spesifikasi :

 11). Motor Servo PWM


12). LED



13) Motor DC

Spesifikasi Motor DC :


   


     c. Prinsip Kerja[Kembali] 

a) Prosedur
  1. Download library yang diperlukan 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".Pastikan opsi
  6. "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.
  12. Jalankan simulasi di Proteus.

b) Hardware dan Diagram Blok

Hardware
  1. Arduino Uno
  2. Infrared Sensor
  3. LED
  4. Soilmoisture Sensor
  5. Rain sensor
  6. Jumper
  7. Keypad
  8. LM35 sensor
  9. PH sensor
Diagram Blok



c) Rangkaian Simulasi dan Prinsip kerja

Rangkaian sebelum disimulasikan


    Pada rangakain Kontrol Produksi pada kebun kakao menggunakan 5 buah sensor yaitu 2 buah sensor digital dan 3 buah sensor analog, aplikasi motor servo, aplikasi motor keypad, aplikasi lcd dan ic PCF8574. 
    
    Disini terdapat rain sensor yang berguna sebagai kontrol untuk tirai penutup kolam terpal, yang merupakan tempat cadangan air untuk kebun kakao. Sensor diletakkan di atas kolam terpal dimana akan aktif atau berlogika 1 saat terjadi hujan. Ketika sensor tidak aktif atau berlogika 0 maka motor servo tidak bergerak atau bernilai 0 sedangkan saat hari hujan dan terdeteksi oleh rain sensor maka motor servo akan berputar 180 derajat dan akan membuka tirai penutup kolam terpal.

    Lalu terdapat infrared sensor yang berguna untuk menghidupkan lampu pada kebun ketika malam, disini untuk lampu pada kebun tersebut disimbolkan dengan led. ketika infrared sensor mendeteksi adanya orang maka sensor akan aktif atau berlogika 1 lalu led akan menyala.

Selanjutnya terdapat sensor soil moisture yang digunakan untuk mendeteksi kelembaban tanah yang diletakkan ditanah sekitar akar pohon kakao. Kelembaban ideal pada kebun kakao yaitu sebesar 80%. Apabila tanah kering atau kelembaban tidak 80% maka motor pompa air akan menyala.

Untuk sensor PH, karena resistor 100% sedangkan yang kita tau PH hanya 14. maka 100 : 14 didapatkan hasil 7,1. Jadi setiap 7,1%  mewakili 1 PH pada 14 PH. Karena PH ideal kakao adalah 6-7 maka PH kakao sekitar 50% an. PH sensor diletakkan pada tanah, jadi ketika sensor mendeteksi tanah PH rendah maka akan hidup motor untuk menuangkan cairan calcium carbonat, sedangkan apabila sensor mendeteksi PH tinggi atau diatas PH ideal maka motor akan hidup dan menuangkan cairan sulfur pada tanah dekat akar pohon kakao.

Suhu ideal untuk pohon kakao sekitar 25-27. Jika suhu diatas 27 maka akan hidup spray untuk mendinginkan kembali kondisi lingkungan atau temperature di kebun kakao ini. Dan jika dibawah 25 maka spraynya akan mati.


d) Flowchart dan Listing Program
Flowchart




Listing code

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include <Servo.h>

Memanggil library LCD yang digunakan untuk mengaktifkan

const byte BARIS = 4;

const byte KOLOM = 3;

 

Mendefinisikan konstanta BARIS dengan nilai 4 dan KOLOM dengan nilai 3.

Mengindikasikan jumlah baris dan kolom pada matriks keypad.

char tombolKeypad[BARIS][KOLOM] = {

  {'1', '2', '3'},

  {'4', '5', '6'},

  {'7', '8', '9'},

  {'*', '0', '#'}

};

Membuat matriks 2D tombolKeypad berukuran BARIS x KOLOM yang berisi karakter tombol keypad.

Setiap elemen matriks merepresentasikan karakter yang akan ditampilkan pada tombol keypad.

byte pinBaris[BARIS] = {6, 5, 4, 3};

byte pinKolom[KOLOM] = {7, 8, 9};

Membuat array pinBaris dan pinKolom untuk menyimpan nilai pin yang terhubung dengan baris dan kolom keypad.

LiquidCrystal_I2C lcd(0x27, 16, 2);

Mendeklarasikan objek LCD menggunakan library LiquidCrystal_I2C untuk mengendalikan layar LCD berbasis I2C. Parameter konstruktor menentukan alamat I2C LCD (0x27), jumlah karakter per baris (16), dan jumlah baris (2).

const int rainPin = 12, servoPin = 11, irSensorPin = 13, outputPin = 10;

const int humSensorPin = A0, motorPin = 2, phSensorPin = A2, outputPin1 = 1, tempSensorPin = A1, outputPin0 = 0;

Servo servoMotor;

Mendeklarasikan pin untuk sensor hujan, motor servo, sensor infrared, dan output digital.

mendeklarasikan pin untuk sensor kelembaban (A0), motor DC, sensor pH (A2), dan sensor suhu (A1), serta output digital.

void setup() {

  lcd.begin(16, 2);

  lcd.backlight();

  lcd.setCursor(0, 0);

  lcd.print("Salam Sejahtera");

 

  servoMotor.attach(servoPin);

  setupPins();

}

 

void setupPins() {

  pinMode(rainPin, INPUT);

  pinMode(irSensorPin, INPUT);

  pinMode(outputPin, OUTPUT);

  pinMode(humSensorPin, INPUT);

  pinMode(motorPin, OUTPUT);

  pinMode(phSensorPin, INPUT);

  pinMode(outputPin1, OUTPUT);

  pinMode(tempSensorPin, INPUT);

  pinMode(outputPin0, OUTPUT);

}

Mendeklarasikan LCD dan beberapa pin diatur menjadi inputan

void loop() {

  checkRainSensor();

  checkInfraredSensor();

  controlHumidityMotor();

  controlPHOutput();

  controlTemperatureOutput();

 

  char keypadButton = readKeypad();

  if (keypadButton != '\0') {

    handleKeypadPress(keypadButton);

  }

}

Memantau kondisi sensor dan keypad di dalam loop utama dan mengambil tindakan yang sesuai berdasarkan kondisi yang terdeteksi.

void checkRainSensor() {

  int rainSensorValue = digitalRead(rainPin);

  rotateServo(rainSensorValue == HIGH ? 0 : 180);

}

 

void checkInfraredSensor() {

  int infraredSensorValue = digitalRead(irSensorPin);

  controlOutput(outputPin, infraredSensorValue == HIGH);

}

Memeriksa kondisi sensor hujan dan sensor infrared untuk mengambil tindakan tertentu, seperti menggerakkan motor servo atau mengontrol output digital.

void controlHumidityMotor() {

  int humidityPercentage = map(readAnalogSensor(humSensorPin), 0, 1023, 0, 100);

  controlOutput(motorPin, humidityPercentage > 80);

}

 

void controlPHOutput() {

  float phVoltage = readAnalogSensor(phSensorPin) * (5.0 / 1023.0);

  controlOutput(outputPin1, phVoltage >= 3.0);

}

 

void controlTemperatureOutput() {

  float tempVoltage = readAnalogSensor(tempSensorPin) * (5.0 / 1023.0);

  controlOutput(outputPin0, tempVoltage > 0.27);

}

 

int readAnalogSensor(int pin) {

  return analogRead(pin);

}

 

void controlOutput(int pin, bool state) {

  digitalWrite(pin, state);

}

Memberikan kontrol adaptif berdasarkan nilai sensor, memungkinkan sistem untuk menanggapi perubahan kelembaban, pH, dan suhu dengan mengaktifkan atau menonaktifkan perangkat output yang sesuai.

char readKeypad() {

  for (byte i = 0; i < KOLOM; i++) {

    pinMode(pinKolom[i], OUTPUT);

    digitalWrite(pinKolom[i], LOW);

 

    for (byte j = 0; j < BARIS; j++) {

      pinMode(pinBaris[j], INPUT_PULLUP);

      if (digitalRead(pinBaris[j]) == LOW) {

        delay(50);

        while (digitalRead(pinBaris[j]) == LOW);

        return tombolKeypad[j][i];

      }

      pinMode(pinBaris[j], INPUT);

    }

 

    digitalWrite(pinKolom[i], HIGH);

    pinMode(pinKolom[i], INPUT);

  }

 

  return '\0';

}

Membaca input dari keypad matriks dan mengembalikan karakter yang sesuai dengan tombol yang ditekan. Proses ini terus berulang dalam loop utama untuk terus memantau input dari keypad

void handleKeypadPress(char keypadButton) {

  lcd.clear();

  lcd.setCursor(0, 0);

 

  switch (keypadButton) {

    case '1':

      lcd.print("Kebun Kakao\nPak Siska");

      break;

    case '2':

      lcd.print("Assalamualaikum");

      break;

    case '3':

      lcd.print("Selamat Datang");

      break;

    default:

      lcd.print("Tombol tidak valid");

  }

 

  delay(2000);

  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.print("Salam Sejahtera");

}

Memberikan tanggapan visual yang bervariasi tergantung pada tombol yang ditekan pada keypad. Setelah menampilkan pesan selama 2 detik, layar dibersihkan dan pesan "Salam Sejahtera" ditampilkan kembali di posisi awal.

 

 

 

 

 

 

void rotateServo(int degrees) {

  servoMotor.write(degrees);

  delay(500);

}

Menggerakkan motor servo ke suatu posisi tertentu berdasarkan nilai derajat yang diberikan sebagai parameter


e) Kondisi

Ketika turun hujan maka sensor rain akan hidup, lalu motor menyala membuka tirai penutup kolam terpal
Ketika terdeteksi adanya orang disekitar lampu pada kebun kakao maka sensor infrared akan aktif sehingga led akan hidup
Ketika Kelembaban tanah dibawah 80% maka sensor soil moisture akan aktif sehingga motor akan menyala menghidupkan pompa air
Ketika PH tanah di atas 7 motor cairan kalsium carbonat akan menyala menuangkan ke tanah dekat akar pohon kakao, begitu pula saat PH tanah dibawah 6 maka motor cairan sulfur akan menyala.

Ketika Suhu di kebun kakao 27 keatas maka spray akan menyala untuk mendinginkan udara disekitar kebun, dan jika suhu dibawah 25 maka sensor akan mati.

    d. Flowchart[Kembali]

            A. Master


            B. Slave



    e. Video Demo[Kembali]

video simulasi rangkaian



Video Teori
  • Video Teori LCD

  • Video Teori Arduino

  • Video Teori Sensor Infrared
  • Video Sensor Soil Moisture

  • Video Sensor Rain

  • Video Sensor LM35

  • Sensor PH

    f. Download File[Kembali]

Download Rangkaian klik disini
Download HTML klik disini
Download Flowchart klik disini
Download Listing Program master dan slave
Download Video demo klik disini
Download Soft File Laporan klik disini

    Data Sheet

Download Datasheet Arduino Uno klik disini
Download Datasheet Sensor Touch klik disini
Download Datasheet Flame Sensor klik disini
Download Data sheet Sensor Infrared klik disini
Download Datasheet Sensor LDR klik disini
Download Datasheet Sensor MQ 2  Klik disini
Download Datasheet Motor DC klik disini
Download Datasheet LED klik disini
Download Datasheet Motor Servo klik disini
Download Datasheet LCD klik disini
Download Datasheet Relay klik disini

 Library 

Download Library Arduino Uno klik disini
Download Library Sensor Touch klik disini
Download Library Sensor Flame klik disini
Download Library Sensor Infrared klik disini
Download Library Sensor MQ2 klik disini
Download Library LCD klik disini





Tidak ada komentar:

Posting Komentar

   BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA 2023 Nama : Hadi Andhika Jafta NIM : 2210951009 Dosen Pengampu : Dr. Darwison, MT...