M4 - Project Demo (Kontrol Akuarium Ikan Mas Koki)

MODUL IV
Rancang Bangun Kontrol Ikan Mas Koki


1. Pendahuluan[kembali]

 

Ikan mas koki adalah spesies yang sensitif terhadap perubahan lingkungan. Kondisi air yang buruk dapat menyebabkan stres, penyakit, dan kematian pada ikan. Beberapa parameter yang penting untuk dikendalikan meliputi pH air, suhu, kejernihan air, ketinggian air, dan pemberian pakan yang tepat waktu. Dengan menggunakan sensor dan mikrokontroler, pemantauan dan pengendalian parameter-parameter ini dapat dilakukan secara otomatis dan real-time..

Akuarium ikan mas koki membutuhkan perawatan yang teliti agar ikan dapat hidup dalam kondisi optimal. Pemantauan dan pengendalian parameter lingkungan di akuarium sangat penting untuk menjaga kesehatan ikan. Dalam konteks ini, penggunaan mikrokontroler dan mikroprosesor untuk merancang sistem kontrol otomatis akuarium merupakan solusi yang inovatif dan efisien. Berikut adalah latar belakang mengenai tugas pemodelan mikroprosesor dan mikrokontroler dalam proyek "Rancang Bangun Kontrol Akuarium Ikan Mas Koki" dengan prinsip kerja menggunakan lima sensor diantaranya sensor pH, sensor DHT11, sensor touch, sensor RTD, sensor ultrasonic

Latar belakang di balik desain kontrol ikan mas koki otomatis dapat dilihat dari beberapa aspek, yaitu:

  1. Ketidakpraktisan Pengelolaan Manual Ikan Mas Koki:

    • Pengelolaan ikan mas koki secara manual sering kali memerlukan perhatian dan waktu yang banyak dari pemiliknya, seperti memberi makan, memantau kualitas air, dan menjaga kebersihan akuarium.
    • Kesalahan dalam perawatan manual, seperti pemberian makan berlebihan atau kurangnya perawatan air, dapat menyebabkan stres dan penyakit pada ikan mas koki.
  2. Kebutuhan Akan Solusi yang Efisien dan Mudah Digunakan:

    • Gaya hidup modern yang sibuk membuat banyak pemilik ikan mencari cara yang lebih mudah dan efisien untuk merawat ikan mereka.
    • Sistem kontrol otomatis dapat mengurangi beban perawatan harian, memberikan kenyamanan lebih kepada pemilik tanpa mengorbankan kualitas perawatan ikan mas koki.
  3. Peningkatan Kesejahteraan dan Kelangsungan Hidup Ikan:

    • Kondisi lingkungan yang stabil dan optimal sangat penting untuk kesehatan dan kesejahteraan ikan mas koki. Ini termasuk parameter seperti suhu, pH air, dan kadar oksigen.
    • Sistem kontrol otomatis dapat secara konsisten memantau dan menyesuaikan parameter lingkungan, memastikan ikan mas koki tetap dalam kondisi terbaik dan mengurangi risiko penyakit.

      Dengan demikian, pengembangan sistem kontrol ikan mas koki otomatis tidak hanya memudahkan pemilik dalam mengelola akuarium, tetapi juga berkontribusi pada kesehatan dan kesejahteraan ikan mas koki.


2. Tujuan[kembali]
Berikut beberapa tujuan dibalik alasan pembuatan rancang bangun kontrol ikan mas koki:

Meningkatkan Efisiensi Pengelolaan Akuarium:
Mengurangi kebutuhan pemantauan dan intervensi manual dari pemilik, sehingga menghemat waktu dan usaha dalam perawatan ikan mas koki.

Menjaga Kesehatan dan Kesejahteraan Ikan
Memastikan kondisi lingkungan akuarium selalu optimal dengan pemantauan dan penyesuaian parameter seperti suhu, pH, dan kadar oksigen secara otomatis

Menyediakan Solusi Praktis dan Mudah Digunakan
Mengembangkan sistem yang mudah dioperasikan oleh pemilik, termasuk mereka yang tidak memiliki banyak pengalaman dalam pemeliharaan ikan mas koki.

Mengurangi Risiko Kesalahan dalam Perawatan:
Meminimalkan kesalahan umum dalam perawatan manual, seperti pemberian makan berlebihan atau kurangnya perawatan air, yang dapat menyebabkan stres dan penyakit pada ikan.

