Senin, 15 Januari 2024

TUGAS BESAR





SISTEM KONTROL BUDIDAYA SAWI MEDIA HIDROPONIK

1. Pendahuluan
[Kembali]

    Penerapan Internet of Things (IoT) dalam konteks pertanian perkotaan, khususnya pada praktik urban farming, telah menjadi solusi untuk mengatasi tantangan dalam budidaya hidroponik dengan memanfaatkan pengawasan jarak jauh melalui perangkat smartphone. Beberapa faktor yang berpengaruh pada pertumbuhan optimal tanaman hidroponik melibatkan pencahayaan, suhu, kelembaban, tingkat pH tanah, dan ketersediaan nutrisi.

Cahaya adalah salah satu faktor kunci yang dapat memengaruhi fotosintesis tanaman hidroponik. Metode hidroponik digunakan sebagai fasilitas edukasi dan pembelajaran tentang perkembangan teknologi pertanian. Konsep Smart Farming memungkinkan penggunaan sensor-sensor dan mikrokontroler Arduino untuk mengukur serta mengontrol nilai-nilai seperti suhu pada tanaman secara efektif.

2. Tujuan [Kembali]
  1. Untuk menyelesaikan tugas mikrokontroler yang diberikan oleh Bapak Dr. Darwison, M.T.
  2. Mengetahui komponen yang digunakan dalam membuat rangkaian tugas besar terkait Sistem Kontrol Budidaya Sawi Media Hidroponik.
    3. Alat dan Bahan [Kembali]

    Alat

    a. Power Supply




    b. Baterai


    Spesifikasi dan Pinout Baterai

    • Input voltage: ac 100~240v / dc 10~30v
    • Output voltage: dc 1~35v
    • Max. Input current: dc 14a
    • Charging current: 0.1~10a
    • Discharging current: 0.1~1.0a
    • Balance current: 1.5a/cell max
    • Max. Discharging power: 15w
    • Max. Charging power: ac 100w / dc 250w
    • Jenis batre yg didukung: life, lilon, lipo 1~6s, lihv 1-6s, pb 1-12s, nimh, cd 1-16s
    • Ukuran: 126x115x49mm
    • Berat: 460gr

    Bahan

    a. Resistor


    Spesifikasi :


    b. Arduino Uno R3


    Spesifikasi:

    c. Jumper
    d. LCD



    e. Motor DC
    f. Sensor Touch



    SPESIFIKASI :

    • 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

    g. Sensor UV

    Spesifikasi :

      • Catu Daya : 3.3V/5V
      • Sensor : LTR390-UV-01
      • Communication Bus : I2C (Constant Address: 0x53)
      • Response Spectrum : 280 - 430nm
      • Mounting Hole Size : 2mm
      • Dimensi : 27 x 20mm

    h. Water level  sensor

    SPESIFIKASI :

    • Tegangan kerja: 3-5 VDC nArus kerja: < 20mA
    • Tipe sensor: analog
    • Max output: 2.5v (saat sensor terendam semua)
    • Luas area deteksi: 16x40mm nSuhu kerja: 10-30 C
    • Ukuran: 20x62x8 mm
    i. Sensor DHT11

    Spesifikasi sensor suhu kelembaban DHT11 :

    • Tegangan input           : 3,5 – 5 VDC
    • Sistem komunikasi      : Serial (single – Wire Two way)
    • Range suhu                 : 00C – 500C
    • Range kelembaban     : 20% – 90% RH
    • Akurasi                        : ±20C (temperature) ±5% RH (humidity)
    j. PH Sensor

    Spesifikasi

    • Tegangan Inpur Modul : 5.0V
    • Ukuran Modul : 43mm×32mm
    • Pengukuran : 0 – 14PH
    • Akurasi : ± 0.1pH (25 ℃
    • Response Time :  ≤ 1min
    • Konektor PH Sensor (pH Electrode) : BNC konektor
    • Output konektor modul: PH2.0 3 Pin
    • Gain Adjustment Potentiometer
    • Led untuk Indikator Tegangan Input
    • Panjang Kabel Sensor ke konektor BNC : 660mm


    4. Dasar Teori [Kembali]


    a. Arduino Uno 


    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++. 

    A. Bagian-bagian arduino uno:

    1. Power USB
    Digunakan untuk menghubungkan PapanArduino dengan komputer lewat koneksi USB
    2. Power jack
    Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.
    3. Crystal Oscillator
    Kristal ini digunakan sebagai layaknya detak jantung pada Arduino.  Jumlah cetak    menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
    4. Reset
    Digunakan untuk mengulang program Arduino dari awal atau Reset.
    5. Digital Pins I / O
    Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika ( 0 atau 1 ). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM.
    6. Analog Pins
    Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai digital.
    7. LED Power Indicator
    Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.
    Bagian-Bagian Pendukung
    1. RAM
    RAM (Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory) dan DRAM (Dynamic Random Acces Memory).
    2. ROM

    ROM (Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpan data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dari Mask ROM, PROM, EPROM, EEPROM. 


    Arduino adalah pengendali mikro single-board yang bersifatopen-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardware arduino memiliki prosesor Atmel AVR dan software arduino memiliki bahasa pemrograman C.Memori yang dimiliki oleh Arduino Uno sebagai berikut : Flash Memory sebesar 32KB, SRAM sebesar 2KB, dan EEPROM sebesar 1KB. Clock pada board Uno menggunakan XTAL dengan frekuensi 16 Mhz. Dari segi daya, Arduino Uno membutuhkan tegangan aktif kisaran 5 volt, sehingga Uno dapat diaktifkan melalui koneksi USB. Arduino Uno memiliki 28 kaki yang sering digunakan. Untuk Digital I/O terdiri dari 14 kaki, kaki 0 sampai kaki 13, dengan 6 kaki mampu memberikan output PWM (kaki 3,5,6,9,10,dan 11). Masing-masing dari 14 kaki digital di Uno beroperasi dengan tegangan maksimum 5 volt dan dapat memberikan atau menerima maksimum 40mA. Untuk Analog Input terdiri dari 6 kaki, yaitu kaki A0 sampai kaki A5. Kaki pin merupakan tempat input tegangan kepada Uno saat menggunakan sumber daya eksternal selain USB dan adaptor.

    ATMega328 merupakan bagian mikrokontroler yang ada pada arduino R3 keluaran dari atmel yang mempunyai arsitektur RISC (Reduce Instruction Set Computer) yang mana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer). Mikrokontroler ini memiliki beberapa fitur antara lain:
    1. Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanen karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan.
    2. Memiliki SRAM (Static Random Access Memory) sebesar 2KB.
    3. Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output.
    4. 32 x 8-bit register serba guna.
    5. Dengan clock 16 MHz kecepatan mencapai 16 MIPS.
    6. 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memori sebagai bootloader.
    7. 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.


    b. Resistor



    Resistor merupakan salah satu komponen yang digunakan dalam sebuah sirkuit atau rangkaian elektronik. Resistor berfungsi sebagai resistansi/ hambatan yang mampu mengatur atau mengendalikan tegangan dan arus listrik rangkaian. Resistor mempunyai nilai resistansi (tahanan) tertentu yang dapat memproduksi tegangan listrik di antara kedua pin dimana nilai tegangan terhadap resistansi tersebut berbanding lurus dengan arus yang mengalir, berdasarkan persamaan hukum Ohm :




    c. Power Supply
    Vcc berfungsi untuk memberikan tegangan kepada input, dimana disini diberikan kepada switch.

    d. Dip Switch


    Gambar Dip Switch





    Gambar Rangkaian interpretasi Dip Switch

        

    DIP switch adalah singkatan dari "Dual In-line Package switch." Ini adalah komponen elektronik yang digunakan untuk mengatur konfigurasi atau pengaturan pada perangkat elektronik, seperti papan sirkuit cetak (PCB) atau perangkat lainnya. DIP switch biasanya digunakan untuk mengatur parameter tertentu dalam perangkat elektronik, seperti alamat memori, pengaturan mode operasi, atau pilihan lain yang dapat dikonfigurasi.

    Berikut ini adalah beberapa informasi tambahan tentang DIP switch:

    Bentuk Fisik: DIP switch biasanya terlihat seperti baris kecil sakelar kecil yang tertanam dalam paket berbentuk DIP, dengan dua baris pin yang bisa dimasukkan ke dalam lubang-lubang di PCB atau papan sirkuit cetak.

    Konfigurasi: DIP switch terdiri dari sejumlah sakelar kecil yang dapat dinyalakan atau dimatikan secara individual. Setiap sakelar mewakili satu bit informasi, sehingga konfigurasi DIP switch dapat mencakup berbagai pengaturan bit yang berbeda, seperti 8-bit, 4-bit, atau lainnya, tergantung pada jumlah sakelar dalam komponen tersebut.

    Penggunaan Umum: DIP switch digunakan dalam berbagai aplikasi, termasuk di dalam perangkat keras komputer, perangkat elektronik konsumen, peralatan industri, dan banyak lagi. Misalnya, di komputer lama, DIP switch dapat digunakan untuk mengatur alamat I/O, IRQ (Request Interrupt), atau konfigurasi lainnya. Dalam perangkat konsumen modern, penggunaan DIP switch mungkin tidak seumum dulu karena banyak perangkat sekarang menggunakan metode konfigurasi perangkat lunak.

    Keuntungan: Keuntungan penggunaan DIP switch adalah kemudahan pengaturan dan ketahanan terhadap perubahan konfigurasi yang tidak disengaja. Pengguna dapat dengan mudah mengatur switch sesuai dengan kebutuhan tanpa perlu pengetahuan khusus atau perangkat lunak khusus. Selain itu, konfigurasi DIP switch tidak hilang atau berubah ketika perangkat dimatikan atau listrik terputus.



    e. Jumper
    Kabel jumper adalah kabel elektrik yang memiliki pin konektor di setiap ujungnya dan memungkinkanmu untuk menghubungkan dua komponen yang melibatkan Arduino tanpa memerlukan solder. Intinya kegunaan kabel jumper ini adalah sebagai konduktor listrik untuk menyambungkan rangkaian listrik. Biasanya kabel jamper digunakan pada breadboard atau alat prototyping lainnya agar lebih mudah untuk mengutak-atik rangkaian.

    Jenis jenis kabel jumper yang paling umum adalah sebagai berikut:
    • Kabel Jumper Male to Male
      Kabel Jumper Male to Male

      Jenis yang pertama adalah kabel jumper male male. Kabel jumper male to male adalah adalah jenis yang sangat yang sangat cocok untuk kamu yang mau membuat rangkaian elektronik di breadboard.

    • Kabel Jumper Male to Female
      Kabel Jumper Male to Female

      Kabel jumper male female memiliki ujung konektor yang berbeda pada tiap ujungnya, yaitu male dan female.

      Biasanya kabel ini digunakan untuk menghubungkan komponen elektronika selain arduino  ke breadboard
    • Kabel Jumper Female to Female

      Kabel Jumper Female to Female
      Jenis kabel jumper yang terakhir adalah kabel female to female. Kabel ini sangat cocok untuk menghubungkan antar komponen yang memiliki  header male
    f. Motor DC


    Motor DC adalah motor listrik yang  memerluka supla teganga arus searah pada kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Motor arus searah, sebagaimana namanya, menggunakan arus langsung yang tidak langsung/direct- unidirectional. Motor DC adalah piranti elektronik yang mengubah energi listrik menjadi energi mekanik berupa gerak rotasi. Pada motor DC terdapat jangkadengan satu atau lebih kumparan terpisah. Tiap kumparan berujung pada cincin belah (komutator). Dengaadanya insulator antara komutator, cincin belah dapat berperan sebagai saklar kutub ganda (double pole, double throw switch). Motor DC bekerja berdasarkan prinsip gaya Lorentzyang menyatakan ketika sebuah konduktor beraliran  arus diletakkan dalam medan magnet,  maka sebuah gay(yang dikenal dengan gaya Lorentz) akan tercipta secara ortogonal diantara arah medan magnet dan arah aliran arus. Kecepatan putar motor DC (N) dirumuskadengaPersamaan berikut.

     

    Gambar Rumus Kecepatan Putar Motor DC

     Simbol Motor DC

     

     

    Gambar  Simbol Motor DC

    Motor DC tersusun dari dua bagian yaitu bagian diam (stator) dan bagian bergerak (rotor). Stator motor arus searah adalah badan motor atau kutub magnet (sikat-sikat), sedangkan yang termasuk rotor adalah jangkar lilitanya. Pada motor, kawat penghantar listrik yang bergerak tersebut pada dasarnya merupakan lilitan yang berbentuk persegpanjang yang disebut kumparan.

     
    Prinsip Kerja Motor DC

     

    Gambar Prinsip Kerja Motor DC

    Kumparan ABCD terletak dalam medan magnet serba sama dengan keduduka sis akti A da CB  yang  terleta tepa lurus  arah fluks magnet. Sedangkan sisi AB dan DC ditahan pada bagian tengahnya, sehingga apabila sisi AD dan CB berputar karena adanya gaya lorentz, maka kumparan ABCD akan berputar. 
    Hasil perkalian gaya dengan jarak pada suatu titik tertentu disebut momen, sisi aktif AD dan CB akan berputar pada porosnya karena pengaruh momen putar (T). Setiap sisi kumparan aktif AD dan CB pada gambar diatas akan mengalami momen putar sebesar :

     

    T = F.r

     Dimana :

    T = momen putar (Nm) F = gaya tolak (newton)

    r = jarak sisi kumparapada sumbu putar (meter)

    Pada daerah dibawah kutub-kutub magnet besarnya momen putar tetap karena besarnya gaya lorentz. Hal ini berarti bahwa kedudukan garis netral sisi sisi kumparan akan berhenti berputar. Supaya motor dapat berputar terus dengan baik, maka perlu ditambah jumlah kumparan yang digunakan. Kumparan- kumparan harus diletakkan sedemikian rupa sehingga momen putar yang dialami setiap sisi kumparan akan saling membantu dan menghasilkan putaran yang baik. Dengan pertimbangan teknis, maka kumparan-kumparan yang berputar tersebut dililitkan pada suatu alat yang disebut jangkar, sehingga lilitan kumparan itupun disebut lilitan jangkar. Struktur Motor DC dapat dilihat pada gambar berikut ini.
    Gambar Struktur Motor DC


    g. Motor DC L293D Driver

    Gambar Driver Motor 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. Konstruksi pin driver motor DC IC l293D adalah sebagai berikut.

    Konstruksi Pin Driver Motor DC IC L293D


    Fungsi Pin Driver Motor DC IC L293D

    1. Pin EN (Enable, EN1.2, EN3.4) berfungsi untuk mengijinkan driver menerima perintah untuk menggerakan motor DC.
    2. Pin In (Input, 1A, 2A, 3A, 4A) adalah pin input sinyal kendali motor DC 
    3. Pin Out (Output, 1Y, 2Y, 3Y, 4Y) adalah jalur output masing-masing driver yang dihubungkan ke motor DC 
    4. Pin VCC (VCC1, VCC2) adalah jalur input tegangan sumber driver motor DC, dimana VCC1 adalah jalur input sumber tegangan rangkaian kontrol dirver dan VCC2 adalah jalur input sumber tegangan untuk motor DC yang dikendalikan. 
    5. Pin GND (Ground) adalah jalu yang harus dihubungkan ke ground, pin GND ini ada 4 buah yang berdekatan dan dapat dihubungkan ke sebuah pendingin kecil.


    Rangkaian Aplikasi Driver Motor DC IC L293D



    Pada gambar driver IC L293D diatas adalah contoh aplikasi dari keempat unit driver motor DC yang dihubungkan secar berbeda sesuai dengan keinginan dan kebutuhan.

    h. LCD

    Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untukmenampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter). Struktur LCD dapat dilihat pada gambar berikut.
    Gambar 14. Struktur LCD

    Keterangan:

    1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.

    2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).

    3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).

    4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).

    5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.

    6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.

    Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.
    Module circuit dari LCD dan kaki-kakinya dapat dilihat melalui gambar berikut.

    Gambar 15. TEXT LCD Module Circuit
     
      
    Gambar 16. Kaki-kaki yang Terdapat pada LCD

    I. Sensor LDR


    LDR (Light Dependent Resistor) merupakan salah satu komponen resistor yang nilai resistansinya akan berubah-ubah sesuai dengan intensitas cahaya yang mengenainya. LDR juga dapat digunakan sebagai sensor cahaya. Nilai resistansi dari LDR bergantung pada intensitas cahaya. Semakin tinggi intensitas cahaya (siang hari) yang mengenainya, maka semakin kecil nilai resistansinya. Sebaliknya semakin rendah intensitas cahaya (malam hari) yang mengenainya, maka semakin besar nilai resistansinya. Secara umum, sensor LDR memiliki nilai hambatan 200 Kilo Ohm saat intensitas cahaya rendah (malam hari) dan akan menurun menjadi 500 Ohm saat intensitas cahaya tinggi (siang hari).Umumnya sensor LDR digunakan pada rangkaian lampu otomatis pada rumah, taman, dan jalan raya.

    Karakteristik sensor LDR
    - Laju Recovery
    Laju recovery merupakan suatu ukuran praktis dan suatu kenaikan nilai resistansi dalam waktu tertentu. Harga ini ditulis dalam K/detik, untuk LDR tipe arus harganya lebih besar dari 200K/detik(selama 20 menit pertama mulai dari level cahaya 100 lux), kecepatan tersebut akan lebih tinggi pada arah sebaliknya, yaitu pindah dari tempat gelap ke tempat terang yang memerlukan waktu kurang dari 10 ms untuk mencapai resistansi yang sesuai den-gan level cahaya 400 lux.

    - Respon Spektral
    Sensor Cahaya LDR (Light Dependent Resistor) tidak mempunyai sensitivitas yang sama untuk setiap panjang gelombang cahaya yang jatuh padanya (yaitu warna). Bahan yang biasa digunakan sebagai penghantar arus listrik yaitu tembaga, aluminium, baja, emas dan perak. Dari kelima bahan tersebut tembaga merupakan penghantar yang paling banyak, digunakan karena mempunyai daya hantaryang baik.

    Grafik respon sensor

    j. Baterai
     
    Baterai merupakan sebuah alat yang mengubah energi kimia yang tersimpan menjadi energi listrik. Pada percobaan kali ini, baterai berfungsi sebagai sumber daya atau.

    Spesifikasi dan Pinout Baterai

    • Input voltage: ac 100~240v / dc 10~30v
    • Output voltage: dc 1~35v
    • Max. Input current: dc 14a
    • Charging current: 0.1~10a
    • Discharging current: 0.1~1.0a
    • Balance current: 1.5a/cell max
    • Max. Discharging power: 15w
    • Max. Charging power: ac 100w / dc 250w
    • Jenis batre yg didukung: life, lilon, lipo 1~6s, lihv 1-6s, pb 1-12s, nimh, cd 1-16s
    • Ukuran: 126x115x49mm
    • Berat: 460gr


    5. Percobaan [Kembali]

    A. Prosedur
    1. Download semua library yang diperlukan dari blog
    2. Buka aplikasi proteus dan buat rangkaian sesuai percobaan
    3. Masukkan library ke masing-masing rangkaian 
    4. Buka aplikasi arduino ide dan masukkan kodingan lalu compile
    5. Masukkan kodingan arduino pada rangkaian proteus
    6. Jika semua sudah selesai, Jalankan rangkaian 

    B. Diagram Blok



    C. Rangkaian Simulasi dan Prinsip kerja
    Water Level Sensor
    Untuk sensor water level dihubungkan ke pin A1 dari arduino. Ketika sensor water level  mendeteksi adanya air dengan ketinggian <=800, maka nantinya akan dikeluarkan output pada pin 9 yang terhubung pada sebuah motor untuk pompa air. Jadi pada saat water level mendeteksi ketinggian air <=800 pada pin A1 maka akan dikeluarkan output di pin 9 yang kemudian tegangannya akan diteruskan ke resistor kemudian ke transistor. Karena tegangan pada kaki base telah mencukupi aktifnya transistor yaitu sebesar 0.85, maka adanya arus dari colector menuju emitor diteruskan ke ground. Untuk bias transistor adalah fixed bias. Karena adanya arus yang mengalir melalui relay, maka relay menjadi aktif yang ditandai dengan switch relay akan berpindah dari dari kanan ke kiri sehingga rangkaian loop pada relay akan menutup sehingga tegangan pada baterai akan mengalir yang mampu mengaktifkan motor untuk pompa air.  Sedangkan apabila water level mendeteksi adanya air dengan ketinggian >800, maka nantinya akan dikeluarkan output pada pin 9 yang kemudian tegangannya akan diteruskan ke resistor kemudian ke transistor. Katrena tegangan pada kaki base tidak mencukupi aktifnya transistor, maka tidak adanya arus dari colector menuju emitor dan untuk relay pun tidak aktif. Dengan demikian motor untuk pompa air menjadi mati atau tidak aktif. Ini menandalan ketinggian air sudah berada pada keadaan normal pada tanaman hidroponik tersebut.

    Sensor UV
    Untuk sensor UV dihubungkan ke pin A0 dari arduino. Ketika sensor UV mendeteksi adanya cahaya dan panas siang hari yaitu tegangan > 1, maka nantinya akan dikeluarkan output pada pin 11 arduino dimana pin tersebut dihubungkan pada sebuah Lampu. Disini lampu berfungsi sebagai pemberi cahaya pada tanaman hidroponik. Jadi pada saat terdeteksi panas dan cahaya di siang hari, maka  akan dikeluarkan output berupa tegangan diteruskan ke resistor terus ke kaki base transistor, dimana tegangan pada kaki base sebesar 0.22V dimana tegangan tersebut tidak mampu mengaktifkan transistor sehingga tidak ada arus yang mengalir dari kolektor ke emitor dan ke ground. Dengan demikian relay menjadi tidak aktif, sehingga lampu tidak menyala. Sedangkan ketika sensor UV mendeteksi tidak adanya cahaya tepatnya di waktu malam hari yaitu tegangan < 1, maka nantinya akan dikeluarkan output pada pin 11 arduino dimana pin tersebut dihubungkan pada sebuah Lampu. Disini lampu berfungsi sebagai pemberi cahaya pada tanaman hidroponik. Jadi pada saat tidak terdeteksi cahaya maka akan dikeluarkan output berupa tegangan yang kemudian diumpankan pada sebuah resistor kemudian menuju kaki base transistor, Karena tegangan pada kaki base sebesar 0.85 yang mana tegangan tersebut mampu mengaktifkan transistor maka ada arus yang mengalir dari kolektor ke emitor dan ke ground. Untuk bias transistor yang digunakan adalah fixed bias. Dengan demikian relay menjadi aktif yang ditandai dengan berpindahnya switch relay dari kanan ke kiri, sehingga rangkaian loop pada relay menjadi tertutup sehingga tegangan baterai mengalir pada lampu, yang membuat lampu dapat menyala.
    Jadi pada sensor ini contoh : ketika tegangan pada sensor terbaca 0,31 volt saat cahaya mulai redup (mendung) maka pada virtual terminal akan terukur 64. Angka "64" mungkin merujuk pada panjang gelombang tertentu dalam rentang UV yakni 64 nanometer, sehingga lampu akan menyala.

    Sensor DHT11
    Untuk sensor DHT11, pin data dihubungkan ke pin 8 arduino. Ketika sensor  DHT11  mendeteksi adanya suhu yang berada di atas 27°C dan kelembaban udara di bawah 75 maka nantinya akan dikeluarkan output pada pin  10 arduino berupa kipas DC dan sprinkler. Disini kipas DC berfungsi untuk menurunkan subu sedangkan untuk sprinker berfungsi untuk menyemprotkan uap air pada tanaman hidroponik unutk meningkatkan kelembabannya. Jadi pada saat sensor DHT11 mendeteksi suhu di atas 27°C dan kelembaban udara di bawah 75 maka akan dikeluarkan output berupa tegangan diteruskan ke resistor terus ke kaki base transistor, dimana tegangan pada kaki base sebesar 0.85 yan mana tegangan tersebut mampu mengaktifkan transistor maka ada arus yang mengalir dari kolektor ke emitor dan ke ground. Untuk bias transistor yang digunakan adalah fixed bias. Dengan demikian relay menjadi aktif yang ditandai dengan berpindahnya switch relay dari kanan ke kiri, sehingga rangkaian loop pada relay menjadi tertutup sehingga tegangan baterai mengalir pada kipas DC dan sprinkler. Selain itu, apabila  sensor DHT11 mendeteksi suhu di bawah 28°C dan kelembaban udara di atas 78 maka akan dikeluarkan output berupa tegangan diteruskan ke resistor terus ke kaki base transistor, dimana tegangan pada kaki base sebesar , yang membuat lampu dapat menyala 0.22V dimana tegangan tersebut tidak mampu mengaktifkan transistor sehingga tidak ada arus yang mengalir dari kolektor ke emitor dan ke ground. Dengan demikian relay menjadi tidak aktif, sehingga kipas DC dan sprinkler tidak aktif. Kipas DC dan sprinkler yang tidak aktif menandakan bahwa suhu dan kelembaban dari tanaman hidroponik berada pada keadaan normal.

    Sensor PH
    Untuk sensor pH dihubungkan ke pin A2 dari arduino. Ketika sensor pH mendeteksi nilai pH yang >7 maka akan dikeluarkan output pada pin 12 yang terhubung pada sebuah motor untukpemberi nutris asam. Jadi pada saat sensor pH mendeteksi nilai pH>7 maka kondisi pada tanaman tersebut adalah basa. Sehingga pada pin A2 akan dikeluarkan output di pin 12 yang kemudian tegangannya akan diteruskan ke resistor kemudian ke transistor. Karena tegangan pada kaki base telah mencukupi aktifnya transistor yaitu sebesar 0.85, maka adanya arus dari colector menuju emitor diteruskan ke ground. Untuk bias transistor adalah self bias. Karena adanya arus yang mengalir melalui relay, maka relay menjadi aktif yang ditandai dengan switch relay akan berpindah dari dari kanan ke kiri sehingga rangkaian loop pada relay akan menutup sehingga tegangan pada baterai akan mengalir yang mampu mengaktifkan motor untuk pemberi nutrisi asam.  Sedangkan ketika sensor pH mendeteksi nilai pH yang <6 maka akan dikeluarkan output pada pin 13 yang terhubung pada sebuah motor untuk pemberi nutris basa. Jadi pada saat sensor pH mendeteksi nilai pH<6 maka kondisi pada tanaman tersebut adalah asam. Sehingga pada pin A2 akan dikeluarkan output di pin 13 yang kemudian tegangannya akan diteruskan ke resistor kemudian ke transistor. Karena tegangan pada kaki base telah mencukupi aktifnya transistor yaitu sebesar 0.85, maka adanya arus dari colector menuju emitor diteruskan ke ground. Untuk bias transistor adalah self bias. Karena adanya arus yang mengalir melalui relay, maka relay menjadi aktif yang ditandai dengan switch relay akan berpindah dari dari kanan ke kiri sehingga rangkaian loop pada relay akan menutup sehingga tegangan pada baterai akan mengalir yang mampu mengaktifkan motor untuk pemberi nutrisi basa. Sedangkan apabila nilai pH nya berada pada nilai 6 sampai 7, maka tidak ada motor pemberi nutrisi yang aktif yang menandakan bahwa nutrisi tanaman hidroponik sudah berada pada keadaan nor

    Sensor Touch
    Sensor touch berfungsi untuk mengaktifkan foliar spray. Foliar spray adalah metode aplikasi pupuk atau bahan nutrisi langsung ke daun-daun tanaman. Dalam foliar spray, larutan nutrisi disemprotkan secara langsung ke permukaan daun menggunakan semprotan atau penyemprot. Ini memungkinkan tanaman menyerap nutrisi melalui stomata (pori-pori kecil pada permukaan daun) dan kutikula (lapisan pelindung pada daun).
    Ketika sensor tpuch berlogika 1 yakni saat seseorang menyentuh sensor tersebut makan secara otomatisdikeluarkan output berupa tegangan diteruskan ke resistor terus ke kaki base transistor, dimana tegangan pada kaki base sebesar 0.85 yan mana tegangan tersebut mampu mengaktifkan transistor maka ada arus yang mengalir dari kolektor ke emitor dan ke ground. Untuk bias transistor yang digunakan adalah fixed bias. Dengan demikian relay menjadi aktif yang ditandai dengan berpindahnya switch relay dari kanan ke kiri, sehingga rangkaian loop pada relay menjadi tertutup sehingga tegangan baterai mengalir pada motor foliar spray. 

    D. Flowchart dan Listing Program

    Flowchart :
    wchart dan Listing Program[Kembali]

    • Flowchart






    Listing Program :

    #include <LiquidCrystal_PCF8574.h>
    LiquidCrystal_PCF8574 lcd(0x27);

    DHT dht(8, DHT11);
    int motorwater = 9;
    int motordht = 10;
    int motordhth = 1;
    int motorpha = 12;
    int motorphb = 13;
    int sensorValue = 0;
    int water = A1;
    int level;
    int UV = A0;
    int LAMPU = 11;
    int pH = A2;
    float calibration_value = 21.34;
    int phval = 0;
    unsigned long int avgval;
    int buffer_arr[10], temp;
    int touchSensor = 2;
    int motorControl1 = 10; // Ganti pin motorControl menjadi 10
    int motorControl2 = 7; // Pin untuk motor baru

    void setup() {
      pinMode(UV, INPUT);
      pinMode(A1, INPUT);
      pinMode(A2, INPUT);
      pinMode(touchSensor, INPUT);
      pinMode(motorControl1, OUTPUT);
      pinMode(motorControl2, OUTPUT);

      pinMode(11, OUTPUT);
      pinMode(motorpha, OUTPUT);
      pinMode(motorphb, OUTPUT);
      pinMode(motordht, OUTPUT);
      pinMode(motordhth, OUTPUT);
      pinMode(motorwater, OUTPUT);

      Serial.begin(9600);
      dht.begin();

      // Inisialisasi LCD
      lcd.begin(16, 2);
    }

    void loop() {
      // UV Sensor
      sensorValue = analogRead(UV);
      float voltage = sensorValue * (5.0 / 1023.0);

      Serial.print("Status UV:");
      Serial.println(sensorValue);

      if (voltage <= 2.0) {
        digitalWrite(11, HIGH);
      } else {
        digitalWrite(11, LOW);
      }

      delay(100);

      // DHT11
      double t = dht.readTemperature();
      double h = dht.readHumidity();

      Serial.print("Suhu: ");
      Serial.print(t);
      Serial.println(" Celcius");
      Serial.print("Kelembaban: ");
      Serial.println(h);

      // Kondisi untuk mengaktifkan atau menonaktifkan motor dan sprinkler
      if (t > 27) {
        // Jika suhu lebih besar dari 27, aktifkan motor pada motorControl1
        digitalWrite(motorControl1, HIGH);
        delay(5000);  // Biarkan motor berjalan selama 5 detik
        digitalWrite(motorControl1, LOW);  // Matikan motor setelah 5 detik
        // Anda mungkin perlu menambahkan kontrol lain sesuai kebutuhan
      } else {
        // Jika tidak memenuhi kondisi di atas, nonaktifkan motor pada motorControl1
        digitalWrite(motorControl1, LOW);
        // Anda mungkin perlu menambahkan kontrol lain sesuai kebutuhan
      }

      // Kondisi untuk mengaktifkan atau menonaktifkan motor baru
      if (h < 75) {
        // Jika kelembaban kurang dari 75, aktifkan motor pada motorControl2
        digitalWrite(motorControl2, HIGH);
        // Anda mungkin perlu menambahkan kontrol lain sesuai kebutuhan
      } else {
        // Jika tidak memenuhi kondisi di atas, nonaktifkan motor pada motorControl2
        digitalWrite(motorControl2, LOW);
        // Anda mungkin perlu menambahkan kontrol lain sesuai kebutuhan
      }

      // Water Level
      level = analogRead(water);
      float tinggiAir = level * 6 / 1023;
      Serial.print("Status Water Level:");
      Serial.println(level);
      Serial.println(tinggiAir);

      if (level <= 800) {
        digitalWrite(motorwater, HIGH);
      } else if (level > 800) {
        digitalWrite(motorwater, LOW);
      }

      Serial.println(h);
      Serial.println(t);

      // pH
      for (int i = 0; i < 10; i++) {
        buffer_arr[i] = analogRead(A2);
        delay(30);
      }
      for (int i = 0; i < 9; i++) {
        for (int j = i + 1; j < 10; j++) {
          if (buffer_arr[i] > buffer_arr[j]) {
            temp = buffer_arr[i];
            buffer_arr[i] = buffer_arr[j];
            buffer_arr[j] = temp;
          }
        }
      }
      avgval = 0;
      for (int i = 2; i < 8; i++)
        avgval += buffer_arr[i];
      float volt = (float)avgval * 5.0 / 1024 / 6;
      float phval = -5.70 * volt + calibration_value;

      Serial.print("Nilai Sensor pH : ");
      Serial.println(phval);

      // Touch Sensor
      int touchValue = digitalRead(touchSensor);
      if (touchValue == HIGH) {
        digitalWrite(motorControl1, HIGH);
      } else {
        digitalWrite(motorControl1, LOW);
      }

      delay(1000);

      if (phval <= 7 && phval >= 6) {
        digitalWrite(12, LOW);
        digitalWrite(13, LOW);
      }
      if (phval > 7) {
        digitalWrite(12, HIGH);
        digitalWrite(13, LOW);
      }
      if (phval < 6) {
        digitalWrite(13, HIGH);
        digitalWrite(12, LOW);
      }

      // Menampilkan data di LCD
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Temp: ");
      lcd.print(t);
      lcd.print("C");

      lcd.setCursor(0, 1);
      lcd.print("Humidity: ");
      lcd.print(h);
      lcd.print("%");

      // ...
    }
     
    Penjelasan untuk setiap baris dalam kodingan yang diberikan:
      1. #include <LiquidCrystal_PCF8574.h>Mengimport library LiquidCrystal_PCF8574.h yang digunakan untuk mengontrol LCD dengan interface I2C.
      2. LiquidCrystal_PCF8574 lcd(0x27);Membuat objek lcd dengan alamat I2C 0x27.
      3. DHT dht(8, DHT11);Mengimport library DHT.h yang digunakan untuk membaca sensor DHT11.
      4. int motorwater = 9;Mendefinisikan variabel motorwater dengan nilai 9.
      5. int motordht = 10;Mendefinisikan variabel motordht dengan nilai 10.
      6. int motordhth = 1;Mendefinisikan variabel motordhth dengan nilai 1.
      7. int motorpha = 12;Mendefinisikan variabel motorpha dengan nilai 12.
      8. int motorphb = 13;Mendefinisikan variabel motorphb dengan nilai 13.
      9. int sensorValue = 0;Mendefinisikan variabel sensorValue dengan nilai 0.
      10. int water = A1;Mendefinisikan variabel water dengan pin analog A1.
      11. int level;Mendefinisikan variabel level tanpa nilai awal.
      12. int UV = A0;Mendefinisikan variabel UV dengan pin analog A0.
      13. int LAMPU = 11;Mendefinisikan variabel LAMPU dengan nilai 11.
      14. int pH = A2;Mendefinisikan variabel pH dengan pin analog A2.
      15. float calibration_value = 21.34;Mendefinisikan variabel calibration_value dengan nilai 21.34.
      16. int phval = 0;Mendefinisikan variabel phval dengan nilai 0.
      17. unsigned long int avgval;Mendefinisikan variabel avgval tanpa nilai awal.
      18. int buffer_arr, temp;Mendefinisikan array buffer_arr dengan panjang 10 dan variabel temp.
      19. int touchSensor = 2;Mendefinisikan variabel touchSensor dengan pin digital 2.
      20. int motorControl1 = 10;Mendefinisikan variabel motorControl1 dengan nilai 10.
      21. int motorControl2 = 7;Mendefinisikan variabel motorControl2 dengan nilai 7.
    E. Video Demo

    G. Video Simulasi



    H. Download

    - Rangkaian Simulasi [Klik Disini]
    - Video Simulasi [Klik Disini]
    - HTML [Klik Disini]
    - Program [Klik Disini]

    Download Library
    Library PIR Sensor [Klik Disini]
    Library Touch Sensor [Klik Disini]
    - Library Vibration Sensor [Klik Disini]
    - Library Arduino [Klik Disini]

    Download Datasheet
    Datasheet PIR Sensor [Klik Disini]
    Datasheet Touch Sensor [Klik Disini]
    - Datasheet Vibration Sensor [Klik Disini]
    - Datasheet Arduino [Klik Disini]


    Tidak ada komentar:

    Posting Komentar

    Entri yang Diunggulkan

    MODUL 4

    Modul 4 [menuju akhir] [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Percobaan Percob...