Kamis, 13 Juni 2024

Mikro 2024 Modul 4



MODUL IV

KONTROL TANAMAN PADA GREENHOUSE 

(LIDAH BUAYA DAN HIDROPONIK)


1. Pendahuluan [KEMBALI]

        Dalam era modern ini, kemajuan teknologi memberikan peluang besar untuk meningkatkan efisiensi dalam berbagai sektor, termasuk pertanian. Salah satu contoh yang menarik adalah penerapan teknologi otomatisasi dalam pengelolaan tanaman di dalam greenhouse. Greenhouse atau rumah kaca adalah struktur yang dirancang untuk melindungi tanaman dari kondisi cuaca eksternal yang tidak menguntungkan, sekaligus memberikan lingkungan yang ideal untuk pertumbuhan tanaman. Salah satu tanaman yang populer dibudidayakan dalam greenhouse adalah lidah buaya (Aloe vera), yang memiliki berbagai manfaat kesehatan dan kecantikan.
        Kontrol yang tepat terhadap kondisi lingkungan dalam greenhouse sangat penting untuk memastikan pertumbuhan optimal tanaman lidah buaya. Faktor-faktor seperti suhu, kelembaban, dan intensitas cahaya harus dipantau dan diatur secara hati-hati. Teknologi mikrokontroler seperti Arduino menyediakan solusi yang efisien dan terjangkau untuk mengotomatisasi proses ini. Dengan memanfaatkan sensor dan aktuator yang dikendalikan oleh Arduino, kita dapat membuat prototipe sistem kontrol yang dapat memantau dan mengatur kondisi lingkungan di dalam greenhouse secara real-time.
        Proyek ini bertujuan untuk merancang dan mengimplementasikan sistem kontrol berbasis Arduino untuk pengelolaan tanaman lidah buaya di dalam greenhouse. Sistem ini akan mencakup berbagai komponen seperti sensor suhu dan kelembaban, modul kontrol pencahayaan, serta aktuator untuk sistem penyiraman otomatis. Selain itu, prototipe ini akan dilengkapi dengan antarmuka pengguna yang memungkinkan pemantauan dan pengaturan parameter lingkungan secara mudah.
        Dengan adanya sistem kontrol otomatis ini, diharapkan dapat tercapai efisiensi yang lebih tinggi dalam budidaya lidah buaya, mengurangi ketergantungan pada pengawasan manual, serta meningkatkan hasil dan kualitas tanaman. Blog ini akan membahas secara rinci langkah-langkah dalam pembuatan prototipe, mulai dari pemilihan komponen, perancangan sistem, hingga implementasi dan pengujian. Melalui dokumentasi ini, diharapkan para pembaca dapat memperoleh wawasan dan panduan praktis dalam mengembangkan sistem serupa untuk kebutuhan mereka sendiri.

    2. Tujuan [KEMBALI]

    1.     Merangkai dan menguji aplikasi output pada mikrokontroller Arduino
    2.     Merangkai dan menguji input pada mikrokontroller Arduino
    3.     Merangkai dan menguji I/O pada mikrokontroller Arduino 
    4.     Merangkai dan menguji aplikasi output dalam bentuk prototype

    3. Alat dan Bahan [KEMBALI]

        A.  Alat

    1). Solder


    2) Battery
                                            

    B. Bahan 

    1). Arduino uno

                   
         Spesifikasi 


    2). 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


     3) Motor DC



    Spesifikasi :












                spesifikasi : 

    5) Lampu LED



            - Sensor Flame

         




            - Sensor Ultraviolet
      


            Spesifikasi 

            


            - Sensor Soil Moisture
      • Catu Daya : 3 ~ 5V
      • Pin : VCC (5V), GND, DO (Antarmuka Digital), dan A0 (Antarmuka Analog)
      • Dimensi Probe : 60 x 30mm
      • Dimensi PCB : 30 x 16mm

    - Sensor Ph 

      • Heating Voltage : 5 +- 0.2V (AC middot DC)
      • Konsumsi Arus : 5 ~ 10mA
      • Detectable Concetration Range : PH0-14 
      • Detection Temperature Range :  0 ~ 80°C
      • Response Time : 55s
      • Settling Time : 60s
      • Componen Power : 0.5W
      • Antarmuka : Analog
      • Suhu Operasi : -10 ~ 50°C
      • Kelembapan : 95% RH
      • Dimensi : 42 x 32 x 20mm

        

    Sensor Touch 

    Spesifikasi 
    7) Motor Driver IC L293D

    DASAR TEORI [KEMBALI]

    1.     PWM (Pulse Width Modulation)

     

    PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).


    ·       Duty Cycle = tON / ttotal

    ·       tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1)

    ·       tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0)

    ·       ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut juga dengan “periode satu gelombang”

    Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite();.

     

    PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 x 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik.


    2.     ADC (Analog to Digital Converter)

     

    ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi.

    Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt. Pada Arduino, menggunakan pin analog input yang diawali dengan kode A (A0- A5 pada Arduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);.

    3.     Mikrokontroler

     


    Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, serta tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang ke adaptor DC atau baterai untuk menjalankannya.


    Setiap 14 pin digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Fungsi  fungsi tersebut beroperasi di tegangan 5 volt. Setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm.


    4.     Komunikasi

    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.

     



     

    Cara Kerja Komunikasi UART :

     

    Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudian ditransfer secara parallel ke data bus penerima.

    4.2.  Serial Peripheral Interface (SPI)

     

    Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroler maupun antara mikrokontroler dengan peripheral lain di luar mikrokontroler.

    ·       MOSI : Master Output Slave Input artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.

    ·       MISO : Master Input Slave Output artinya jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output.

    ·       SCLK : Clock jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.

    ·       SS/CS : Slave Select / Chip Select adalah jalur master memilih slave mana yang akan dikirimkan data.

     


     

    Cara Kerja Komunikasi SPI :

     

    Sinyal clock dialirkan dari master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akan mentransfer data ke master melalui MISO.

    4.3.  Inter Integrated Circuit (I2C)

     

    Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.




    Cara Kerja Komunikasi I2C :

     

    Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2, dan kondisi Stop.

    ·       Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL.

    ·       Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL.

    ·       R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave)

    ·       ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telah diterima receiver.

     

    5. LCD



            LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. Adapun fitur yang disajikan dalam LCD ini adalah terdiri dari 16 karakter dan 2 baris, mempunyai 192 karakter tersimpan, terdapat karakter generator terprogram, dapat dialamati dengan mode 4 bit dan 8 bit, dilengkapi dengan back light.

            Proses inisialisasi pin arduino yang terhubung ke pin LCD RS, Enable, D4, D5, D6, dan D7, dilakukan dalam baris LiquidCrystal (2, 3, 4, 5, 6, 7), dimana LCD merupakan variabel yang dipanggil setiap kali intruksi terkait LCD akan digunakan. 

           Pada Proyek Akhir ini LCD dapat menampilkan karakternya dengan menggunakan library yang bernama LiquidCrystal. Berikut ada beberapa fungsifungsi dari library LCD: 

    1. begin() Untuk begin() digunakan dalam inisialisasi interface ke LCD dan mendefinisikan ukuran kolom dan baris LCD. Pemanggilan begin() harus dilakukan terlebih dahulu sebelum memanggil instruksi lain dalam library LCD. Untuk syntax penulisan instruksi begin() ialah sebagai berikut. lcd.begin(cols,rows) dengan lcd ialah nama variable, cols jumlah kolom LCD, dan rows jumlah baris LCD. 
    2. clear() Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak ada tulisan yang ditapilkan pada LCD.
    3. setCursor() 19 Instruksi ini digunakan untuk memposisikan cursor awal pesan text di LCD. Penulisan syntax setCursor() ialah sebagai berikut. lcd.setCursor(col,row) dengan lcd ialah nama variable, col kolom LCD, dan row baris LCD. 
    4. print() Sesuai dengan namanya, instruksi print() ini digunakan untuk mencetak, menampilkan pesan text di LCD. Penulisan syntax print() ialah sebagai berikut.lcd.print(data) dengan lcd ialah nama variable, data ialah pesan yang ingin ditampilkan.

     

    6. Resistor

    Resistor merupakan komponen elektronika dasar yang digunakan untuk membatasi jumlah arus yang mengalir dalam satu rangkaian.Sesuai dengan namanya, resistor bersifat resistif dan umumnya terbuat dari bahan karbon. Resistor memiliki simbol seperti gambar dibawah ini :


    Simbol Resistor

          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 :

     


    Dimana V adalah tegangan,  I adalah kuat arus, dan R adalah Hambatan.

     

    Di dalam resistor, terdapat ketentuan untuk membaca nilai resistor yang diwakili dengan kode warna dengan ketentuan di bawah ini :






    Sebagian besar resistor yang kita lihat memiliki empat pita berwarna . Oleh karena itu ada cara membacanya seperti ketentuan dibawah ini :

    1. Dua pita pertama dan kedua menentukan nilai dari resistansi

    2. Pita ketiga menentukan faktor pengali, yang akan memberikan nilai resistansi.

    3. Dan terakhir, pita keempat menentukan nilai toleransi.

     

    Rumus Resistor:

    Seri : Rtotal = R1 + R2 + R3 + ….. + Rn

    Dimana :
    Rtotal = Total Nilai Resistor
    R1 = Resistor ke-1
    R2 = Resistor ke-2
    R3 = Resistor ke-3
    Rn = Resistor ke-n

    Paralel: 1/Rtotal = 1/R1 + 1/R2 + 1/R3 + ….. + 1/Rn

    Dimana :
    Rtotal = Total Nilai Resistor
    R1 = Resistor ke-1
    R2 = Resistor ke-2
    R3 = Resistor ke-3
    Rn = Resistor ke-n

    7. Motor DC

     


     

        Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan Rotor. Stator adalah bagian motor yang tidak berputar, bagian yang statis ini terdiri dari rangka dan kumparan medan. Sedangkan Rotor adalah bagian yang berputar, bagian Rotor ini terdiri dari kumparan Jangkar. Dua bagian utama ini dapat dibagi lagi menjadi beberapa komponen penting yaitu diantaranya adalah Yoke (kerangka magnet), Poles (kutub motor), Field winding (kumparan medan magnet), ArmatureWinding (Kumparan Jangkar), Commutator (Komutator)dan Brushes (kuas/sikat arang).

     

        Pada prinsipnya motor listrik DC menggunakan fenomena elektromagnet untuk bergerak, ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang bersifat selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub utara kumparan bertemu dengan kutub selatan magnet ataupun kutub selatan kumparan bertemu dengan kutub utara magnet maka akan terjadi saling tarik menarik yang menyebabkan pergerakan kumparan berhenti.

     




     

        Untuk menggerakannya lagi, tepat pada saat kutub kumparan berhadapan dengan kutub magnet, arah arus pada kumparan dibalik. Dengan demikian, kutub utara kumparan akan berubah menjadi kutub selatan dan kutub selatannya akan berubah menjadi kutub utara. Pada saat perubahan kutub tersebut terjadi, kutub selatan kumparan akan berhadap dengan kutub selatan magnet dan kutub utara kumparan akan berhadapan dengan kutub utara magnet. Karena kutubnya sama, maka akan terjadi tolak menolak sehingga kumparan bergerak memutar hingga utara kumparan berhadapan dengan selatan magnet dan selatan kumparan berhadapan dengan utara magnet. Pada saat ini, arus yang mengalir ke kumparan dibalik lagi dan kumparan akan berputar lagi karena adanya perubahan kutub. Siklus ini akan berulang-ulang hingga arus listrik pada kumparan diputuskan.

    8. Motor Servo 



    Motor servo adalah jenis motor listrik yang dirancang untuk memberikan output yang presisi dalam menyelesaikan pergerakan tertentu. Motor ini dilengkapi dengan kontroler yang memungkinkan presisi tinggi dalam mengatur posisi atau sudut rotor. Prinsip kerja motor servo didasarkan pada umpan balik atau feedback yang terus-menerus dari posisi rotor.

    Prinsip kerja motor servo:

    1. Umpan Balik (Feedback): Motor servo menggunakan sensor umpan balik, seperti potensiometer, enkoder, atau resolver, untuk terus memonitor posisi atau sudut rotor.

    2. Kontroler:

    ·       Kontroler servo menerima sinyal perintah untuk mencapai posisi tertentu.

    ·       Kontroler membandingkan posisi aktual (yang diberikan oleh sensor umpan balik) dengan posisi yang diminta.

    3. Error Signal:

    ·       Jika terdapat perbedaan antara posisi aktual dan yang diminta, tercipta sinyal kesalahan (error signal).

    4. Sinyal Penggerak (Drive Signal):

    ·       Kontroler menghasilkan sinyal penggerak yang disesuaikan berdasarkan error signal.

    ·       Sinyal penggerak mengontrol daya yang disuplai ke motor untuk mengoreksi perbedaan posisi.

    5. Pergerakan Presisi:

    ·       Motor servo merespons dengan mengubah posisi rotor untuk mengurangi error posisi.

    ·       Proses ini berlanjut sampai posisi yang diminta tercapai.

    Motor servo sering digunakan dalam aplikasi yang membutuhkan presisi tinggi, seperti robotika, peralatan CNC (Computer Numerical Control), peralatan audio profesional, dan banyak lagi. Keunggulan motor servo meliputi kemampuan untuk mengontrol kecepatan, torsi, dan posisi dengan sangat presisi, membuatnya ideal untuk aplikasi yang memerlukan akurasi dan kontrol yang tinggi.

     

    9. Sensor Flame


    IR Flame Sensor

    Flame sensor atau sensor api merupakan alat pendeteksi kebakaran melalui adanya nyala api yang muncul secara tiba-tiba. Besarnya nyala api yang terdeteksi yaitu nyala api dengan panjang gelombang 760 nm hingga 1.100 nm. Transduser yang digunakan dalam mendeteksi nyala api yaitu infrared. Biasanya sensor api ini digunakan pada ruangan di perkantoran, apartemen atau perhotelan. Namun sering juga digunakan dalam pertandingan robot. Sensor ini berfungsi sebagai mata dari robot untuk mendeteksi nyala api. Dengan meletakkan sensor api sebagai mata, diharapkan robot bisa menemukan posisi lilin yang menyala. Sensor api memiliki manfaat yang cukup besar. Salah satu diantaranya yaitu bisa meminimalisir adanya alarm palsu sebagai sebuah tanda akan terjadinya kebakaran. Sensor ini dirancang khusus untuk menemukan penyerapan cahaya pada gelombang tertentu. 

     

    Jenis dan Cara Kerja Sensor Api

     

    Prinsip kerja sensor api cukup sederhana, yaitu memanfaatkan sistem kerja metode optik. Optik yang mengandung infrared, ultraviolet atau pencitraan visual api bisa mendeteksi adanya percikan api sebagai tanda awal kebakaran. Jika terjadi reaksi percikan api yang cukup sering, maka akan terlihat emisi karbondioksida dan radiasi dari infrared. Ada empat jenis sensor api, yaitu UV Flame Detector, UV/IR Flame Detector, Multi-Spectrum IR Flame Detector (MSIR) dan Visual Imaging Detector. Berikut ini penjelasan masing-masing dari jenis dan cara kerja sensor api :

    1. UV Flame Detector

    Sensor api menggunakan teknologi ultraviolet sehingga bisa menanggapi radiasi spectral antara 180 nm hingga 260 nm. Tingkat sensitivitas dan respon ultraviolet termasuk baik dan cepat dalam kisaran 0 hingga 50 kaki. Sensor ini sangat sensitif terhadap hal-hal yang bermuatan listrik seperti lampu halogen, busur pengelasan dan petir.

    2. UV/IR Flame Detektor

    Sensor api merupakan sensor yang menggabungkan atau mengintegrasikan sensor optik ultraviolet ke dalam sensor infrared. Pengintegrasian dual band ini diharapkan bisa membuat detektor ini jauh lebih sensitif terhadap radiasi yang bersifat ultraviolet maupun infrared yang dipancarkan oleh percikan api. Selain itu, teknologi ini juga memiliki tingkat kekebalan yang lebih tinggi dengan respon yang jauh lebih baik dari teknologi sebelumnya. Oleh karena itu, selain cocok diletakkan di dalam ruangan, sensor ini juga cocok digunakan di luar ruangan yang bersifat terbuka.

    3. Multi-Spectrum IR Flame Detektor (MSIR)

    Sensor api ini dibuat lebih canggih dari jenis sebelumnya karena bisa memanfaatkan daerah spectral infrared secara maksimal untuk mendeteksi radiasi sumber api. Sensor jni nemiliki sensitivitas yang tinggi karena bisa menjangkau radiasi sumber api hingga 200 kaki dari sumber percikan api, baik indoor atau pun outdoor. Selain itu, teknologi ini juga memiliki kekebalan yang tinggi terhadap radiasi yang berasal dari infrared. Radiasi ini dapat muncul karena adanya sengatan listrik, adanya percikan api, muatan listrik dan juga pemicu kebakaran yang lainnya seperti material yang bersifat panas.

    4. Visual Flame Imaging Detektor

    Sensor api ini tergolong lebih canggih jika dibandingkan dengan tiga teknologi sebelumnya. Hal ini dikarenakan oleh tiga faktor berikut :

    Pertama, teknologi ini menggunakan beberapa perangkat CCD. Biasanya perangkat CCD ini digunakan dalam kamera sirkuit tertutup.

    Kedua, teknologi ini menggunakan algoritma sebagai pendeteksi dini untuk menentukan letak percikan api sebagai penyebab kebakaran. Fungsi dari algoritma yaitu menganalisis bentuk dan perkembangan api berdasarkan video yang diperoleh dari komponen CCD. Hasil analisis inilah yang akan menentukan betul tidaknya sebuah kebakaran.

    Ketiga, teknologi ini tidak mendeteksi adanya kebakaran melalui muatan listrik, radiasi panas, cahaya api atau sejenisnya seperti pada ketiga teknologi sebelumnya. Oleh karena itu, sensor api visual flame imaging detector sangat cocok digunakan pada ruangan yang di dalamnya terdapat aktivitas pembakaran agar tidak terjadi alarm palsu.                                                                                                                            Grafik Respon :




    10. Sensor Ultraviolet



    Ultraviolet (UV) adalah gelombang elektromagnetik yang memiliki panjang gelombang sebesar  380-200 nm. Cahaya ini sulit untuk dilihat dengan mata telanjang. Cahaya ini biasanya dipancarkan oleh matahari.

    Sensor cahaya ultraviolet adalah sensor cahaya yang hanya merespon perubahan intensitas cahaya ultraviolet yang mengenainya. Sensor ini menerima input dalam bentuk intensitas cahaya ultraviolet dan menghasilkan output dalam bentuk perubahan besaran listrik. 

    Sensor yang umum digunakan adalah UVTron. UVTron merupakan detektor ultraviolet yang terbuat dari efek metal photoelektrik yang digabung dengan efek gas campuran. UVTron dapat mendeteksi api sehingga UVTron ini juga dikenal dengan sensor api. Keunggulan dari UVTron ini adalah memiliki konsumsi arus yang rendah dan sensitifitas yang tinggi. Untuk mengakses datanya berupa input dan output berupa sinyal digital 0 atau 1.

    Sensor UV-Tron akan mengeluarkan logika high (1) jika ia mendeteksi keberadaan api dan sebaliknya sensor UV-Tron akan mengeluarkan logika low (0) jika ia tidak mendeeksi api, anda bisa mengecek keluarannya dengan multimeter analog.

     

     Spesifikasi 


     


    11. Sensor Soil Moisture


     

    Soil Moisture Sensor merupakan module untuk mendeteksi kelembaban tanah, yang dapat diakses menggunakan microcontroller seperti arduino.Sensor kelembaban tanah ini dapat dimanfaatkan pada sistem pertanian, perkebunan, maupun sistem hidroponik mnggunakan hidroton.

    Soil Moisture Sensor dapat digunakan untuk sistem penyiraman otomatis atau untuk memantau kelembaban tanah tanaman secara offline maupun online. Sensor yang dijual pasaran mempunyai 2 module dalam paket penjualannya, yaitu sensor untuk deteksi kelembaban, dan module elektroniknya sebagai amplifier sinyal.

    BAGIAN BAGIAN PIN SENSOR
    Jika menggunakan pin Digital Output maka keluaran hanya bernilai 1 atau 0 dan harus inisalisasi port digital sebagai Input (pinMode(pin, INPUT)). Sedangkan jika menggunkan pin Analog Output maka keluaran yang akan muncul adalah sebauah angka diantara 0 sampai 1023 dan inisialisasi hanya perlu menggunkan analogRead(pin).

    CARA KERJA SENSOR

    Pada saat diberikan catudaya dan disensingkan pada tanah, maka nilai Output Analog akan berubah sesuai dengan kondisi kadar air dalam tanah.


    Pada saat kondisi tanah :
    • Basah : tegangan output akan turun
    • Kering : tegangan output akan naik
    Tegangan tersebut dapat dicek menggunakan voltmeter DC. Dengan pembacaan pada pin ADC pada microcontroller dengan tingkat ketelitian 10 bit, maka akan terbaca nilai dari range 0 – 1023. Sedangkan untuk Output Digital dapat diliat pada nyala led Digital output menyala atau tidak dengan mensetting nilai ambang pada potensiometer.
    • Kelembaban tanah melebihi dari nilai ambang maka led akan padam
    • Kelembaban tanah kurang dari nilai ambang maka led akan menyala

    gambar grafik

     

     



    12. Sensor pH

    pH meter sendiri adalah alat listrik yang digunakan untuk mengukur aktivitas ion hidrogen (keasaman atau kebasaan) dalam larutan. Sensor pH memantau aktivitas ion hidrogen dalam larutan menggunakan elektroda. Dalam melakukannya, elektroda pengukur mengukur pertukaran ion melalui lapisan gel yang terbentuk pada membran kaca dan membandingkannya dengan tegangan terukur dari elektroda referensi internal. 

      Cara Kerja : 
      Sensor pH industri memiliki badan kaca khusus dengan membran kaca menggunakan resep khusus yang kompatibel dengan cairan proses. Badan kaca berisi tiga elektroda : elektroda pengukuran, elektroda suhu, dan elektroda referensi. Elektroda referensi adalah komponen kunci dari sistem referensi yang juga mengandung elektrolit. Desain elektrolit adalah tetap netral pada pH 7. 

    Setelah sensor yang direndam bersentuhan dengan cairan, kaca pH khusus akan membentuk lapisan gel yang sensitif. Potensi dihasilkan dari elektroda pengukuran berdasarkan aktivitas ion hidrogen di sekitar lapisan gel. Selanjutnya, elektroda referensi internal harus digabungkan secara elektrik dengan larutan yang diukur. Hal ini dilakukan melalui sambungan cair. Persimpangan tersedia dalam berbagai bentuk berdasarkan jenis sensor (Contoh: keramik, lubang terbuka, PTFE). Potensial dari masing-masing elektroda ini penting untuk menghitung nilai pH yang diukur. Pemancar atau kepala sensor digital pintar melakukan penghitungan dan memberi Anda pembacaan pH. 

    Jika Anda tidak merawat komponen ini dengan benar, potensinya mungkin tidak dapat diandalkan, dan keakuratan sensor pH Anda akan menurun. 

    Grafik respon sensor:

     



    13. Sensor Touch



             Digital Touch Sensor inilah salah satu saklar modern. Digital Touch Sensor merupakan sebuah modul sensor yang berfungsi seperti tombol/saklar, namun cara penggunaanya hanya perlu dengan menyentuhnya menggunakan jari kita. Pada saat disentuh oleh jari, sensor akan mendeteksi aliran arus listrik pada tubuh manusia karena tubuh manusia dapat mengalirkan listrik. Data akan berlogika 1 (HIGH) saat disentuh oleh jari dan akan berlogika 0 (LOW) saat tidak disentuh.

         Digital touch sensor dapat digunakan untuk switching suatu alat atau sistem. Seperti untuk menghidupkan lampu, menghidupkan motor, menyalakan sistem keamanan, dan lain-lain.

        Grafik respon sensor :



    Digital touch sensor dapat digunakan untuk switching suatu alat atau sistem. Seperti untuk menghidupkan lampu, menghidupkan motor, menyalakan sistem keamanan, dan lain-lain.


    14. Motor Driver IC L293D
    Adalah suatu IC khusus untuk mengontrol motor DC/Stepper. Didalamnya terdapat 4 buah driver motor yang berdiri sendiri. Disebut Dual H-Bridge karena IC ini mampu mengontrol 2 buah motor DC dengan kontrol arah bolak-balik (setiap motor dapat mempunyai arah CW atau CCW). 
    Konfigurasi Pin pada IC L293D

    Fungsi setiap Pin L293D :
    • Pin EN (Enable) : EN1.2, EN3.4. Berfungsi mengaktifkan driver motor. Selain itu pin ini juga berfungsi untuk menerima sinyal PWM sebagai penentu kecepatan motor.
    • Pin In (Input) : 1A, 2A, 3A, 4A. Berfungsi untuk menentukan arah perputaran motor DC
    • Pin Out (Output) : 1Y, 2Y, 3Y, 4Y. Berfungsi sebagai keluaran driver yang dihubungkan ke motor DC
    • Pin VCC1. Berfungsi sebagai sumber tegangan logic pada driver motor. Umumnya 3.3v atau 5v
    • Pin VCC2. Berfungsi sebagai sumber tegangan yang akan digunakan untuk memutar motor DC. Umumnya 4.5-36v
    • Pin GND (Ground) untuk dihubungkan ke mikrokontroller dan sumber tegangan motor sebagai tegangan referensi.

    Menentukan arah putar Motor DC pada IC L293D

    Motor 1 : Input1 (1A) dan Input2 (2A) digunakan untuk mengontrol arah putar motor yang terhubung pada output1 (1Y) dan output2 (2Y). Kontrol kecepatan ditentukan oleh PWM yang masuk ke Input EN1,2.
    Motor 2 : Input3 (3A) dan Input4 (4A) digunakan untuk mengontrol arah putar motor yang terhubung pada output3 (3Y) dan output4 (4Y). Kontrol kecepatan ditentukan oleh PWM yang masuk ke Input EN3,4


    Mengendalikan Motor DC

    Untuk memiliki kendali penuh atas motor DC kita harus mengontrol kecepatan dan arah putarannya. Hal ini dapat dicapai dengan menggabungkan kedua teknik ini.

    • PWM – untuk mengontrol kecepatan
    • H-Bridge – untuk mengontrol arah putaran

    PWM – untuk mengontrol kecepatan

    Kecepatan motor DC dapat dikontrol dengan mengubah tegangan inputnya. Teknik umum untuk melakukan ini adalah dengan menggunakan PWM (Pulse Wide Modulation).

    PWM adalah suatu teknik dimana nilai rata-rata tegangan input diatur dengan mengirimkan serangkaian pulsa ON-OFF.

    Tegangan rata-rata sebanding dengan lebar pulsa yang dikenal sebagai Duty Cycle .

    Gambar di bawah menunjukkan teknik PWM dengan siklus kerja dan tegangan rata-rata yang berbeda.

    Teknik PWM Modulasi Lebar Pulsa dengan Duty Cycle
    Teknik Modulasi Lebar Pulsa (PWM).

    H-Bridge – untuk mengontrol arah putaran

    Arah putaran motor DC dapat dikontrol dengan mengubah polaritas tegangan masukannya. Teknik umum untuk melakukan hal ini adalah dengan menggunakan jembatan-H.Rangkaian H-bridge terdiri dari empat saklar dengan motor di tengahnya membentuk susunan seperti H.

    L293D paling sering digunakan untuk menggerakkan motor, tetapi juga dapat digunakan untuk menggerakkan beban induktif apa pun seperti solenoid relai atau transistor daya switching besar.Ia mampu menggerakkan empat solenoid, empat motor DC satu arah, dua motor DC dua arah, atau satu motor stepper.IC L293D memiliki rentang suplai 4,5V hingga 36V dan mampu menghasilkan arus keluaran puncak 1,2A per saluran, sehingga bekerja sangat baik dengan sebagian besar motor kami.

    Referensi :

    Hasil analisis kimia yang meliputi kadar air, abu, protein, lemak dan karbohidrat menunjukan bahwa perlakuan H1 (hari pertama) memiliki kadar air tertinggi sedangkan perlakuan H3 (hari ketiga) memiliki kadar abu, protein, lemak, dan karbohidrat tertinggi. Dengan kisaran suhu dalam ruang 42,38 °C - 42,89 °C dan kelembaban udara (RH) 40%.





    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.








    • Prinsip Kerja

    Kondisi dari rangkaian “Kontrol Tanaman Pada Greenhouse (Lidah Buaya dan Hidroponik)” ialah rangkaian ini merupakan sebuah rangkaian dengan menggunakan komunikasi UART dimana digunakan 2 arduino pada rangkaian tersebut. Rangkaian ini menggunakan Arduino Uno Atmega328 sebagai perangkat mikrokontroller dan juga menggunakan alat dan komponen-komponen yaitu : Baterai, Arduino, LCD, Sensor uv, Sensor flame, sensor soil moisture, sensor touch, sensor pH, motor DC, motor servo, LED, Buzzer, resistor, dan motor driver L293D

             Sensor Flame

    Sensor flame digunakan pada rangkaian ini untuk mendeteksi adanya api didalam greenhouse nantinya. Dimana untuk keluarannya nanti akan dapat menghidupkan buzzer.

     

             Sensor Soil Moisture

    Sensor Soil Moisture berfungsi untuk mendeteksi kelembaban dari tanah yang ada pada tanaman lidah buaya dimana untuk kelembaban yang bagus untuk tanaman lidah buaya ialah 40%-50%, maka apabila sensor soil mendeteksi kelembaban tanah pada tanaman lidah buaya >60% yang akan ditampilkan di layar LCD  menandakan tanah dalam keadaan lembab maka akan dapat menghidupkan LED berwarna hijau. Tetapi jika sensor soil mendeteksi <60%, maka pada LCD akan menampilkan tulisan bahwa tanah kering dan juga akan menghidupkan indikator LED berwarna merah.

             Sensor pH cairan

    Sensor Ph disini berfungsi untuk mendeteksi nilai ph air yang ada pada tanaman hidroponik yang ada didalam greenhouse. Dimana untuk kondisinya sendiri ph yang baik untuk tanaman ialah antara 3,5-5. Jadi pada saat sensor ph mendeteksi nilai ph air <3 maka akan dapat memutar motor servo ke kiri untuk menambahkan cairan basa. Sedangkan pada saat ph>5 maka motor servo akan berputar kekanan yang menandakan penambahan cairan asam. LED biru akan hidup apabila ph tanaman hidroponik tidak sesuai dan LED kuning akan hidup apabila ph dari tanaman hidroonik tidak sesuai yaitu diluar rentan ph 3,5-5.

             Sensor Ultraviolet

    Sensor ultraviolet disini berfungsi sebagai menghitung intensitas cahaya yang dapat mengenai tanaman yang ada pada greenhouse. Dimana cahaya matahari yang terlalu berlebih akan dapat menghambat pertumbuhan pada greenhouse. Kondisinya pada saat tegangan yang terbaca pada sensor uv >2 maka akan membuat atap lapisan anti uv terbuka dan pada saat tegangan terdeteksi <2 maka akan membuat atap tertutup.

             Sensor Touch

    Sensor touch disini berfungsi untuk mendeteksi sentuhan yang akan dapat menghidupkan pompa air untuk menyiram tanaman yan ada pada greenhouse. Pada saat tanaman terdeteksi kering pada layar LCD maka kita dapat menyiram tanaman pada greenhouse dengan menekan sensor touch dan tanaman akan tersiram dengan sendirinya.


    • Master
    Main Flowchart


    Loop



    Flame Sensor




    Sensor pH




    Sensor Touch



    Sensor UV




    Sensor Soil Moisture



    Slave




    • Listing Program 

    Master

    //MASTER ARDUINO

    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd(0x27,20,4);  // menginisialisasi objek lcd dari kelas LiquidCrystal_I2
                                       // 0x27 adalah alamat I2C dari layar LCD. 
                                       // 20 adalah jumlah kolom pada layar LCD.
                                       // 4 adalah jumlah baris pada layar LCD.

    #define SOIL A0
    #define UV A1
    #define PH A2     //mendefinisikan pin pin analog dan digital
    #define FLAME 12
    #define TOUCH 13

    float calibration_value = 21.34;
    unsigned long int avgval;
    int buffer_arr[10], temp;    
    const float uvVoltageThreshold = 1.6; // Volt

    void setup()                                    //Semua kode dalam fungsi ini dieksekusi sekali
    {
      lcd.init();
      lcd.backlight();                              //Deklarasi pin A0 -A3 dan pin 8 sebagai INPUT
      pinMode(A0, INPUT);
      pinMode(A1, INPUT);
      pinMode(A2, INPUT);
      pinMode(12, INPUT);
      pinMode(13, INPUT);
      lcd.begin(16, 2);                             //Dimensi LCD yang digunakan
      Serial.begin(9600);                           //Set baud rate 9600 (baud rate standar)
    }

    void loop()   //Semua kode dalam fungsi ini dieksekusi berulang
    {
    int nilaiSOIL;
    int nilaiUV;
    int nilaiPH;  //mendeklarasikan variabel bertipe integer yang
    int nilaiFLAME;  //untuk menyimpan nilai yang dibaca sensor
    int nilaiTOUCH;
    float kelembapanTANAH;

      //PH
      for (int i = 0; i < 10; i++) {
        buffer_arr[i] = analogRead(PH);
        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;  //menghitung ketinggian air
       
       lcd.setCursor(0, 0);                       //mengatur posisi kursor di posisi 0,0 (kiri atas)
       lcd.print("PH Tanah = ");                //print tulisan tinggi air di mulai dr posisi 0,0
       lcd.setCursor(11, 0);                      //posisi kursor kolom 13 baris 0
       lcd.print(phval);                      //print ketinggian air si posisi sebelumnya
       lcd.setCursor(12, 0);                      //posisi kursor di kolom 14 baris 0

      if (phval < 4 )
      {
        Serial.write("1");  //mengirim kondisi 5 melalui komunikasi bahwa ph kurang dari 3cm
        
        lcd.setCursor(0, 0);                       //sama seperti diatas
        lcd.print("PH Tanah = ");
        lcd.setCursor(11, 0);
        lcd.print(phval);
        lcd.setCursor(12, 0);

        delay(100); //jeda atau delay 100ms
      }
      if (phval > 6)
      {
        Serial.write("2");  //mengirim kondisi 4 melalui komunikasi bahwa ph lebih dari 3cm
        delay(100);
        lcd.setCursor(0, 0);
        lcd.print("PH Tanah = ");
        lcd.setCursor(11, 0);
        lcd.print(phval);
        lcd.setCursor(12, 0);
      }
      if (phval > 6 && phval <4)
      {
        Serial.write("3");  //mengirim kondisi 4 melalui komunikasi bahwa tinggi air lebih dari 3cm
        delay(100);
        lcd.setCursor(0, 0);
        lcd.print("PH Tanah = ");
        lcd.setCursor(11, 0);
        lcd.print(phval);
        lcd.setCursor(12, 0);
      }

       //SOIL 
        nilaiSOIL = analogRead(SOIL); //membaca nilai analog dari sensor soil
        kelembapanTANAH = (100 - ((nilaiSOIL/1023.00)*100));
        if (kelembapanTANAH > 700) {
          Serial.write("4");                       //mengirim kondisi 1 melalui komunikasi bahwa tanah kering
          delay(100);
          //lcd.clear();
          lcd.setCursor(0, 1);                     //Menentukan posisi kursor pada awal penulisan
          lcd.print("Tanah : Kering");           //Menampilkan text pada LCD
        }
        if(kelembapanTANAH > 350 && kelembapanTANAH <700) {
          Serial.write("5");                       //mengirim kondisi 5 melalui komunikasi bahwa tanah NORMAL
           delay(100);
          //lcd.clear();
          lcd.setCursor(0, 1);                     //Menentukan posisi kursor pada awal penulisan
          lcd.print("Tanah : Normal.");           //Menampilkan text pada LCD
      }
        if(kelembapanTANAH < 350) {
          Serial.write("6");                       //mengirim kondisi 3 melalui komunikasi bahwa tanah basah
           delay(100);
          //lcd.clear();
          lcd.setCursor(0, 1);                     //Menentukan posisi kursor pada awal penulisan
          lcd.print("Tanah : Lembab.");           //Menampilkan text pada LCD
      }
          delay(100);
          
      //UV
        nilaiUV = analogRead(UV) * (5.0 / 1023.0);  //membaca nilai analog dari sensor rain
        if(nilaiUV > uvVoltageThreshold) {
        Serial.write("7"); // mengirim kondisi 2 melalui komunikasi bahwa keadaan ada hujan
        delay(100);
        }
        if(nilaiUV < uvVoltageThreshold) {
        Serial.write("8"); //mengirim kondisi 6 melalui komunikasi bahwa keadaan tidak ada hujan
        delay(100);
        }

      //TOUCH  
        nilaiTOUCH = digitalRead(TOUCH);  //membaca nilai digital dari sensor touch
        if (nilaiTOUCH == HIGH) { //mengecek apakah sensor high atau low
        Serial.write("9"); // Mengirimkan sinyal ke Slave Arduino kondisi 7 bahwa Touch Sensor aktif
        delay(100);
        }
        if (digitalRead(TOUCH) == LOW) { //mengecek apakah sensor high atau low
        Serial.write("b"); // Mengirimkan sinyal ke Slave Arduino kondisi 7 bahwa Touch Sensor aktif
        delay(100);
        }

      //FLAME
        nilaiFLAME = digitalRead(FLAME); //membaca nilai analog dari sensor LDR
        Serial.println(nilaiFLAME);
        if (nilaiFLAME == HIGH) { //mengecek apakah sensor high atau low
        Serial.write("a"); // Mengirimkan sinyal ke Slave Arduino kondisi 8 bahwa LDR Sensor aktif untuk menutup atap
        delay(100);
        }
        if (digitalRead(FLAME) == LOW) { //mengecek apakah sensor high atau low
        Serial.write("c"); // Mengirimkan sinyal ke Slave Arduino kondisi 8 bahwa LDR Sensor aktif untuk menutup atap
        delay(100);
      }
        delay(100);
    }

    Slave

    //SLAVE ARDUINO

    #include <Servo.h> //memasukkan library pada program

    Servo servoPH;  //mendeklarasikan objek servo PH

    //untuk motor DC
    #define pompaAIR 2 // Deklarasi pin 2 sebagai input 1 TOUCH
    #define in2 3
    #define ATAP 4 // Deklarasi pin 3 sebagai input 2 UV
    #define in4 5

    #define BUZZER 11 //Deklarasi PIN BUZZER OUTPUT FLAME
    #define ledlembab 9
    #define ledkering 8
    #define ledphbetul 6
    #define ledphsalah 7
    #define duration 2000 // Deklarasi durasi 2000 ms lama waktu motor dc berputar

    int data; //mendeklarasikan variabel integer data, untuk menyimpan data yang dibaca sensor

    void setup() // Semua kode dalam fungsi ini dieksekusi sekali
    {
      pinMode(pompaAIR, OUTPUT); // Deklarasi in1 sebagai OUTPUT TOUCH
      pinMode(ATAP, OUTPUT); // Deklarasi in2 sebagai OUTPUT UV
      pinMode(in2, OUTPUT);
      pinMode(in4, OUTPUT);
      pinMode(BUZZER, OUTPUT); //OUTPUT FLAME SENSOR
      pinMode(ledlembab, OUTPUT); // OUTPUT LED LEMBAB KETIKA SENSOR SOIL <500
      pinMode(ledkering, OUTPUT); // OUTPUT LED LEMBAB KETIKA SENSOR SOIL >700
      pinMode(ledphbetul, OUTPUT); //OUTPUT LED PH BETUL KETIKA 4 > PH > 6
      pinMode(ledphsalah, OUTPUT); //OUTPUT LED PH SALAH KETIKA PH >6 ATAU PH < 4
      servoPH.attach(10);
      Serial.begin(9600); // Set baud rate 9600
    }

    void loop() // Semua program dalam fungsi ini dieksekusi berulang
    {
      if (Serial.available() > 0) //memeriksa apakah ada data diterima dari master
      {
        data = Serial.read();
        if (data == '4') // Jika data yang dikirimkan berlogika TANAH KERING (SOIL <700)
        {
          digitalWrite(ledlembab, LOW);
          digitalWrite(ledkering, HIGH);
        }
        if (data == '5') // Jika data yang dikirimkan berlogika TANAH NORMAL ( 700 < SOIL < 500)
        {
          digitalWrite(ledlembab, LOW);
          digitalWrite(ledkering, LOW);
          delay(100);
        }
        if (data == '6') // Jika data yang dikirimkan berlogika TANAH BASAH (SOIL <500)
        {
          digitalWrite(ledlembab, HIGH);
          digitalWrite(ledkering, LOW);
          delay(100);
        }
        else if (data == '1') // Jika data yang dikirimkan berlogika PH < 4 SERVO BERPUTAR KE KIRI
        {
          digitalWrite(ledphbetul, LOW);
          digitalWrite(ledphsalah, HIGH);
          servoPH.write(0);
          delay(100);
        }
        else if (data == '2') // Jika data yang dikirimkan berlogika PH > 6 SERVO BERPUTAR KE KIRI
        {
          digitalWrite(ledphbetul, LOW);
          digitalWrite(ledphsalah, HIGH);
          servoPH.write(180);
          delay(100);
        }
        else if (data == '3') // Jika data yang dikirimkan berlogika  6 > PH > 4 KONDISI PH NORMAL 
        {
          digitalWrite(ledphbetul, HIGH);
          digitalWrite(ledphsalah, LOW);
          servoPH.write(90);
          delay(100);
        }
        else if (data == '9') { // Jika menerima sinyal dari Master bahwa Touch Sensor aktif
          digitalWrite(pompaAIR, HIGH); // Menggerakkan motor DC UNTUK MENGHIDUPKAN POMPA AIR
          digitalWrite(in2, LOW);
          delay(100);
        }
        else if (data == '7') { // Jika menerima sinyal dari Master bahwa UV < 1,6 ATAP TERTUTUP
          digitalWrite(ATAP, HIGH); // Menggerakkan MOTOR DC untuk menutup atap
          digitalWrite(in4, LOW);
          delay(100);
        }
        else if (data == '8') // Jika menerima sinyal dari Master bahwa UV > 1,6 ATAP TERBUKA
        {
          digitalWrite(ATAP, LOW); // Menggerakkan MOTOR DC untuk MAMBUKA ATAP
          digitalWrite(in4, LOW);
          delay(100);
        }
        else if (data == 'a') // Jika data yang dikirimkan berlogika TERDETEKSI API
        {
          digitalWrite(BUZZER, HIGH);
          delay(100);
        }
      }
    }




    Video simulasi Rangkaian
      


    Video Simulasi



    f) File Download  [Kembali]

    File Download Rangkaian Proteus [Unduh]  
    File Download Video Simulasi Prototype [Unduh]
    File Download HTML [Unduh]
    File Download Program Arduino Master [Unduh]                                                                  File Download Program Arduino Slave [Unduh]
    File Download Library Arduino [Unduh]
    File Download Datasheet Arduino [Unduh]
    File Download Datasheet Soil Moisture  [Unduh]
    File Download Datasheet Sensor Touch [Unduh]
    File Download Datasheet Sensor pH [Unduh]
    File Download Datasheet Sensor Ultraviolet [Unduh]
    File Download Datasheet Sensor Flame [Unduh]
    File Download Datasheet Motor DC [Unduh]
    File Download Datasheet Buzzer [Unduh]
    File Download Datasheet Motor Servo [Unduh]
    File Download Datasheet IC L293D [Unduh]
    File Download Datasheet Dioda [Unduh]
    File Download Datasheet Kapasitor [Unduh]
    File Download Datasheet Resistor [Unduh]
    File Download Datasheet Transistor [Unduh]









Tidak ada komentar:

Posting Komentar

Mikro 2024 Modul  4 [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI     1. Pendahuluan     2. Tujuan     3. Alat dan Bahan     4. Dasar...