Meningkatkan Kepuasan dan Kenyamanan Pemilik:
Menyediakan solusi yang mempermudah pemilik dalam menjaga ikan mas koki tetap sehat, sehingga memberikan pengalaman yang lebih menyenangkan dan memuaskan dalam memelihara ikan hias.

Mendorong Penggunaan Teknologi dalam Pemeliharaan Ikan:
Memperkenalkan teknologi otomatisasi kepada pemilik ikan hias, mendorong adopsi solusi modern yang dapat meningkatkan kualitas hidup ikan dan efisiensi perawatan.



1. Modul Arduino


                                        

2.Sensor pH

Spesifikasi dari sensor pH :

  • Tegangan Catu Daya: 5VDC
  • Rentang Pengukuran: 0 - 14PH
  • Suhu pengukuran: 0 - 60 ℃
  • Akurasi: ± 0.1pH (25 ℃)
  • Waktu Respon: ≤ 1 menit
  • Sensor pH dengan Konektor BNC
  • Antarmuka : pH2.0 (tambalan 3 kaki)
  • Adjustable Potensiometer
  • Indikator Daya LED
  • Ukuran modul: 43 x 32mm (1.69x1.26 ")

    Grafik respon sensor



3.  Sensor Touch

Sensor sentuh (touch sensor) adalah perangkat yang mendeteksi sentuhan fisik atau tekananpada permukaannya dan mengubahnya menjadi sinyal listrik yang dapat diukur dan diproses oleh sistem elektronik. Ada beberapa jenis sensor sentuh, termasuk resistif, kapasitif, dan piezoelektrik.

Spesifikasi dari sensor Touch :

 

·     Konsumsi daya yang rendah

·     Bisa menerima tegangan dari 2 ~ 5.5V DC

·     Dapat menggantikan fungsi saklar tradisional

·     Dilengkapi 4 lobang baut untuk memudahkan pemasangan

·     Tegangan kerja : 2v s/d 5.5v (optimal 3V)

·     Output high VOH : 0.8 VCC (typical)

·     Output low VOL : 0.3 VCC (max)

·     Arus Output Pin Sink (VCC 3V, VOL 0.6V) : 8 mA

·     Arus Output pin pull-up (VCC=3V, VOH=2.4V) : 4 mA

·     Waktu respon (low power mode): max 220 ms

·     Waktu respon (touch mode): max 60 ms

·     Ukuran: 24 mm x 24 mm x 7.2 mm


Grafik respon sensor




4. Sensor TDS
    Sensor TDS (Total Dissolved Solids) adalah perangkat yang digunakan untuk mengukur konsentrasi total zat padat terlarut dalam suatu cairan, biasanya air. TDS mencakup semua mineral, garam, logam, kation, dan anion yang terlarut dalam air. Prinsip kerja sensor TDS umumnya didasarkan pada konduktivitas listrik, di mana sensor mengukur kemampuan air untuk menghantarkan listrik, yang berbanding lurus dengan jumlah zat padat terlarut dalam air

Spesifikasi dari sensor TDS :

 

·     Tegangan Input: 3.3 ~ 5.5V

·     Tegangan Output: 0 ~ 2.3V

·     Arus Kerja: 3 ~ 6mA

·      Pengukuran TDS: 0 ~ 1000ppm

·     Akurasi: ± 10% F.S. (25°C)

·     Dimensi Modul: 42 x 32 mm

·     Pajang Probe 83 cm

·     Tipe Output: Tegangan Analog

Grafik respon sensor



5. Sensor Ultrasonik
    Sensor ultrasonik adalah perangkat yang menggunakan gelombang suara ultrasonik untuk mengukur jarak atau mendeteksi keberadaan objek. Gelombang ultrasonik adalah gelombang suara dengan frekuensi di atas ambang pendengaran manusia, biasanya di atas 20 kHz. Sensor ini bekerja dengan memancarkan pulsa ultrasonik dari pemancar dan kemudian menerima gema yang dipantulkan kembali oleh objek di depannya melalui penerima.


Spesifikasi dari sensor ultrasonik :

 

·     Dimensi : 45 mm (P) x 20 mm (L) x 15 mm (T)

·     Tegangan : 5 VDC

·     Arus pada mode siaga : < 2 mA

·     Arus pada saat deteksi : 15 mA

·     Frekuensi suara : 40 kHz

·     Jangkauan Minimum : 2 cm

·     Jangkauan Maksimum : 400 cm

Grafik respon sensor





6. Sensor Suhu DSI18B20
    RTD (Resistance Temperature Detector) adalah sensor suhu yang mengukur suhu dengan memanfaatkan perubahan resistansi listrik dari logam, biasanya platinum, yang bervariasi secara linier dengan perubahan suhu. RTD terdiri dari kawat logam yang dililitkan menjadi koil atau diendapkan pada substrat yang tidak menghantarkan listrik. Ketika suhu berubah, resistansi kawat juga berubah, dan perubahan resistansi ini diukur untuk menentukan suhu.

Spesifikasi dari sensor dht11 :

 

·     Konsumsi daya yang rendah

·     Bisa menerima tegangan dari 2 ~ 5.5V DC

·     Dapat menggantikan fungsi saklar tradisional

·     Dilengkapi 4 lobang baut untuk memudahkan pemasangan

·     Tegangan kerja : 2v s/d 5.5v (optimal 3V)

·     Output high VOH : 0.8 VCC (typical)

·     Output low VOL : 0.3 VCC (max)

·     Arus Output Pin Sink ( VCC 3V, VOL 0.6V) : 8 mA

·     Arus Output pin pull-up (VCC 3V, VOH 2.4V) : 4 mA

·     Waktu respon (low power mode): max 220 ms

·     Waktu respon (touch mode): max 60 ms

·     Ukuran: 24 mm x 24 mm x 7.2 mm

Grafik respon sensor




7. LCD

LCD (Liquid-Crystal Display) atau Penampil Kristal Cair adalah layar panel datar atau perangkat optik elektronik termodulasi yang menggunakan sifat modulasi cahaya dari kristal cair (liquid crystal) yang dikombinasikan dengan polarizer. Kristal cair tidak memancarkan cahaya secara langsung, melainkan menggunakan lampu latar atau reflektor untuk menghasilkan gambar berwarna atau monokrom.

Spesifikasi :

 

·       Format tampilan : 16 x 2 karakter

·       Pengontrol bawaan : ST 7066 (atau setara)

·       Siklus kerja : 1/16

·       5 x 8 titik termasuk kursor

·       hjbjscdncabmdbchjbawsdcsahb Supply + 5 V (juga tersedia untuk + 3 V)

·       LED dapat digerakkan oleh pin 1, pin 2, pin 15, pin 16 atau A dan K

·       N.V. opsional untuk supply + 3 V


8.  Motor Driver

    Motor driver adalah sebuah modul yang sering sekali digunakan untuk mengendalikan motor DC. Dengan menggunakan motor driver dapat dengan mudah mengendalikan baik itu kecepatan maupun arah rotasi 2 motor sekaligus. Motor driver dirancang menggunakan IC L298 Dual H-Bridge Motor Driver berisikan gerbang gerbang logika yang sudah sangat populer dalam dunia elektronika sebagai pengendali motor


Spesifikasi :

 

·       Tegangan Input : 3.2V - 40V

·       Driver : Driver Motor L298N Dual H Bridge DC

·       Supply : 5V

·       Arus puncak : 2A

·       Kisaran operasi : 0 - 36 mA

·       Konsumsi daya maksimum : 20W (ketika suhu 75 ℃)

·       Suhu penyimpanan : -25 ~ +130

·       Keluaran pin 10 (sumber tegangan IC) jika berfungsi sebagai pin output : 5V

·       Ukuran : 3.4cm x 4.3cm x 2.7cm

9. Motor Pump

    Motor pump / pompa air adalah alat untuk menggerakan air dari tempat bertekanan rendah ke tempat bertekanan yang lebih tinggi. Pada dasarnya motor pump sama dengan motor DC pada umumnya, hanya saja sudah di-packing sedemikian rupa sehingga dapat digunakan di dalam air.


Spesifikasi :

 

·       Nilai Tegangan : DC 12V

·       Beban : Air

·       Penyerapan air : 1L – 1.2L/min

·       Arus (dengan beban) : Kurang dari 320mA

·       Arus : 2.0LPM

·       Ukuran total : D27 x 75mm

·       Diameter lubang air : 6.5mm

·       Tekanan maksimum : Lebih dari 360mmHg

·       Kebisingan : Kurang dari <60dB


4.1 Universal Asynchronous Receiver Transmitter (UART)

UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.

 

4.2 Motor Servo

Motor servo adalah perangkat elektromekanis yang digunakan untuk mengontrol posisi sudut, kecepatan, dan akselerasi dengan presisi tinggi. Motor ini terdiri dari motor biasa yang digabungkan dengan sensor posisi dan rangkaian kontrol. Sensor posisi, sering berupa potensiometer atau enkoder, menyediakan umpan balik ke rangkaian kontrol, yang kemudian mengatur arus ke motor untuk mencapai posisi yang diinginkan. Motor servo digunakan dalam berbagai aplikasi yang memerlukan kontrol gerakan yang tepat, seperti robotika, kontrol pesawat, sistem navigasi otomatis, dan mekanisme penggerak presisi dalam industri manufaktur. Keandalannya dalam mencapai dan mempertahankan posisi tertentu membuatnya sangat populer dalam sistem otomatisasi dan kontrol gerak.

 

4.3. Motor Pump DC

Motor DC (Direct Current) adalah jenis motor listrik yang mengubah energi listrik arus searah menjadi energi mekanis berupa gerakan rotasi. Motor ini terdiri dari beberapa komponen utama: stator, rotor (atau armatur), komutator, sikat, dan sumber daya DC.

Pompa air DC adalah perangkat yang menggunakan motor listrik berarus searah (DC) untuk memompa air dari satu lokasi ke lokasi lain. Pompa ini sering digunakan dalam aplikasi portabel dan sistem energi terbarukan karena dapat dioperasikan menggunakan baterai atau panel surya. Komponennya meliputi motor DC, impeller untuk memindahkan air, dan casing yang melindungi serta mengarahkan aliran air. Pompa air DC umumnya digunakan dalam irigasi taman, sistem pendingin, akuarium, dan aplikasi rumah tangga lainnya yang memerlukan transfer air yang efisien dan andal. Keunggulannya termasuk konsumsi energi rendah, kemampuan untuk beroperasi pada tegangan rendah, dan kesederhanaan dalam instalasi serta perawatan


4.4 Arduino

Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.


Percobaan terdiri dari prosedur percobaan, hardware, rangkaian simulasi, flowchart, video demo dan file download sebagai berikut:

Prosedur program terdiri dari 

  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.

1. Laptop




c.1 rangkaian simulasi pada Proteus

c.2 Rangkaian demo

c.3 Prinsip kerja
Prinsip kerja dari rangkaian ini adalah pertama masing masing sensor akan dihubungkan pada arduino master dan output pada ardunio slave. Sensor touch terhubung pada output motor servo yang berfungsi untuk membuka pakan ikan otomatis. Ketika sensor touch berlogika high maka pakan ikan akan terbuka otomatis dan informasi logika sensor touch dapat diakses dengan melihat tampilan pada layar lcd. Kemudian pada bagian dalam akuarium terdapat 3 sesnor yang di parang dan disusun pada dinding akuarium. Masing – masing adalah sensor TDS, sensor suhu dan sensor Ph. Sensor pH akan mendeteksi pH air dan terhubung pada output motor servo yang akan membuka otomatis bubuk penetral pH berupa bubuk asam dan bubuk basa. Jika pH terdeteksi < 7 maka bubuk basa akan terbuka untuk menetralkan air kolam ikan yang terseteksi asam dan sebaliknya jika pH >7 maka bubuk asam akan terbuka untuk menetralkan air kolam ikan yang terdeteksi basa. Keterangan pH air ini juga dapat diakses pada tampilan layar lcd. Kemudian sensor suhu, sensor suhu akan mendeteksi suhu air kolam dan akan menghidupkan buzzer pada sistem jika suhu terdeteksi 31o C keatas. Sensor TDS akan mendeteksi kekeruhan air akuarium ikan, apabila air akuarium ikan keruh maka TDS akan mengirimkan sinyal informasi pada Arduino untuk mengaktifkan motor pump untuk menyedot air akuarium tersebut. Pada proses ini, sistem kerja sensor ultrasonic adalah memantau ketinggian air akuarium, apabila air akuarium terdeteksi terlalu rendah, maka motor pump untuk mengisi air bersih kembali pada akuarium akan menyala.


d.1 flowchart




d.2 listing program
Master

#include <LiquidCrystal_I2C.h>

 

LiquidCrystal_I2C lcd(0x27, 20, 4);

 

const int tdsPin = A0;

const int suhuPin = A1;

const int pHPin = A2;

const int echoPin = 12;

const int triggerPin = 11;

const int touchPin = 2;

 

void setup() {

  Serial.begin(9600);

  lcd.init();

  lcd.backlight();

}

 

void loop() {

  // Baca nilai sensor

  float tdsValue = analogRead(tdsPin) * (5.0 / 1023.0) * 1000;

  float suhuValue = analogRead(suhuPin) * (5.0 / 1023.0) * 100;

  float pHValue = analogRead(pHPin) * (14.0 / 1023.0);

 

  //Sensor Ultrasonik

  long duration, jarak;

  digitalWrite(triggerPin, LOW);

  delayMicroseconds(2);

  digitalWrite(triggerPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(triggerPin, LOW);

  duration = pulseIn(echoPin, HIGH);

  jarak = (duration / 2) / 29.1;

 

  //Sensor Touch

  int touchStatus = digitalRead(touchPin);

 

  // Kirim karakter ke slave

  if (touchStatus == HIGH){

    Serial.write('A');

  } else{

      Serial.write('B');

     }

 

  if (suhuValue > 35){

    Serial.write('C');

  } else{

      Serial.write('D');

     }

 

  if (pHValue > 8){

    Serial.write('E');

  } else if(pHValue < 7){

      Serial.write('F');

     } else{

        Serial.write('G');

     }

 

  if (tdsValue > 20 || jarak > 23){

    Serial.write('H');

  } else{

      Serial.write('I');

     }

 

  if(jarak < 10){

      Serial.write('J');

     } else{

        Serial.write('K');

     }

 

 

  // Tampilkan nilai sensor di LCD

  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.print("TDS: ");

  lcd.print(tdsValue);

  lcd.print(" ppm");

 

  lcd.setCursor(0, 1);

  lcd.print("Suhu: ");

  lcd.print(suhuValue);

  lcd.print(" C");

 

  lcd.setCursor(0, 2);

  lcd.print("pH: ");

  lcd.print(pHValue);

 

  lcd.setCursor(0, 3);

  lcd.print("Jarak: ");

  lcd.print(jarak);

  lcd.print(" cm");

  delay(100);

}


Slave

#include <Servo.h>

 

const int motorKipas = 3;

const int motorPengurasAir = 5;

const int motorPenambahAir = 6;

Servo motorPakan;

Servo motorCairanAsamBasa;

 

void setup() {

  Serial.begin(9600);

  pinMode(motorKipas, OUTPUT); // motorKipas (DC)

  pinMode(motorPengurasAir, OUTPUT); // motorPengurasAir (DC)

  pinMode(motorPenambahAir, OUTPUT); // motorPenambahAir (DC)

 

  motorPakan.attach(10); // motorPakan (servo)

  motorCairanAsamBasa.attach(11); // motorCairanAsamBasa (servo)

 

}

 

void loop() {

  if (Serial.available() > 0) {

    char input = Serial.read();

    switch(input) {

      case 'A':

        motorPakan.write(90); // Mengaktifkan motor pakan

        break;

      case 'B':

        motorPakan.write(0); // Mengembalikan motor pakan ke posisi semula

        break;

      case 'C':

        digitalWrite(motorKipas, HIGH);

        break;

      case 'D':

        digitalWrite(motorKipas, LOW);

        break;

      case 'E':

        motorCairanAsamBasa.write(0); //Putar ke kiri menambah cairan asam

        break;

      case 'F':

        motorCairanAsamBasa.write(180); //Putar ke kanan menambah cairan basa

        break;

      case 'G':

        motorCairanAsamBasa.write(90); //Kembali ke posisi awal

        break;

      case 'H':

        digitalWrite(motorPengurasAir, HIGH);

        break;

      case 'I':

        digitalWrite(motorPengurasAir, LOW);

        break;

      case 'J':

        digitalWrite(motorPenambahAir, HIGH);

        break;

      case 'K':

        digitalWrite(motorPenambahAir, LOW);

        break;

    }

  }

}





Rangkaian [download]
Listning Program [download]
Video Demo [download]
HTML [download]
Data sheet sensor [download]

Tidak ada komentar:

Posting Komentar