PROTOTYPE AUTOMATIC WATERING PLANT AND MONITORING WATER LEVEL WITH ARDUINO UNO LAPORAN Diajukan untuk memenuhi salah satu tugas mata kuliah Instrumentasi di Program Studi D3 – Teknik Pendingin dan Tata Udara
Oleh : Ja’far Shiddiq Ismail Rama AJi Al Hakim Selvi Mustika Apriani
141611048 141611057 141611059
Kelas : 2B
Program Studi D3 – Teknik Pendingin dan Tata Udara Jurusan Teknik Refrigerasi dan Tata Udara 2016
1
BAB I PENDAHULUAN
1.1 Latar Belakang Teknologi sebagai hasil peradaban manusia yang semakin maju dirasakan sangat membantu dan mempermudah manusia dalam memenuhi kebutuhan hidupnya di zaman modern seperti sekarang ini. Berbagai macam penemuan merambah berbagai aspek kehidupan manusia mulai dari transportasi, telekomunikasi, komputer, kedokteran, pertanian, sampai dunia industri yang semakin canggih. Banyak masyarakat yang memanfaatkan tanaman hias sebagai media untuk memperindah halaman rumah ataupun hanya sekedar penghilang rasa stress setelah bekerja seharian. Bagi sebagian kecil masyarakat memiliki tanaman hias ataupun tumbuhan lainnya merupakan suatu kesenangan tersendiri. Perlunya perawatan khusus yang dilakukan si pemilik tanaman hias atau tumbuhan lainnya menjadi salah satu komponen penting dalam proses pemeliharaan dan perawatan tanaman hias atau tumbuhan tersebut, contohnya yang paling sederhana adalah menyiram tanaman dan memberi pupuk. Bagi seorang yang sudah terampil karena sudah memiliki jam terbang yang tinggi dalam merawat tanaman hias atau tumbuhan lainnya, tentu melakukan perawatan sangatlah mudah. Tapi bagaimana halnya jika seorang pemula yang belum biasa melakukan perawatan pada tumbuhan tentu hal ini menjadi hal yang cukup sulit untuk dilakukan. Salah satu hal untuk memenuhi kebutahan tanaman adalah dengan memberikan asupan air yang sesuai dengan kadar kelembaban tanah minimal yang diperlukan oleh tanaman tersebut. Penyiram tanaman otomatis merupakan instalasi yang berfungsi untuk membuka, mengatur, dan menutup aliran air yang membasahi tanah tanaman. Dengan melihat kondisi sekarang ini dimana cuaca sulit sekali untuk ditebak. Panas dan hujan datang silih berganti tak menentu. Akibatnya kelembaban tanah tanaman fluktuatif terhadap cuaca. Penyiraman tanaman dengan perantara manusia menyebabkan kurangnya control suplai air yang kurang maksimal. Faktor kelalaian manusia (Human Error) juga dapat menyebabkan hal yang tidak diinginkan. Sangatlah penting adanya alat yang dapat membuka, mengatur dan menutup aliran air yang membasahi tanah tanaman yang dapat bekerja sewaktu-waktu dengan cepat dengan gerakan membuka, mengatur dan menutup sendiri secara otomatis. Dengan perkembangan teknologi mikroprosesor/mikrokontroler, muncul sebuah gagasan untuk menciptakan suatu inovasi alat yang dapat membantu para pemilik tanaman agar tanaman atau tumbuhannya terjaga. Maka dari itu dirancanglah sebuah alat dengan teknologi yang sedang berkembang saat ini, sehingga dapat membantu pengoperasian pembukaan dan penutupan katup selang air secara otomatis berbasis mikrokontroler Arduino UNO ATmega328. Alat ini menggunakan prinsip kerja sensor kelembaban tanah (soil 2
moisture sensor) untuk mendeteksi tingkat kelembaban tanah tanaman dan water level control untuk pendeteksi ketinggian air atau sebagai sensor ketinggian air pada water tank (tempat persediaan air). Dengan alat ini maka tanaman hias atau tumbuhan lainnya bisa terjaga dengan maksimal dan memudahkan untuk proses pembukaan dan penutupan katup pada selang air. Dengan menggunakan tampilan serial monitor di alat ini untuk menunjukkan informasi tingkat kelembaban dan ketingan air yang terdapat pada prototipe ini. Berdasarkan masalah yang terjadi, maka satu solusi untuk mengatasi masalah tersebut adalah dengan merancang “Prototype Automatic Watering Plant and Monitoring Water Level With Arduino UNO Atmega328”. Sehingga dengan adanya alat ini, diharapkan dapat membantu dan mempermudah pembukaan dan penutupan katup pada selang air.
1.2 Tujuan Berdasarkan latar belakang masalah, tujuan dari perancangan projek yaitu sebagai berikut. 1. Merealisasikan rancangan hardware Prototype Automatic Watering Plant and Monitoring Water Level With Arduino UNO Atmega328. 2. Merealisasikan rancangan software Prototype Automatic Watering Plant and Monitoring Water Level With Arduino UNO Atmega328. 3. Mengetahui unjuk kerja Prototype Automatic Watering Plant and Monitoring Water Level With Arduino UNO Atmega328. 1.3 Rumusan Masalah Adapun rumusan masalah berdasarkan tujuan masalah, diantaranya sebagai berikut. 1. Bagaimana merancang hardware Prototype Automatic Watering Plant And Monitoring Water Level With Arduino UNO Atmega328? 2. Bagaimana mengaplikasikan software Prototype Automatic Watering Plant And Monitoring Water Level With Arduino UNO Atmega328? 3. Bagaimana unjuk kerja Prototype Automatic Watering Plant And Monitoring Water Level With Arduino UNO Atmega328? 1.4 Metode Penelitian Metode penelitian yang dilakukan dalam penyelesaian tugas akhir ini, yakni sebagai berikut. 1. Studi Literatur 2. Perancangan Alat 3. Pembuatan Alat 4. Pembuatan Program 5. Pengujian Sistem 3
6. 7. 8.
Pengumpulan Data Analisa Data Pengambilan Simpulan
4
BAB II DASAR TEORI
Dalam pembuatan proyek akhir berbasis Arduino ini, komponen-komponen utama yang digunakan antara lain sebagai berikut : 2.1 Arduino UNO 2.1.1 Pengertian Mikrokontroler Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input output. Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. 2.1.2 Arduino Arduino merupakan rangkaian elektronik yang bersifat opensource, serta memiliki perangkat keras dan lunak yang mudah untuk digunakan. Arduino dapat mengenali lingkungan sekitarnya melalui berbagai jenis sensor dan dapat mengendalikan lampu, motor, dan berbagai jenis aktuator lainnya. Arduino mempunyai banyak jenis, di antaranya Arduino Uno, Arduino Mega 2560, Arduino Fio, dan lainnya. 2.1.3 Arduino UNO ATMEGA328 Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328. Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai output PWM, 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol reset. Arduino mampu mensupportmikrokontroller; dapat dikoneksikan dengan komputer menggunakan kabel USB (Feri Djuandi, 2011).
5
Menurut (FeriDjuandi, 2011), Arduino merupakan sebuah board minimum system mikrokontroler yang bersifat open source. Didalam rangkaian board arduino terdapat mikrokontroler AVR seri ATMega 328 yang merupakan produk dari Atmel. Arduino memiliki kelebihan tersendiri disbanding board mikrokontroler yang lain selain bersifat open source, arduino juga mempunyai bahasa pemrogramanya sendiri yang berupa bahasa C. Selain itu dalam board arduino sendiri sudah terdapat loader yang berupa USB sehingga memudahkan kita ketika kita memprogram mikrokontroler didalam arduino. Sedangkan pada kebanyakan board mikrokontroler yang lain yang masih membutuhkan rangkaian loader terpisah untuk memasukkan program ketika kita memprogram mikrokontroler. Port USB tersebut selain untuk loader ketika memprogram, bisa juga difungsikan sebagai port komunikasi serial. Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan 14 pin digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan sebagai output digital jika diperlukan output digital tambahan selain 14 pin yang sudah tersedia. Untuk mengubah pin analog menjadi digital cukup mengubah konfigurasi pin pada program. Dalam board kita bisa lihat pin digital diberi keterangan 0-13, jadi untuk menggunakan pin analog menjadi output digital, pin analog yang pada keterangan board 0-5 kita ubah menjadi pin 14-19. dengan kata lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16. Sifat open source arduino juga banyak memberikan keuntungan tersendiri untuk kita dalam menggunakan board ini, karena dengan sifat open source komponen yang kita pakai tidak hanya tergantung pada satu merek, namun memungkinkan kita bisa memakai semua komponen yang ada dipasaran. Bahasa pemrograman arduino merupakan bahasa C yang sudah disederhanakan syntax bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan mendalami mikrokontroller. Deskripsi Arduio UNO:
6
Summary Microcontroller
ATmega328
Operating Voltage
5V
Input Voltage (recommended)
7-12V
Input Voltage (limits)
6-20V
Digital I/O Pins
14 (of which 6 provide PWM output)
Analog Input Pins
6
DC Current per I/O Pin
40 mA
DC Current for 3.3V Pin
50 mA
Flash Memory
32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
Clock Speed
16 MHz
Power Arduino dapat diberikan power melalui koneksi USB atau power supply. Powernya diselek secara otomatis. Power supply dapat menggunakan adaptor DC atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack adaptor 7
pada koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20 volt. Jika supply kurang dari 7V, kadangkala pin 5V akan menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika menggunakan lebih dari 12 V, tegangan di regulator bisa menjadi sangat panas dan menyebabkan kerusakan pada board. Rekomendasi tegangan ada pada 7 sampai 12 volt. Penjelasan pada pin power adalah sebagai berikut : Vin Tegangan input ke board arduino ketika menggunakan tegangan dari luar (seperti yang disebutkan 5 volt dari koneksi USB atau tegangan yang diregulasikan). Pengguna dapat memberikan tegangan melalui pin ini, atau jika tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini. 5V Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board, atau supply oleh USB atau supply regulasi 5V lainnya. 3V3 Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maximumnya adalah 50mA Pin Ground Berfungsi sebagai jalur ground pada arduino Memori ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM dan 1 KB untuk EEPROM. Input & Output Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau menerima maximum 40 mA dan memiliki internal pull-up resistor (disconnected oleh default) 20-50K Ohm. Beberapa pin memiliki fungsi sebagai berikut : a.
b.
Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim (TX) TTL data serial. Pin ini terhubung pada pin yang koresponding dari USB ke TTL chip serial. Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger sebuah interap pada low value, rising atau falling edge, atau perubahan nilai. 8
c. d.
e.
PWM : 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan fungsi analogWrite(). SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport komunikasi SPI, yang mana masih mendukung hardware, yang tidak termasuk pada bahasa arduino. LED : 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika pin bernilai HIGH, LED hidup, ketika pin LOW, LED mati.
Komunikasi Uno Arduino memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lain. ATmega328 ini menyediakan UART TTL (5V) komunikasi serial, yang tersedia pada pin digital 0 (RX) dan 1 (TX).Firmware Arduino menggunakan USB driver standar COM, dan tidak ada driver eksternal yang dibutuhkan. Namun, pada Windows, file. Ini diperlukan. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data sederhana yang akan dikirim keboard Arduino. RX dan TX LED diboard akan berkedip ketika data sedang dikirim melalui chip USB-toserial dan koneksi USB ke komputer. Software Arduino Arduino Uno dapat diprogram dengan perangkat lunak Arduino. Pada ATMega328 di Arduino terdapat bootloader yang memungkinkan Anda untuk meng-upload kode baru untuk itu tanpa menggunakan programmer hardware eksternal. IDE Arduino adalah software yang sangat menggunakan Java. IDE Arduinoterdiri dari: a. b.
c.
canggih
ditulis
dengan
Editor program, sebuah window yang memungkinkan pengguna menulis dan mengeditprogram dalam bahasa Processing. Compiler, sebuah modul yang mengubah kode program (bahasa Processing) menjadi kode biner. Bagaimanapun sebuah mikrokontroler tidak akan bisa memahami bahasa Processing. Yang bisa dipahami oleh mikrokontroler adalah kode biner. Itulah sebabnya compilerdiperlukan dalam hal ini. Uploader, sebuah modul yang memuat kode biner dari komputer ke dalam memory didalam papan Arduino.
Sebuah kode program Arduino umumnya disebut dengan istilahsketch. Kata“sketch” digunakan secara bergantian dengan “kode program” dimana keduanya memiliki arti yang sama.
9
Gambar Tampilan IDE Arduino dengan sebuah sketch
Bahasa Pemograman Arduino Berbasis Bahasa C Seperti yang telah dijelaskan diatas program Arduino sendiri menggunakan bahasa C.walaupun banyak sekali terdapat bahasa pemrograman tingkat tinggi (high level language) seperti pascal, basic, cobol, dan lainnya. Walaupun demikian, sebagian besar dari paraprogramer profesional masih tetap memilih bahasa C sebagai bahasa yang lebih unggul, berikut alasan-alasannya: a. Bahasa C merupakan bahasa yang powerful dan fleksibelyang telah terbukti dapat menyelesaikan program-program besar seperti pembuatan sistem operasi, pengolah gambar (seperti pembuatan game) dan juga pembuatan kompilator bahasa pemrograman baru. b. Bahasa C merupakan bahasa yang portabel sehingga dapat dijalankan di beberapa sistem operasi yang berbeda. Sebagai contoh program yang kita tulis dalam sistem operasi windows dapat kita kompilasi didalam sistem operasi linux dengan sedikit ataupun tanpa perubahan sama sekali. c. Bahasa C merupakan bahasa yang sangat populer dan banyak digunakan oleh programer berpengalaman sehingga kemungkinan besarlibrary pemrograman telah banyak disediakan oelh pihak luar/lain dan dapat diperoleh dengan mudah. d. Bahasa C merupakan bahasa yang bersifat modular, yaitu tersusun atas rutin-rutin tertentu yang dinamakan dengan fungsi (function) dan fungsifungsi tersebut dapat digunakan kembali untuk pembuatan programprogram lainnya tanpa harus menulis ulang implementasinya. e. Bahasa C merupakan bahasa tingkat menengah (middle level language) sehingga mudah untuk melakukan interface (pembuatan program antar muka) ke perangkat keras. f. Struktur penulisan program dalam bahasa C harus memiliki fungsi utama, yang bernama main(). Fungsi inilah yang akan dipanggil pertama kali pada saat proses eksekusi program. Artinya apabila kita mempunyai fungsi lain 10
selain fungsi utama, maka fungsi lain tersebut baru akan dipanggil pada saat digunakan. Oleh karena itu bahasa C merupakan bahasa prosedural yang menerapakan konsep runtutan (program dieksekusi per baris dari atas ke bawah secara berurutan), maka apabila kita menuliskan fungsi-fungsi lain tersebut dibawah fungsi utama, maka kita harus menuliskan bagian prototipe (prototype), hal ini dimaksudkan untuk mengenalkan terlebih dahulu kepada kompiler daftar fungsi yang akan digunakan di dalam program. Namun apabila kita menuliskan fungsifungsi lain tersebut diatas atau sebelum fungsi utama, maka kita tidak perlu lagi untuk menuliskan bagian prototipe diatas (Djuandi, Feri. (2011)). Selain itu juga dalam bahasa C kita akan mengenal file header, biasa ditulis dengan ekstensi h(*.h), adalah file bantuan yang yang digunakan untuk menyimpan daftar-daftar fungsi yang akan digunakan dalam program. Bagi anda yang sebelumnya pernah mempelajari bahasa pascal, file header ini serupa dengan unit. Dalam bahasa C, file header standar yang untuk prosesinput/output adalah <stdio.h>. Perlu sekali untuk diperhatikan bahwa apabila kita menggunakanfile header yang telah disediakan oleh kompilator, maka kita harus menuliskannya didalam tanda‘<’ dan ‘>’ (misalnya <stdio.h>). Namun apabila menggunakan file headeryang kita buat sendiri, maka file tersebut ditulis diantara tanda “ dan ” (misalnya “cobaheader.h”). perbedaan antara keduanya terletakpada saat pencerian file tersebut. Apabila kita menggunakan tanda <>, maka file tersebut dianggap berada pada direktori deafault yang telah ditentukan oleh kompilator. Sedangkan apabila kita menggunakan tanda “”, maka file header dapat kita dapat tentukan sendiri lokasinya. File header yang akan kita gunakan harus kita daftarkan dengan menggunakan directive #include.Directive #include ini berfungsi untuk memberi tahu kepada kompilator bahwa program yang kita buat akan menggunakan filefile yang didaftarkan. Berikut ini contoh penggunaan directive #include. #include<stdio.h> #include<stdlib.h> #include”myheader.h” Setiap kita akan menggunakan fungsi tertentu yang disimpan dalam sebuah file header, maka kita juga harus mendaftarkan file headernya dengan menggunakan directive #include. Sebagai contoh, kita akan menggunakan fungsigetch() dalam program, maka kita harus mendaftarkan file header.
11
2.2 Sensor Kelembaban Soil Moisture sensor adalah sensor yang dapat mendeteksi kelembaban tanah. Ini versi terbarunya. Sensor ini sangat sederhana, tetapi sangat ideal untuk memantau kelembaban taman kota, atau tingkat air pada tanaman pekarangan rumah Anda. Sensor ini terdiri dua probe untuk melewatkan arus melalui tanah, kemudian membaca resistansinya untuk mendapatkan tingkat kelembaban. Semakin banyak air membuat tanah lebih mudah menghantarkan listrik (resistansi kecil), sedangkan tanah yang kering sangat sulit menghantarkan listrik (resistansi besar).
2.3 Mini Servo Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo.
2.4 Sensor Ultrasonik Sensor ultrasonik merupakan sensor yang bekerja dengan cara memancarkan suatu gelombang dan kemudian menghitung waktu pantulan gelombang tersebut.
12
Gelombang ultrasonik bekerja pada frekuensi mulai 20 kHz hingga sekitar 20 MHz. Frekuensi kerja yang digunakan dalam gelombang ultrasonik bervariasi tergantung pada medium yang dilalui, mulai dari kerapatan rendah pada fasa gas, cair hingga padat.Secara matematis gelombang ultrasonik dapat dirumuskan sebagai : s = v.t/2 dimana s adalah jarak dalam satuan meter, v adalah kecepatan suara yaitu 344 m/detik dan t adalah waktu tempuh dalam satuan detik. Ketika gelombang ultrasonik menumbuk suatu penghalang maka sebagian gelombang tersebut akan dipantulkan sebagian diserap dan sebagian yang lain akan diteruskan. Gelombang yang diserap akan dihitung oleh komparator dan diteruskan menjadi bilangan binanry.
2.5 Module Relay Relay adalah sebuah alat elektro mekanik yang bekerja dengan memanfaatkan teori arus listrik yang menghasilkan medan magnet. Pada dasarnya relay tidak berbeda dengan kontaktor dalam hal prinsip kerja. Kebanyakan relay mempunyai ukuran kecil, yang mempunyai fungsi Normally Open dan Normally Close.
2.6 Buzzer Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada 13
diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).
2.7 Pompa Akuarium Pompa udara untuk akuarium adalah alat untuk memasukkan udara ke dalam air akuarium melalui difuser, sehingga udara terpecah menjadi gelembung-gelembung kecil, memperkaya kandungan oksigen air. Alat ini terbuat dari logam. Bentuknya seperti kotak segi empat yang bagian dasarnya menonjol ke depan. Pada bagian belakangnya terpasang kabel listrik. Bila alat ini digunakan, kabel listrik itu dihubungkan dengan sumber listrik. Di tengahtengah sisi depannya terdapat sebuah roda yang terbuat dari plat logam bundar. Bila dihubungkan dengan arus listrik, roda akan berputar dan menggerakkan pompa yang terletak disampingnya. Di depan pompa terdapat dua buah pipa logam. Pipa yang satu gunanya untuk mengisap udara dan yang lainnya untuk mengeluarkan udara ketika pompa bekerja.
2.8 LED Lampu LED atau kepanjangannya Light Emitting Diode adalah suatu lampu indikator dalam perangkat elektronika yang biasanya memiliki fungsi untuk menunjukkan status dari perangkat elektronika tersebut. Misalnya pada sebuah komputer, terdapat lampu LED power dan LED indikator untuk processor, atau dalam monitor terdapat juga lampu LED power dan power saving. Lampu LED terbuat dari plastik dan dioda semikonduktor yang dapat menyala apabila dialiri tegangan listrik rendah (sekitar 1.5 volt DC). Bermacam-macam warna dan bentuk dari lampu LED, disesuaikan dengan kebutuhan dan fungsinya.
14
2.9 Resistor Resistor adalah komponen dari sirkuit yang menolak aliran arus listrik. Ini memiliki dua terminal dimana listrik harus lulus, dan dirancang untuk drop tegangan arus yang mengalir dari satu terminal ke yang lain.Resistor terutama digunakan untuk membuat dan memelihara arus yang aman yang dikenal dalam komponen listrik.
15
BAB III PERENCANAAN DAN REALISASI SISTEM
3.1 Alat dan Bahan Secara keseluruhan, perangkat yang digunakan dalam pembuatan alat penyiram tanaman otomatis yaitu sebagai berikut : 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Arduino UNO Moisture Sensor LED Module Relay 5VDC-250VAC Pompa Akuarium PCB Mini Servo Kabel Arduino Software Power Supply / baterai Sensor Ultrasonik Buzzer Resistor 10Ω Terminal Blok Spacer Female & Male Header Akrilik Penampung air
16
3.2 Skematik Diagram
Gambar 3.1 diagram skematik sistem
Berdasarkan gambar 3.1 pengkabelan alat penyiram tanaman otomatis dan control ketinggian air berbasis mikrokontroler Arduino Atmega328 adalah sebagai berikut: 1.
LED, kaki anoda melalui resistor 10 Ω dihubungkan dengan digital output Arduino UNO pada pin 2, 3, 4, 5, 6, 7, 8, 17, dan 18 (analog input pin A3 dan A4 diubah konfigurasinya menjadi digital output pin 17 dan 18). Sedangkan kaki katoda dihubungkan dengan pin GND Arduino UNO.
2.
Buzzer, kutub positif dihubungkan dengan digital output Arduino UNO pada pin 9. Sedangkan kutub negative dihubungkan dengan pin GND Arduino UNO.
3.
MicroServo_1 dan MicroServo_2, dihubungkan dengan digital output Arduino UNO pada pin 12 dan 13. Vcc dihubungkan dengan sumber tegangan 5V Arduino UNO dan GND dihubungkan dengan pin GND Arduino UNO.
4.
Ultrasonik HC-SR04, echoPin dan trigPin 10 dihubungkan dengan pin 10 dan 11 sebagai digital input. Vcc dihubungkan dengan sumber tegangan 5V Arduino UNO dan GND dihubungkan dengan pin GND Arduino UNO.
5.
Soil Moisture Sensor_1 dan Soil Moisture Sensor_2, dihubungkan dengan analog input Arduino UNO yaitu pada pin A0 dan A1. Vcc dihubungkan dengan sumber tegangan 5V Arduino UNO dan GND dihubungkan dengan pin GND Arduino UNO. 17
6.
Relay Modul, dihubungkan dengan digital output Arduino UNO pada pin 16 (analog input pin A2 diubah konfigurasinya menjadi digital output pin 16). Vcc dihubungkan dengan sumber tegangan 5V Arduino UNO dan GND dihubungkan dengan pin GND Arduino UNO.
3.3 Cara Kerja Sistem
DISPLAY Serial Monitor
Buzzer
LED Display
AKTUATOR
TRANSDUCER Ultrasonik HC-SR04
Driver (Relay Modul)
Soil Moisture Sensor
MIKROKONTROLLER ARDUINO UNO R3 ATmega 328 P
Micro Servo
Water Pump
Valve
Gambar 3.2 diagram blok rangkaian pada sistem
Pada Gambar 3.2 dapat dilihat bagaimana proses yang dilakukan pada simulasi alat penyiram tanaman otomatis dan control ketinggian air berbasis mikrokontroler Arduino Atmega328: 1.
Ultrasonik HC-SR04 merupakan sensor yang digunakan sebagai sensor ketinggian air yang digunakan untuk mengukur tinggi permukaan air di dalam wadah air (water tank).
2.
Soil Moisture Sensor merupakan sensor kelembaban tanah yang digunakan untuk mengukur dan mendeteksi tingkat kelembaban tanah yang menjadi media tanam tanaman.
3.
Mikrokontroler berfungsi sebagai pusat pengolah data dan pusat pengendali sistem.
4.
Driver (Relay Modul) berfungsi sebagai saklar sekaligus sebagai pengaman Mikrokontroler terhadap tegangan AC 220 volt dimana untuk mengenergize coil relay dibutuhkan tegangan 5 volt.
18
5.
Pompa Akuarium berfungsi untuk mengalirkan air sehingga air di water tank bisa menuju media tanam tanaman melalui selang.
6.
MicroServo berfungsi sebagai pembuka dan penutup Valve untuk mengatur suplai air.
7.
LED berfungsi penampil status suplai air, Pompa Akuarium, dan tinggi permukaan air di water tank.
8.
Buzzer berfungsi alarm indicator yang menandakan air di water tank akan habis.
9.
Serial Monitor berfungsi sebagai monitoring tingkat kelembaban tanah dan ketinggian permukaan air.
Berdasarkan Gambar 3.2 dapat dijelaskan bagaimana cara kerja dari simulasi alat penyiram tanaman otomatis dan control ketinggian air berbasis mikrokontroler Arduino Atmega328, yaitu inputan dari Soil Moisture Sensor yang terletak pada tanah sebagai media tanam, kemudian oleh mikrokontroler tegangan keluaran dari Soil Moisture Sensor diolah menjadi nilai kelembaban tanah oleh mikrokontroler. Setelah data di dalam mikrokontroler sudah diolah, melalui driver (relay modul) akan menggerakkan pompa akuarium dan MicroServo serta LED sebagai indikatornya. Selain itu, inputan dari Ultrasonik HC-SR04 yang disimpan diatas water tank, kemudian oleh mikrokontroler tegangan keluaran dari Ultrasonik HC-SR04 diolah menjadi ketinggian permukaan air oleh mikrokontroler. Setelah data di dalam mikrokontroler sudah diolah dan LED sebagai penampilnya. Sedangkan serial monitor akan memonitoring besarnya tingkat kelembaban tanah dan ketinggian air.
3.4 Perangkat Lunak (Software) Perangkat lunak yang digunakan adalah Arduino Software versi 1.0.1 dengan program yang dimasukkan adalah sebagai berikut : int led0 = 17; int led1 = 18; int led2 = 2; const int led3 = 3; int led4 = 4; int led5 = 5; int led6 = 6; int led7 = 7; int led8 = 8; int moistureSensor_1 = 0; int moistureSensor_2 = 1; #define RELAY_ON 0 #define RELAY_OFF 1 #define buzzer 9 #define echoPin 10 19
#define trigPin 11 #define Relay 16 #include<Servo.h> Servo myservo_1; Servo myservo_2; int sound; int ledState = LOW; unsigned long previousMillis = 0; const long interval = 20; void setup() { Serial.begin(9600); pinMode(led0,OUTPUT); pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); pinMode(led4,OUTPUT); pinMode(led5,OUTPUT); pinMode(led6,OUTPUT); pinMode(led7,OUTPUT); pinMode(led8,OUTPUT); pinMode(Relay,OUTPUT); pinMode(trigPin,OUTPUT); pinMode(echoPin,INPUT); pinMode(buzzer,OUTPUT); digitalWrite(Relay,RELAY_OFF); myservo_1.attach(12); myservo_2.attach(13); } void loop() { int sensorValue_1 = analogRead(moistureSensor_1); Serial.print("sensor 1 = "); Serial.println(sensorValue_1); int sensorValue_2 = analogRead(moistureSensor_2); Serial.print("sensor 2 = "); Serial.println(sensorValue_2); long duration, distance, tinggi; digitalWrite(trigPin,LOW); delayMicroseconds(2); digitalWrite(trigPin,HIGH); delayMicroseconds(10); duration = pulseIn(echoPin,HIGH); distance=(duration/2)/29.1; tinggi=24-distance; unsigned long currentMillis = millis();
20
if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } } { if(distance>=1 && distance<7){ digitalWrite(led8,HIGH); digitalWrite(led7,HIGH); digitalWrite(led6,HIGH); digitalWrite(led5,HIGH); digitalWrite(led4,HIGH); noTone(buzzer); } if(distance>=7 && distance<9){ digitalWrite(led8,LOW); digitalWrite(led7,HIGH); digitalWrite(led6,HIGH); digitalWrite(led5,HIGH); digitalWrite(led4,HIGH); noTone(buzzer); } if(distance>=9 && distance<11){ digitalWrite(led8,LOW); digitalWrite(led7,LOW); digitalWrite(led6,HIGH); digitalWrite(led5,HIGH); digitalWrite(led4,HIGH); noTone(buzzer); } if(distance>=11 && distance<13){ digitalWrite(led8,LOW); digitalWrite(led7,LOW); digitalWrite(led6,LOW); digitalWrite(led5,HIGH); digitalWrite(led4,HIGH); noTone(buzzer); } if(distance>=13 && distance<15){ digitalWrite(led8,LOW); 21
digitalWrite(led7,LOW); digitalWrite(led6,LOW); digitalWrite(led5,LOW); digitalWrite(led4,HIGH); } if (distance>=15 && distance<=25){ digitalWrite(led8,LOW); digitalWrite(led7,LOW); digitalWrite(led6,LOW); digitalWrite(led5,LOW); digitalWrite(led4,LOW); tone(buzzer,3000,150); digitalWrite(led3, ledState); } if(distance>25 || distance<1){ Serial.println("Jarak diluar jangkauan!"); digitalWrite(led8,LOW); digitalWrite(led7,LOW); digitalWrite(led6,LOW); digitalWrite(led5,LOW); digitalWrite(led4,LOW); digitalWrite(led3,LOW); noTone(buzzer); } else{ Serial.print("Ketinggian air = "); Serial.print(tinggi); Serial.println("cm"); } delay(250); } { if(sensorValue_1 < 680) { digitalWrite(led1,HIGH); myservo_1.write(2); digitalWrite(Relay,RELAY_ON); } else{ digitalWrite(led1,LOW); myservo_1.write(180); digitalWrite(Relay,RELAY_ON); } if(sensorValue_2 < 770){ 22
digitalWrite(led2,HIGH); myservo_2.write(2); digitalWrite(Relay,RELAY_ON); }
else{ digitalWrite(led2,LOW); myservo_2.write(180); digitalWrite(Relay,RELAY_OFF); } if(sensorValue_1 < 680 && sensorValue_2 <= 950){ digitalWrite(Relay,RELAY_ON); } if(sensorValue_1 < 680 || sensorValue_2 > 770){ digitalWrite(led0,HIGH); } if(sensorValue_1 >= 680 && sensorValue_2 >= 770){ digitalWrite(led0,LOW); } else{ digitalWrite(led0,HIGH); } delay(0); } }
23
BAB IV PENGUJIAN DAN ANALISA PERANGKAT SISTEM
4.1 Pengujian Alat Pengujian alat dilakukan untuk mendapatkan data penelitian. Dalam pengujian alat ini dilakukan dengan dua pengujian, yaitu : 4.1.1 Uji Fungsional Pengujian ini dilakukan dengan cara menguji setiap bagian alat berdasarkan karakteristik dan fungsi masing-masing. Pengujian ini dilakukan untuk mengetahui apakah setiap bagian dari perangkat telah bekerja sesuai dengan fungsi dan keinginan. 4.1.2 Uji Unjuk Kerja Pengujian unjuk kerja alat dilakukan dengan cara melihat unjuk kerja alat. Hal-hal yang perlu diamati antara lain : rangkaian sistem minimum, nilai input sensor Soil Moisture Sensor dan Ultrasonik HC-SR04, serial monitor, buzzer, LED, pompa akuarium, dan gerakan MicroServo. Dari pengujian ini akan diketahui kinerja dari alat yang dibuat.
4.2 Hasil Pengujian 4.2.1 Pengujian Soil Moisture Sensor Tabel 4.1. Tabel Pengujian Soil Moisture Sensor
Condition Number
Soil Moisture Sensor
Value
Valve Condition 1
Valve Condition 2
(Open / Close)
(Open / Close)
1
<680
Open
Not connected
2
<770
Not connected
Open
1
>680
Close
Not connected
2
>770
Not connected
Close
1
<680
Open
Not connected
2
>770
Not connected
Close
1
>680
Close
Not connected
2
<770
Not connected
Open
1
Pump Condition (ON / OFF) ON
2
OFF
3
ON
4
ON
24
Pengujian dilakukan pada dua tanaman dengan tingkat kelembaban tanah yang berbeda. Masing-masing media tanam tanaman disimpan soil moisture sensor yang diatur <680 untuk sensor_1 dan <770 untuk sensor_2. Pada saat kedua soil moisture sensor membaca tingkat kelembaban tanah yang telah diatur (<680 untuk sensor_1 dan <770 untuk sensor_2) maka pompa akan ON dan kedua katup terbuka sehingga air akan menyiram tanaman. Pada saat salah satu soil moisture sensor membaca tingkat kelembaban tanah yang melebihi nilai yang telah diatur. Sementara pada waktu yang sama soil moisture sensor lainnya membaca tingkat kelembaban tanah yang masih kurang dari nilai yang telah diatur, maka kondisi pompa akan tetap ON dan katup hanya akan terbuka untuk menyiram tanaman yang tingkat kelembabannya masih dibawah tingkat kelembaban yang telah diatur. Pada saat kedua soil moisture sensor membaca tingkat kelembaban tanah yang melebihi nilai yang telah diatur (<680 untuk sensor_1 dan <770 untuk sensor_2) maka pompa akan OFF dan kedua katup tertutup sehingga air akan berhenti menyiram tanaman.
4.2.2 Pengujian Ultrasonik HC-SR04 dan LED Pengujian ini bertujuan untuk mengetahui tingkat ketinggian permukaan air yang terdapat didalam water tank diikuti pula oleh nyala LED. Tabel 4.2 Tabel Pengujian Ultrasonik HC-SR04 dan LED
No.
Jarak ultrasonic dengan permukaan air (cm)
LED LED LED Ketinggian LED LED LED Merah Merah Merah Buzzer air (cm) Biru Hijau Orange 1 2 3
1
>=1 && <7
17 - 23
√
√
√
√
√
-
OFF
2
>=7 && <9
15 - 17
-
√
√
√
√
-
OFF
13 - 15
-
-
√
√
√
-
OFF
11 - 13
-
-
-
√
√
-
OFF
9 - 11
-
-
-
-
√
-
OFF
0-9
-
-
-
-
-
blink
ON
Diluar jangkauan
-
-
-
-
-
-
OFF
3 4 5 6 7
>=9 && <11 >=11 && <13 >=13 && <15 >=15 && <25 >25 || <1
25
Dari hasil pengujian yang didapat, LED bekerja sesuai dengan fungsinya. Ketinggian air di water tank akan berbanding lurus dengan nyala LED. Ketika air didalam water tank dalam keadaan penuh, maka seluruh LED akan menyala. Semakin surut air didalam water tank, maka LED pun akan OFF satu per satu sesuai dengan ketinggian yang telah ditetapkan pada sensor ultrasonic HC-SR04. Untuk urutan padamnya LED adalah sebagai berikut : biru → hijau → orange → merah1 → merah2. Sedangkan untuk urutan nyalanya LED adalah kebalikannya yaitu merah2 → merah1 → orange → hijau → biru. Untuk symbol “&&” bermakna “sampai dengan” dan symbol “||” bermakna “atau”. Ketika pada water tank dalam keadaan hamper kosong, maka LED merah3 akan nyala berkedap-kedip (blink) dan buzzer akan berbunyi.
26
BAB V PENUTUP
5.1 Kesimpulan Sensor kelembaban berfungsi untuk membaca kelembaban tanah pada 2 tanaman yang berbeda kelembabannya. Ketika kelembaban tanah nilainya kurang dari settingan yang ada pada program, maka pompa yang ada pada water tank akan bekerja seiring dengan kurangnya kelembaban pada tanah. Sensor kelembaban akan menggerakan servo yang terhubung dengan katup, sehingga katup akan membuka secara otomatis dan akan menyiram tanaman sampai dengan kelembaban pada tanah tersebut cukup/terpenuhi. Ketika kelembabannya sudah cukup/terpenuhi, maka servo akan menutup katup secara otomatis dan ketika kedua tanaman itu sudah tidak memerlukan lagi air, pompa akan mati menandakan air tidak akan disirkulasikan kembali. Sementara itu, sensor ultrasonic akan membaca ketinggian air. Seiring dengan semakin surutnya air, LED yang berfungsi sebagai display akan mati secara perlahan menandakan air yang ada pada water tank semakin berkurang. Ketika air yang ada pada water tank sudah hamper habis, buzzer yang ada pada water tank akan berbunyi menandakan water tank harus segera diisi ulang dengan air.
5.2 Saran Beberapa hal yang dapat penulis sarankan untuk perbaikan pada alat penyiram tanaman otomatis, diantaranya sebagai berikut. 1. Sensor kelembaban yang mempunyai batasan ketika dicelupkan pada tanah yang terlalu lembab, maka sensor akan mengalami korsleting atau tidak akan berfungsi sebagaimana mestinya, sehingga sensor perlu di insulasi agar tidak terjadi korsleting. 2. Dalam memilih katup, harus menyesuaikan dengan motor yang kita gunakan karena ketika beban yang dimiliki katup lebih besar daripada beban maksimal yang dimiliki oleh motor maka motor akan mengalami kerusakan. 3. Karena pada alat ini memiliki banyak komponen elektronik dan berhubungan dengan air, sebaiknya perancangan harus dipikir dengan matang, untuk menghindari dari beberapa kemungkinan akan adanya korsleting pada komponen elektronik jika terkena air. 4. Karena desain yang kami buat masih berbentuk prototype, maka bahan-bahan yang kami gunakan masih sederhana. Sehingga desain belum bisa dijual ke pasaran. 5. Perlu merancang anggaran dana yang dibutuhkan serinci mungkin agar tidak adanya biaya tak terduga yang terlalu besar, dan dapat memilih toko yang barangbarangnya terhitung relatif murah. 27