• Tidak ada hasil yang ditemukan

RANCANG BANGUN MODUL AKUISISI DATA UNTUK SISTEM IRIGASI OTOMATIS BERBASIS MIKROKONTROLER ARDUINO DUEMILANOVE AKBAR RIYAN NUGROHO

N/A
N/A
Protected

Academic year: 2021

Membagikan "RANCANG BANGUN MODUL AKUISISI DATA UNTUK SISTEM IRIGASI OTOMATIS BERBASIS MIKROKONTROLER ARDUINO DUEMILANOVE AKBAR RIYAN NUGROHO"

Copied!
33
0
0

Teks penuh

(1)

RANCANG BANGUN MODUL AKUISISI DATA UNTUK

SISTEM IRIGASI OTOMATIS BERBASIS MIKROKONTROLER

ARDUINO DUEMILANOVE

AKBAR RIYAN NUGROHO

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

BOGOR

2011

(2)

ABSTRACT

Akbar Riyan Nugroho. Design Data Acquisition Module For Arduino Duemilanove Microcontroller-Based Automatic Irrigation System. Under the supervision of Sri Wahjuni and Satyanto K. Saptomo.

This research is part of activities in IMHERE B2C IPB Strengthening Agricultural Research For Food Security And Sovereignty. Implementation of the research project will assess the Development of Automated Irrigation Systems For Food Production Land with research focus on the mechanism of data acquisition. Data acquisition is performed using the Arduino Duemilanove microcontroller. Arduino Duemilanove can perform data retrieval as well as having an ADC module, so as to facilitate the conversion of data from analog data into digital data. From the datasheet, ADC module on the Arduino Duemilanove has an error range of ± 2 LSB or ± 0.0092 V with a reference voltage of 4.67 V. In this experiment measurements obtained by the difference in value between the multimeter and the microcontroller of 0.00840 V, and the scores fall in the range of values of the ADC module conversion error. SD Memory Card can be selected as a data logger for managing data storage easily.

(3)

RANCANG BANGUN MODUL AKUISISI DATA UNTUK

SISTEM IRIGASI OTOMATIS BERBASIS MIKROKONTROLER

ARDUINO DUEMILANOVE

AKBAR RIYAN NUGROHO

Skripsi

Sebagai salah satu syarat untuk memperoleh gelar

Sarjana Komputer pada

Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

BOGOR

2011

(4)

Judul : Rancang Bangun Modul Akuisisi Data Untuk Sistem Irigasi Otomatis Berbasis Mikrokontroler Arduino Duemilanove

Nama : Akbar Riyan Nugroho NRP : G64070072

Menyetujui:

Pembimbing I, Pembimbing II,

Ir. Sri Wahjuni, M.T. Dr. Satyanto K. Saptomo, S.TP, M.Si

NIP. 19680501 200501 2 001 NIP. 19730411 200501 1 002

Mengetahui :

Ketua Departemen Ilmu Komputer

Dr. Ir. Sri Nurdiati, M.Sc. NIP. 19601126 198601 2 001

(5)

PRAKATA

Alhamdulilahirobbil’alamin, segala puji bagi Alloh yang telah memberikan kenikmatan iman

sehingga bisa mengotimalkan potensi-potensi yang telah Alloh berikan. Skripsi yang berjudul Rancang Bangun Modul Akuisisi Data Untuk Sistem Irigasi Otomatis Berbasis Mikrokontroler Arduino Duemilanove dapat diselesaikan karena nikmat Alloh berupa akal untuk berfikir, ilmu yang bermanfaat, serta hati yang tergerak untuk melakukan hal yang bermanfaat. Sholawat serta salam saya tujukan kepada Nabi Muhammad, keluarganya, sahabat-sahabatnya, hingga umatnya hingga akhir zaman, dan semoga kita bisa mengikuti sunah beliau sehingga selamat dunia akhirat. Terima kasih kepada IPB melalui hibah penelitian IMHERE B2C IPB pada kegiatan Strengthening Agricultural

Research For Food Security And Sovereignty pada sub kegiatan Advanced Infrastructure For Food Security And Sovereignty atas dukungan dana dan penyediaan alat dalam pengerjaan penelitian ini.

Penulis menyadari bahwa tugas akhir ini dapat terselesaikan karena dukungan dan doa dari berbagai pihak. Pada kesempatan ini penulis ingin mengucapkan terima kasih kepada:

1. Orang tua tercinta, bapak Sumedi dan ibu sulasmi, adik saya yang saya sayangi Diah Ayu Widowati. Semoga Alloh membalas kebaikan serta doa-doa kalian.

2. Ibu Ir. Sri Wahjuni, M.T dan bapak Dr. Satyanto K. Saptomo, S.TP, M.Si selaku dosen pembimbing tugas akhir. Terima kasih atas kesabaran serta ilmu yang diberikan, semoga Alloh mencatatnya sebagai amalan kebaikan.

3. Bapak Hendra Rahmawan, S.kom, M.T selaku dosen penguji pada ujian skripsi. Semoga saya bisa segera memperbaiki tulisan ini dari masukan yang bapak berikan.

4. Ibu Dr. Ir. Sri Nurdiati, M.Sc karena nasehat-nasehat beliau, serta saya meminta maaf yang sedalam-dalamnya karena ketidak fahaman saya serta kurang amanahnya saya ketika menjadi Ketua Umum HIMALKOM.

5. Bapak Ahmad Ridha, S.kom, M.S selaku dosen pembimbing akademik. Berkat bapak saya bisa berjalan sesuai dengan arah yang benar, terutama saat mengambil mata kuliah.

6. Sahabat-sahabat satu perjuangan. Semoga kita bisa tetap istiqomah menggapai ridho Ilahi. Tetap berjuang dan terus berkarya dalam dakwah, karena kita diciptakan untuk beribadah kepada Alloh. 7. Sahabat-sahabatku yang pernah aku pimpin atau pernah memimpinku. Saya ucapkan mohon maaf

jika banyak menyakiti kalian serta tidak amanah dalam melakukan kewajiban.

8. Seluruh staf Departemen Ilmu Komputer IPB yang telah banyak membantu baik selama penelitian maupun selama perkuliahan.

Penulis meminta maaf karena menyadari bahwa dalam penulisan tugas akhir ini masih terdapat banyak kekurangan dan kelemahan dalam berbagai hal karena keterbatasan kemampuan penulis. Penulis berharap Semoga tugas akhir ini bermanfaat.

Bogor, Agustus 2011

(6)

RIWAYAT HIDUP

Akbar Riyan Nugroho dilahirkan di Banyumas, Jawa Tengah, pada tanggal 14 Juli 1989 dan merupakan anak pertama dari pasangan bapak Sumedi dan ibu Sulasmi. Pada tahun 2007 penulis lulus dari Sekolah Menengah Atas Negeri (SMAN) 3 Malang dan pada tahun yang sama penulis diterima di Program Studi Ilmu Komputer Institut Pertanian Bogor melalui jalur Undangan Seleksi Masuk IPB (USMI).

Pada tahun 2008 penulis aktif dalam organisasi Dewan Perwakilan Mahasiswa Keluarga Mahasiswa (DPMKM) sebagai anggota Divisi Internal dan Majelis Permusyawaratan Mahasiswa Keluarga Mahasiswa (MPMKM) sebagai Koordinator Badan Pengawas Mahkamah dan Konstitusi. Mulai tahun 2009 penulis aktif dalam organisasi Himpunan Mahasiswa Ilmu Komputer (HIMALKOM) sebagai Sekretaris Umum dan di tahun 2010 sebagai Ketua Umum HIMALKOM, selanjutnya di tahun 2011 aktif menjadi anggota Badan Pengawas Himpro.

Selama kuliah di IPB, penulis pernah menjadi asisten praktikum mata kuliah Rangkaian Digital, Penerapan Komputer, Organisasi Komputer, Basis Data, dan Pendidikan Agama Islam. Pada tahun 2010 penulis meraih gelar peserta terbaik dalam acara Intensive-Student Technopreneurship Program (I-STEP). Penulis juga melakukan praktik kerja lapang di Bank Indonesia Kantor Pusat Jakarta.

(7)

DAFTAR ISI

Halaman

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... vii

DAFTAR LAMPIRAN ... vii

PENDAHULUAN ... 1

Latar Belakang ... 1

Tujuan Penelitian ... 1

Ruang Lingkup Penelitian ... 1

Manfaat Penelitian ... 1

TINJAUAN PUSTAKA ... 1

Arduino ... 1

Arduino Duemilanove ATmega328P ... 1

Memori-memori ATmega328P... 2 Arduino-0022 ... 2 USART ... 3 Serial Monitor ... 3 ADC ... 3 SD Module (SKU: DFR0071) ... 4 METODE PENELITIAN ... 4 Analisis Sistem ... 4 Perancangan ... 4 Implementasi ... 6 Pengujian... 6 Analisis Kinerja ... 7

HASIL DAN PEMBAHASAN... 7

Pengambilan Data ... 7

Manajemen Memori ... 8

Simulasi Aktuator ... 9

I/O Device ... 9

Pengujian Sistem ... 9

KESIMPULAN DAN SARAN... 12

Kesimpulan ... 12

Saran ... 12

DAFTAR PUSTAKA ... 12

(8)

DAFTAR GAMBAR

Halaman

1 Skema Arduino Duemilanove... 2

2 Program memory map ATmega328P. ... 2

3 Data memory map ATmega328P... 2

4 Tampilan Arduino-002. ... 3

5 Serial monitor. ... 3

6 SD Modul (SKU: DFR0071). ... 4

7 Metode penelitian. ... 4

8 Arsitektur diagram sistem irigasi otomatis secara keseluruhan. ... 5

9 Blok diagram rancang bangun sistem menggunakan float switch. ... 5

10 Blok diagram rancang bangun sistem menggunakan thermocouple... 5

11 Flow chart rancang bangun menggunakan sensor float switch. ... 6

12 Flow chart rancang bangun menggunakan sensor thermocouple... 6

13 Blok diagram pengujian sistem menggunakan float switch. ... 6

14 Blok diagram pengujian sistem menggunakan thermocouple. ... 7

15 Ilustrasi pengaruh resolusi adc terhadap nilai kode digital. ... 7

16 Ilustrasi kode program pengambilan data. ... 8

17 Ilustrasi kode program penggunaan pin digital. ... 9

18 Grafik nilai pengambilan data menggunakan multimeter dan mikrokontroler ... 11

DAFTAR TABEL

Halaman 1 Perbedaan rancang bangun menggunakan sensor float Switch dan sensor thermocouple ... 5

2 Hasil identifikasi memori pada arduino duemilanove beserta karekteristiknya ... 8

3 Hasil pengujian rancangan bangun menggunakan sensor float switch ... 10

4 Hasil penghitungan data dengan tegangan referensi 5v ... 10

5 Hasil penghitungan data dengan tegangan referensi 4,76v ... 10

6 Hasil pengujian rancangan bangun menggunakan sensor thermocouple ... 11

DAFTAR LAMPIRAN

Halaman 1 Blok diagram arsitektur AVR ... 14

2 Gambar sensor float switch ... 15

3 Koneksi SD Modul dengan Arduino ... 15

4 Dokumentasi rancang bangun menggunakan sensor float switch ... 16

5 Dokumentasi rancang bangun menggunakan sensor thermocouple ... 16

6 Tampilan serial monitor dari rancang bangun menggunakan sensor float switch... 17

7 Tampilan serial monitor saat gagal koneksi antara SD Modul dengan mikrokontroler ... 17

8 Tampilan serial monitor ketika akan melakukan pengaturan penggunaan sistem ... 18

9 Tampilan serial monitor ketika telah melakukan pengaturan penggunaan sistem ... 18

10 Harga serta alat-alat yang digunakan dalam rancang bangun menggunakan float switch ... 19

11 Harga serta alat-alat yang digunakan dalam rancang bangun menggunakan thermocouple ... 19

12 Kode program rancang bangun menggunakan sensor float switch ... 19

(9)

PENDAHULUAN

Latar Belakang

Irigasi merupakan penambahan air secara buatan untuk mengatasi kekurangan kadar air tanah. Pada dasarnya bermacam-macam cara yang dilakukan dalam melakukan irigasi memunyai tujuan yang sama, tetapi dalam penerapannya dibutuhkan suatu kondisi yang berbeda. Kondisi tersebut menyesuaikan dengan keadaan lingkungan dan kebutuhan tanaman akan air.

Sistem irigasi otomatis diterapkan untuk menciptakan lingkungan yang sesuai dengan kebutuhan. Satyanto et al (2011) mengembangkan sistem irigasi otomatis dengan

Fuzzy Timer Control untuk mengontrol ketinggian air. Sistem irigasi otomatis yang dibangun diterapkan pada teknologi SRI untuk tanaman padi.

Penelitian ini merupakan bagian kegiatan IMHERE IPB pada kegiatan Strengthening

Agricultural Research For Food Security And Sovereignty pada sub kegiatan Advanced Infrastructure For Food Security And Sovereignty. Pelaksanaan kegiatan penelitian ini

akan mengkaji Development of automated

irrigation system for food production land

dengan fokus penelitian pada mekanisme akuisisi data. Akuisisi data yang dilakukan menggunakan mikrokontroler Arduino Duemilanove.

Tujuan Penelitian

Penelitian ini bertujuan untuk:

1. Mengetahui mekanisme pengambilan dan penyimpanan data pada mikrokontroler Arduino Duemilanove.

2. Membuat rancang bangun sistem irigasi otomatis berbasis mikrokontroler Arduino Duemilanove.

Ruang Lingkup Penelitian

Ruang lingkup dari penelitian ini adalah: 1. Modul ADC sudah terintegrasi ke dalam

minimum system.

2. Pengambilan data dilakukan pada sensor dengan nilai keluaran 0-Vcc volt.

3. Percobaan dilakukan pada lingkungan model.

4. Tidak termasuk proses pengiriman data ke

main controller.

5. Aktuator hanya berupa simulasi.

6. Komunikasi dengan perangkat lain menggunakan komunikasi serial.

Manfaat Penelitian

Adanya rancang bangun mekanisme akuisisi data pada sistem irigasi otomatis yang dapat diadaptasikan sesuai dengan kebutuhan lapang.

TINJAUAN PUSTAKA

Arduino

Arduino merupakan rangkaian elektronik yang bersifat open-source, 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 memunyai banyak jenis, di antaranya adalah Arduino Nano, Arduino BT, LilyPad Arduino, Arduino Duemilanove, dan lainnya.

(www.arduino.cc)

Arduino Duemilanove ATmega328P

Arduino Duemilanove dengan

ATmega328P memunyai 14 digital input/output (6 di antaranya dapat digunakan untuk PWM

outputs), 6 analog inputs, 16 MHz crystal oscillator, USB connection, power jack, ICSP header, dan reset button. Skema Arduino

Duemilanove ATmega328P dapat dilihat pada Gambar 1 dengan ciri-ciri sebagai berikut: 1. Operating voltage 5V.

2. Rekomendasi input voltage 7-12V. 3. Batas input voltage 6-20V.

4. Memiliki 14 buah digital input/output.

5. Memiliki 6 buah Analog Input.

6. DC Current setiap I/O Pin sebesar 40 mA. 7. DC Current untuk 3.3V Pin sebesar 50 mA. 8. Flash Memory 32 KB.

9. SRAM 2 KB. 10. EEPROM 1 KB. 11. Clock Speed 16 MHz. (www.arduino.cc)

(10)

Gambar 1 Skema Arduino Duemilanove. Skema Arduino Duemilanove ATmega328P didasarkan pada blog diagram dari ATmega328P. Blog diagram tersebut dapat dilihat pada Lampiran 1.

Memori-memori ATmega328P

Manajemen memori dalam mikrokontroler penting dilakukan karena memori yang dimiliki mikrokontroler sangat terbatas. Pada Atmega328P terdapat tiga jenis memori, yaitu

data memory, program memory, dan EEPROM. Bus ketiga memori tersebut terpisah, sehingga

dapat mengakses ketiga jenis memori tersebut dalam waktu yang bersamaan.

ATmega328P menggunakan Flash Memory untuk program memory. Flash Memory dibagi menjadi dua bagian, yaitu Boot Loader dan

Aplication Program. Pembagian ini bertujuan

untuk keamanan perangkat lunak. Flash

Memory memiliki ketahanan tulis atau hapus

sebanyak 10.000 kali. Program memory map dapat dilihat pada Gambar 2.

SRAM digunakan oleh ATmega328P untuk

data memory. Kapasitas SRAM dari ATmega328P adalah 2KB. SRAM terbagi menjadi empat bagian yaitu 32 GPR (General

Purphose Register), 64 I/O register, Additional

I/O register, dan Internal SRAM. Data memory

map dari SRAM dapat dilihat pada Gambar 3.

Sifat dari memori ini adalah volatile sehingga data yang ada pada SRAM akan hilang ketika sudah tidak diberikan catu daya.

EEPROM biasa digunakan untuk menyimpan data long-term karena sifatnya yang

non-volatile. Ketika tidak mendapat catu daya,

data yang tersimpan dalam EEPROM tidak akan hilang. EEPROM memiliki ketahanan tulis atau hapus sebanyak 10.000 kali (Atmel 2009).

Arduino-0022

Arduino-022 merupakan open-source Arduino environtment yang digunakan untuk

penulisan kode. Dengan menggunakan Arduino-022 penulisan kode menjadi mudah dan kode yang ditulis dapat diunggah ke Arduino. Software ini dapat digunakan di Windows, Mac OS X, dan Linux. Arduino

environtment ditulis dalam bahasa Java dengan

didasarkan pada Processing, avr-gcc, dan open

source software lainnya. Bahasa pemrograman

Arduino didasarkan pada bahasa pemrograman C/C++ serta terhubung dengan AVR Libc sehingga dapat menggunakan fungsi-fungsi yang terdapat pada AVR Libc. AVR Libc berisi fungsi-fungsi yang digunakan untuk menggunakan AVR, seperti pengaturan register. Pada Arduino-0022 penggunaan AVR Libc dipermudah karena secara default library pada Arduino-0022 sudah mencakup AVR Libc tanpa kita harus tau AVR Libc mana yang digunakan. Jika dalam penulisan kode membutuhkan AVR Libc, maka penambahan AVR Libc pada header kode program dapat dilakukan. Tampilan Ardino-0022 dapat dilihat pada Gambar 4.

0x0000

0x3FFF

Gambar 2 Program memory map ATmega328P.

32 GPR 64 I/O register 160 extended I/O register Internal SRAM 0x001F 0x0020 0x005F 0x0060 0x00FF 0x0100 0x07FF 0x0000

(11)

Gambar 4 Tampilan Arduino-002. (www.arduino.cc)

USART

USART (Universal Synchronous and

Asynchronous Serial Receiver and Transmitter)

dapat difungsikan sebagai transmisi data sinkron dan asinkron. Sinkron berarti clock yang digunakan antara transmitter dan receiver satu sumber clock. Asinkron berarti transmitter dan receiver memunyai sumber clock yang berbeda. USART terbagi dalam tiga blog yaitu

clock generator, transmitter, dan receiver (Ardi

2010).

Komunikasi serial ini penting difahami karena selain beberapa interface menggunakan mode serial, komunikasi ini bisa kita manfaatkan sebagai pemantau program saat berjalan (debugging). Misalkan kita akan menganalisis suatu kondisi suhu, ini bisa kita lihat dari monitor dengan ditransmisikan ke komputer secara serial (Ary et al 2008).

Serial Monitor

Pada Arduino-0022 terdapat serial monitor. Serial monitor berfungsi untuk menampilkan data yang terdapat pada Arduino. Selain itu, melalui Serial Monitor juga dapat mengirimkan data ke Arduino. Pengirim data ke Arduino dilakukan dengan cara memasukkan data yang ingin dikirim dan dan menekan tombol send atau menekan enter (www.arduino.cc).

Tampilan dari Serial Monitor dapat dilihat pada Gambar 5. Baud-rate pada serial monitor harus sama dengan Serial.begin pada kode program. Hal tersebut dilakukan agar terjadi kecocokan dalam komunikasi. Baud-rate

memiliki satuan bit per second.

Gambar 5 Serial monitor.

ADC

ADC atau kepanjangan dari Analog to

Digital Converter merupakan alat yang digunakan untuk mengubah data analog menjadi data digital. Pada Arduino Duemilanove sudah terdapat modul ADC, sehingga dapat langsung digunakan. Fitur ADC yang terdapat pada ATmega328P adalah sebagai berikut:

1. Resolusi mencapai 10-bit. 2. 0,5 LSB Integral Non-linearity. 3. Akurasi mencapai ± 2 LSB. 4. Waktu konversi 13-260 μs. 5. Memunyai 6 saluran ADC. 6. Optional Left Adjustment untuk

pembacaan hasil ADC.

7. 0 - vcc untuk kisaran input ADC. 8. Disediakan 1,1V tegangan referensi

ADC.

9. Mode konversi kontinyu atau konversi. 10. Interupsi ADC.

11. Sleep mode noise canceler. (Atmel 2009).

Sinyal input dari pin ADC akan dipilih oleh

multiplexer (register ADMUX) untuk diproses

oleh ADC. Karena converter ADC dalam chip hanya satu buah sedangkan saluran masukannya lebih dari satu, maka dibutuhkan multiplexer untuk memilih input pin ADC secara bergantian. ADC memunyai rangkaian untuk mengambil sampel dan hold (menahan) tegangan input ADC, sehingga tetap dalam keadaan konstan selama proses konversi. Sinyal

input ADC tidak boleh melebihi tegangan

referensi. Nilai digital sinyal input ADC untuk resolusi 10-bit (1024) ditulis dalam Persamaan 1.

(12)

Nilai digital sinyal input ADC untuk resolusi 8-bit (256) ditulis dalam Persamaan 2:

Kode digital = (Vinput / Vref)x256 (2) (Andi 2010).

Dengan demikian untuk mencari nilai digital, dapat dinyatakan dengan Persamaan 3.

Kode digital=(tegangan yang masuk / tegangan referensi)xresolusi (3)

SD Module (SKU: DFR0071)

SD Card Shield atau SD Modul merupakan

solusi untuk mengirim data ke SD card. SD Modul dapat dilihat pada Gambar 6.

Gambar 6 SD Modul (SKU: DFR0071).

Pinout dari SD Card Shield dapat

dihubungkan ke Arduino maupun mikrokontroler lainnya, sehingga bermanfaat untuk menambah kapasitas tempat penyimpanan data dan pencatatan data. SD

Card Shield ini dapat langsung dipasang pada

Arduino dan terdapat switch untuk memilih

flash card slot. Keistimewaan dari SD Module

ini adalah:

1. Terdapat modul untuk standar SD card dan Micro SD (TF) card.

2. Terdapat switch untuk memilih flash

card slot.

3. Dapat dipasang langsung pada Arduino. 4. Dapat digunakan untuk mikrokontroler

lain.

(www.dfrobot.com).

METODE PENELITIAN

Penelitian ini dibagi ke dalam beberapa tahapan, yaitu analisis sistem, perancangan, implementasi, pengujian, dan analisis kinerja. Alur metode penelitian dapat dilihat pada Gambar 7.

Analisis Sistem

Tahap ini dilakukan untuk memprediksi cara kerja sistem dalam melakukan akuisisi data hingga memprediksi mekanisme pengujian sistem. Hal-hal tersebut meliputi:

1. Cara memperoleh data.

2. Analisis memori yang digunakan beserta kegunaan, perbedaan, dan cara penyimpanan data.

3. Simulasi aktuator.

4. Menentukan I/O device untuk memantau program saat dijalankan. 5. Pengujian sistem.

Perancangan

Sistem irigasi otomatis dibangun untuk memudahkan pemantauan dan pengontrolan kebutuhan air di suatu tempat. Gambar 8 merupakan rancangan sistem irigasi secara keseluruhan yang terdiri dari dua bagian yaitu

field controller dan main controller.

Gambar 7 Metode penelitian. Analisis Sistem

Perancangan

Implementasi

Pengujian

(13)

Dalam penelitian kali ini akan dibangun rancang bangun sistem irigasi otomatis khususnya pada mekanisme akuisisi data. Secara garis besar rancangan sistem yang akan dibangun meliputi mekanisme pengambilan data, penyimpanan data, I/O device, dan aktuator.

Terdapat dua model rancang bangun sistem guna mencapai sistem irigasi pada Gambar 8, yaitu sebagai berikut:

1. Sistem konvensional berbasis dua

state. Sistem dibangun menggunakan

sensor float switch. Pemilihan sensor ini karena keluaran dari sensor float

switch hanya bernilai high atau low.

2. Sistem yang mendukung Fuzzy Timer

Control. Sistem ini dibangun menggunakan sensor thermocouple. Sensor ini dipilih karena nilai keluarannya sesuai dengan keadaan lingkungan saat pengambilan data, sehingga mendukung Fuzzy Timer

Control.

Perbedaan rancang bangun menggunakan sensor float switch dan sensor thermocouple dapat dilihat pada Tabel 1, sedangkan blok diagram rancang bangun menggunakan sensor

float switch dan sensor thermocouple dapat

dilihat pada Gambar 9 dan Gambar 10. Alur program rancang bangun menggunakan sensor

float switch dan sensor thermocouple dapat

dilihat pada Gambar 11 dan Gambar 12. Tabel 1 Perbedaan rancang bangun menggunakan sensor float switch dan sensor thermocouple No Keterangan Rancang Bangun Menggunakan

Sensor Float Switch

Rancang Bangun Menggunakan Sensor

Thermocouple

1. Sensor Float Switch Thermocouple

2. Mekanisme Penyimpanan Data

Tidak Menggunakan Menggunakan

3. Simulasi Aktuator Ada Ada

4. Tujuan Pengaturan irigasi yang hanya didasarkan pada keadaan

ON/OFF

Membangun sistem irigasi yang mendukung Fuzzy Timer Control

I/O Device Mikrokontroler Sensor

Aktuator Penyimpanan Data GSM Mikrokontroler Sensor Aktuator Penyimpanan Data GSM Komputer Field Controller Main Controller

I/O Device Mikrokontroler Sensor

Aktuator

Gambar 8 Arsitektur diagram sistem irigasi otomatis secara keseluruhan.

Gambar 9 Blok diagram rancang bangun sistem

menggunakan float switch. Gambar 10 Blok diagram rancang bangun sistem menggunakan thermocouple.

(14)

Implementasi

Rancangan dari sistem akan diterapkan pada lingkungan model. Sensor dipilih atau diatur agar memiliki nilai keluaran 0-Vcc. Nilai keluaran tersebut dibatasi karena modul ADC hanya bisa mengenali input dengan nilai tidak melebihi tegangan referensi. Tegangan referensi yang digunakan sebesar Vcc.

Pengujian

Rancang bangun dengan sensor float switch diuji dengan membangun lingkungan percobaan

sesuai dengan Gambar 13. Aktuator akan disimulasikan secara real time dengan LED. Sensor memperoleh data yang berasal dari tabung air, dimana ketinggian air pada tabung dapat diatur. Dokumentasi rancang bangun menggunakan sensor float switch dapat dilihat pada Lampiran 4. Sensor float switch terhubung dengan Arduino melalui port A0 dan A1, LED melalui port digital no 13, dan komunikasi dengan komputer melalui USB Serial Port. Pada antar muka serial monitor akan ditampilkan nilai dari kedua sensor flaot switch, sehingga kita bisa mengetahui dan memantau nilainya. Tampilan dari antar muka serial

monitor untuk rancang bangun menggunakan

sensor float switch dapat dilihat pada Lampiran 6.

Rancang bangun dengan sensor

thermocouple diuji dengan pengambilan data

dalam waktu 10 menit sebanyak sepuluh kali. Data yang diperoleh dibandingkan dengan nilai akurasi ADC pada manual book mikrokontroler. Aktuator disimulasikan secara real time dengan LED. Lingkungan percobaan sistem kedua dapat dilihat pada Gambar 14. Dokumentasi rancang bangun menggunakan sensor float

switch dapat dilihat pada Lampiran 5. Sensor thermocouple terhubung dengan Arduino melalui port A5, LED melalui port digital no 9, komunikasi dengan komputer melalui USB

Serial Port, dan untuk komunikasi Arduino

dengan SD Modul dapat dilihat pada Lampiran 3.

Pada antar muka serial monitor rancang bangun menggunakan sensor thermocouple akan ditampilkan pengaturan penggunaan sistem, meliputi:

1. Lama pengambilan data. 2. Batas atas air.

3. Batas bawah air. A1==0

A0>0 Mulai

Baca Sensor pada port A0, A1 Valve=High Valve=Low

c

A B E D A = Mikrokontroler D = LED B = Komputer E = Float Switch C = Tabung Air

Gambar 11 Flow chart rancang bangun menggunakan sensor float switch.

waktu==samplingTime Ya Tidak Mulai Setting Awal Create File .csv Ambil Data Tulis Data Simulasi Valve

Gambar 12 Flow chart rancang bangun menggunakan sensor thermocouple.

Gambar 13 Blok diagram pengujian sistem menggunakan float switch.

(15)

Sebelumnya juga akan dilakukan pengecekan terhadap koneksi dari SD Modul. Jika koneksi terhadap SD Modul gagal, maka tampilan serial

monitor dapat dilihat pada Lampiran 7. Setelah

koneksi antara SD Modul dan mikrokontroler berhasil, maka akan dilakukan pengaturan penggunaan sistem, yaitu memasukkan nilai dari pengambilan data, batas atas, dan batas bawah. Tampilan serial monitor saat akan dilakukan pengaturan sistem dapat dilihat pada Lampiran 8 dan pada Lampiran 9 dapat dilihat tampilan serial monitor ketika progam berjalan. Saat program berjalan pada serial monitor akan ditampilkan no pengambilan data, data dari A0, dan data dari A1.

Analisis Kinerja

Berdasarkan data yang diperoleh dan perlakuan-perlakuan yang dilakukan, maka akan dilakukan analisis. Analisis ini dilakukan agar data hasil pengujian dapat digunakan dan dijadikan rujukan untuk pembangunan sistem lebih lanjut.

HASIL DAN PEMBAHASAN

Pengambilan Data

Sensor merupakan alat yang digunakan untuk mengenali lingkungan. Sensor dapat terhubung secara langsung dengan mikrokontroler melalui port analog. Data yang diberikan sensor berupa data analog, sedangkan mikrokontroler dalam pengolahan data menggunakan data digital. Oleh sebab itu supaya data yang diterima mikrokontroler berupa data digital dibutuhkan modul ADC.

Resolusi data dari modul ADC nantinya akan mempengaruhi akurasi dari data. Semakin besar resolusinya, maka akurasinya semakin

baik. Berdasarkan Persamaan 3, sebagai ilustrasi perhatikan Gambar 15 di bawah ini.

Ilustrasi pada Gambar 15 menjelaskan pentingnya untuk melakukan analisis nilai yang akan dikeluarkan sensor. Hal tersebut dikarenakan mikrokontroler memunyai batas kemampuan membaca masukan sesuai dengan resolusi dari ADC. Jika membutuhkan akurasi yang tinggi, maka resolusinya harus diperbesar. Pada ATmega328P digunakan resolusi 10-bit atau 1024.

Modul ADC terletak pada port C dari mikrokontroler atau biasa disebut dengan pin

analog. Arduino Duemilanove memunyai 6 pin analog yang dapat digunakan untuk membaca

masukan dari sensor. Dikarenakan mikrokontroler hanya memunyai satu register untuk menyimpan hasil konversi yaitu ADLAR, maka pengambilan data dilakukan secara bergantian untuk setiap pin analog. Penulisan kode program menggunakan Arduino-0022, dimana pin analog di kodekan dengan angka 0-5 atau A0-A0-5. Pada Gambar 16 dapat dilihat ilustrasi penggunaan pin analog pada kode pemrograman. A E C B D A = Mikrokontroler D = LED B = Komputer E = Termocouple C = SD Card Diketahui: Resolusi 1=10-bit Resolusi 2 = 8-bit Vref = 5 V

Vinput = (Kode Digital x Vref)/1024 Maka nilai Vinput untuk setiap satuan Kode Digital adalah:

Pada Resolusi 1:

Vinput1 = (1x5)/1024 = 0,0048 V Pada Resolusi 2:

Vinput2 = (1x5)/256 = 0,0195 V

Jadi, terbukti resolusi 1 mampu mengenali input lebih detail dari pada resolusi 2.

Gambar 14 Blok diagram pengujian sistem menggunakan thermocouple.

Gambar 15 Ilustrasi pengaruh resolusi adc terhadap nilai kode digital.

(16)

Sensor yang digunakan dalam percobaan adalah float switch dan thermocouple. Sensor

float switch hanya memberikan nilai 0 atau 1,

sehingga nilai sensor yang tertera pada serial

monitor atau yang dikenali mikrokontroler

adalah 0 atau 1023. Jika dianalogikan, float

switch mirip dengan saklar. Float switch

berfungsi sebagai indikator ketinggian air. Berbeda halnya dengan float switch, sensor

thermocouple memberikan nilai masukan yang

bervariasi antara 0-Vcc.

Nilai dari thermocouple dipengaruhi oleh suhu. Jika suhu meningkat, maka nilai masukan ke mikrokontroler akan semakin besar. Nilai keluaran thermocouple mencerminkan keadaan lingkungan saat itu, sehingga memungkinkan untuk dikembangkan ke arah Fuzzy Timer

Control. Untuk implementasi sistem irigasi

dalam menggunakan Fuzzy Timer Control, sensor thermocouple dapat diganti dengan sensor tekanan air atau kelembapan tanah. Penggantian tersebut tidak menjadi masalah dengan syarat sensor pengganti memunyai karakteristik keluaran yang sama dengan sensor

thermocouple.

Manajemen Memori

Arduino Duemilanove memiliki tiga jenis memori yaitu SRAM, EEPROM, dan Flash

memory, selain itu bisa juga ditambah dengan SD Card. Memori-memori tersebut memiliki

fungsi dan karakteristik yang berbeda-beda. Table 2 menampilkan hasil identifikasi memori pada Arduino Duemilanove beserta karakteristiknya.

Tabel 2 Hasil identifikasi memori pada arduino duemilanove beserta karekteristiknya

No Keterangan Flash Memory SRAM EEPROM SD Card

1 Fungsi Tempat

kode-kode program Memori tempat eksekusi program yang dilakukan oleh ALU Tempat menyimpan informasi yang sifatnya long-term Data loggerMemory

2 Sifat Non-volatile Volatile Non-volatile Non-volatile

3 Kapasitas 32 KBytes 2 KBytes 1 KBytes 1 GBytes

Percoabaan kali ini membutuhkan data

memory, program memory, dan data logger memory. Data memory digunakan untuk

membantu eksekusi program yang dilakukan oleh ALU (Arithmatich Logic Unit) dan mengendalikan bermacam-macam pheripheral seperti port, USART, timer/counter, dan lain-lain. Program memory digunakan untuk menyimpan kode-kode program dari sistem yang dibangun. Data logger memory digunakan untuk mencatat serta menyimpan data hasil pembacaan sensor.

ATmega328P telah menyediakan data

memory dan program memory, sehingga kita

bisa langsung menggunakannya. Secara default,

data memory akan difasilitasi oleh ATmega328P berupa SRAM. Program memory akan menggunakan flash memory. EEPROM yang disediakan oleh ATmega328P bisa digunakan sebagai data logger memory, tetapi ada beberapa pertimbangan yang menjadikan pencarian solusi lain terkait penggunaan EEPROM untuk data logger memory yaitu:

1. Hanya mampu melakukan tulis/hapus sebanyak 100.000 kali. void setup () { … } void loop () { …

//kode program untuk membaca sensor pada pin analog 1 dan kemudian disimpan pada variabel sensorValue1

sensorValue1 = analogRead(A1);

//kode program untuk membaca sensor pada pin analog 2 dan kemudian disimpan pada variabel sensorValue1

sensorValue2 = analogRead(2); …

}

Gambar 16 Ilustrasi kode program pengambilan data.

(17)

2. Maintenance susah dilakukan karena

embedded ke board mikrokontroler.

Menjawab permasalahan tersebut, kita akan menggunakan SD Card. Walaupun SD Card juga hanya mampu melakukan tulis/hapus sebanyak 100.000 kali, tetapi mudah untuk dilakukan maintenance. Hal tersebut dikarenakan SD Card dipasang secara portable. Data yang disimpan ke dalam SD Card berupa file dengan format csv. Cara penyimpanan dalam format csv dipilih karena akan memudahkan untuk memanipulasi data hasil pembacaan dari sensor. Di setiap pengambilan data akan ditentukan sampling

time, batas atas air, batas bawah air, dan akan

dilakukan pencatatan hasil pembacaan dari sensor. SD Card terhubung dengan mikrokontroler dengan menggunakan SD Modul. Koneksi antara SD Modul dengan Arduino Duemilanove dapat dilihat pada Lampiran 3. SD Card ini hanya digunakan untuk rancang bangun sistem menggunakan sensor thermocouple. Pada rancang bangun pertama tidak digunkan SD Card karena pada rancang bangun pertama hanya ingin diketahui keberhasilan mikrokontroler dalam mengenali nilai keluaran sensor dan nilai keluaran dari sensor juga hanya bernilai high atau low, sehingga tidak perlu disimpan saat akan dilakukan analisis.

Simulasi Aktuator

Aktuator merupakan peralatan mekanis yang berfungsi untuk mengontrol suatu sistem. Pada sistem irigasi, aktuator digunakan untuk mengontrol valve. Valve berfungsi untuk mengatur aliran air, seperti membuka atau menutup pipa air untuk irigasi. Pada percobaan kali ini akan dibangun simulasi aktuator. Simulasi dibangun menggunakan LED. LED berfungsi sebagai penanda berjalannya irigasi. Jika lampu LED menyala, menandakan irigasi menyala atau pipa air terbuka. Jika lampu LED mati, menandakan tidak ada irigasi atau pipa air tertutup.

Simulasi ini dilakukan menggunakan pin

digital pada Arduino. Kode program pengaturan

penggunaan pin digital dapat dilihat pada Gambar 17.

Pada Gambar 17, nilai variabel valve adalah 9. Pendefinisian ini berguna untuk menentukan nomer pin digital yang akan digunakan. Kata HIGH menunjukkan pin digital tersebut menyala, sedangkan LOW menunjukkan pin

digital tersebut mati.

I/O Device

Pemantauan program saat program dijalankan perlu dilakukan. Pemantauan ini dilakukan agar kode yang ditulis dapat segera diperbaiki jika terjadi kesalahan. Selain itu, kita juga dapat melihat aliran data selama program berjalan. Proses tersebut dapat dilakukan pada

software Arduino-0022. Software ini akan

membantu dalam proses debugging dan upload. Selain itu terdapat fasilitas serial monitor untuk menampilkan data yang terdapat pada Arduino. Percobaan kali ini dibangun pada lingkungan model dan menggunakan software Ardunio-0022, sehingga proses-proses tersebut akan dilakukan menggunakan I/O device berupa komputer. Komunikasi yang dibangun antara komputer dan mikrokontroler menggunakan USART.

Pengujian Sistem

Hasil rancang bangun menggunakan sensor

float switch dapat dilihat pada Tabel 3. Cara

kerja dari sensor float switch adalah nilai keluaran dari sensor adalah High ketika switch berada di bawah atau menggantung dan akan bernilai low pada saat switch berada di atas. Pada saat air mencapai batas bawah, maka LED

// Pemilihan pin digital untuk simulasi valve

#define valve 9 void setup() {

//mengatur pin digital sebagai output pinMode(valve, OUTPUT); }

void loop(){ …

//pin digital di set menyala digitalWrite(valve, HIGH); …

//pin digital di set mati digitalWrite(valve, LOW); …

}

Gambar 17 Ilustrasi kode program penggunaan

(18)

akan menyala hingga batas atas. Pada saat air berada di batas atas, LED dalam keadaan mati hingga mencapai batas bawah. Dengan kata lain LED akan selalu mengikuti keadaan awal

high/low hingga nilai dari batas atas adalah low

yang menyebabkan LED mati dan nilai dari batas bawah high yang menyebabkan LED menyala. Agar lebih jelas, gambar dari float

switch dapat dilihat pada Lampiran 2.

Tabel 3 Hasil pengujian rancangan bangun menggunakan sensor float switch

No Posisi Air Keadaan LED (Awal) Keadaan LED (Saat ini) Ketera ngan 1 Di atas batas atas

Menyala Mati Sukses

2 Di bawah batas bawah

Mati Menyala Sukses

3 Di antara dua batas

Mati Mati Sukses

4 Di antara dua batas

Menyala Menyala Sukses

Pada uji coba menggunakan thermocouple, dilakukan pengambilan data selama sepuluh menit sebanyak sepuluh kali. Pengambilan dilakukan pada pukul enam pagi. Sebelum data dari thermocouple diambil, nilai keluaran dari sensor diukur terlebih dahulu menggunakan multimeter. Rata-rata data yang dihasilkan oleh ADC nantinya akan dibandingkan dengan hasil ukur multimeter. Setelah itu, akan dibandingkan dengan nilai kesalahan konversi ADC pada

manual book.

Setelah dilakukan percobaan untuk pengambilan pertama, hasil pengukuran menggunakan multimeter adalah 1,149V. Rata-rata nilai digital dari pengambilan data selama sepuluh menit adalah 244,994. Kemudian dilakukan penghitungan menggunakan Persamaan 1, maka diperoleh tegangan input sebesar 1,192V. Modul ADC memunyai rentang kesalahan sebesar ± 2 LSB atau setelah dikonversi menggunakan Persamaan 1, modul ADC memunyai rentang kesalahan sebesar ±

0.013V untuk tegangan referensi 5V. untuk lebih jelasnya dapat dilihat pada Tabel 4. Tabel 4 Hasil penghitungan data dengan tegangan referensi 5v

No Keterangan Nilai (V)

1 Multimeter 1,149

2 Mikrokontroler 1,196

Selisih 0,047

Dari penghitungan yang dilakukan, ternyata diperoleh selisih di luar rentang kesalahan dari modul ADC. Karena selisih terlalu besar, maka akan dilakukan pengujian. Salah satu konstanta yang berpengaruh adalah tegangan referensi. Pengujian dilakukan dengan mengukur tegangan referensi pada mikrokontroler. Dari hasil pengukuran, diperoleh nilai Tegangan referensi sebesar 4,76V. Jadi, terjadi penurunan tegangan pada mikrokontroler sehingga perlu dilakukan perhitungan ulang menggunakan Tegangan referensi 4,76V. Dengan demikian rentang kesalahannya menjadi ± 0,0092V. Penurunan tegangan ini bisa saja terjadi karena umur pakai alat atau hambatan alat yang bertambah karena faktor waktu dan lingkungan. Hasil dari penghitungan ulang dapat dilihat pada Tabel 5.

Tabel 5 Hasil penghitungan data dengan tegangan referensi 4,76v

No Keterangan Nilai (V)

1 Multimeter 1,149

2 Mikrokontroler 1,138

Selisih 0,011

Berdasarkan Tabel 5, dapat dilihat selisih dari dua pengukuran tersebut semakin mendekati rentang kesalahan konversi modul ADC. Supaya didapatkan pembanding hasil uji dan agar pengujian semakin baik, maka akan dilakukan uji coba lagi sebanyak 9 kali. Hasil dari sepuluh kali uji coba dapat dilihat pada Tabel 6. Gambar 18 menggambarkan grafik nilai pengambilan data menggunakan multimeter dan mikrokontroler dengan sumbu x merupakan pengambilan data percobaan sebanyak sepuluh kali dan sumbu y merupakan nilai keluaran sensor.

(19)

Tabel 6 Hasil pengujian rancangan bangun menggunakan sensor thermocouple

Uji Multimeter Mikrokontroler Selisih

1 1,149 1,13884 0,01015 2 1,139 1,13046 0,00853 3 1,134 1,12578 0,00821 4 1,130 1,12132 0,00867 5 1,127 1,11968 0,00731 6 1,127 1,11606 0,01093 7 1,121 1,11151 0,00948 8 1,117 1,10964 0,00735 9 1,118 1,11257 0,00542 10 1,120 1,11208 0,00791 Rata-rata 0.00840

Gambar 18 Grafik nilai pengambilan data menggunakan multimeter dan mikrokontroler Nilai grafik pada Gambar 18 selalu turun,

hal tersebut dikarenakan thermocouple

menggunakan tegangan tambahan berupa baterai 9V dan nilai tegangan baterai tersebut selalu turun. Pada pengambilan data lima dan enam nilai pembacaan multimeter sama. Hal tersebut dikarenakan saat dilakukan pengukuran dengan multimeter, tegangan baterai belum turun. Terbukti dengan nilai pengukuran dengan mikrokontroler yang turun. Pada pengambilan data delapan hingga sepuluh terjadi penaikan nilai, hal tersebut dikarenakan suhu ruangan telah meningkat. Peningkatan tersebut terjadi karena kenaikan suhu yang mengakibatkan beda potensial pada thermocouple meningkat.

Analisis tesebut membuktikan, rancang bangun menggunakan sensor thermocouple menghasilkan nilai pembacaan sensor dengan kesalahan di antara rentang kesalahan konversi

modul ADC. Percobaan yang dilakukan menghasilkan nilai yang sama dengan keterangan pada manual book.

Rancang bangun menggunakan sensor float

switch memungkinkan untuk diterapkan pada

sistem irigasi berbasis dua state. Harga minimum pembangunan sistem ini dapat dilihat pada Lampiran 10. Penerapan rancang bangun menggunakan sensor thermocouple perlu ada penyesuaian terkait sensor. Kita tidak mungkin menggunakan sensor thermocouple jika akan membangun sistim irigasi. Harga minimum pembangunan sistem ini dapat dilihat pada Lampiran 11. Dalam penerapannya, perlu yang diperhatikan dan disesuaikan adalah instalasi lapang alat tersebut, karena biaya yang dikeluarkan bisa lebih mahal. Hal tersebut dikarenakan memungkinkan adanya tambahan-1.08 1.09 1.1 1.11 1.12 1.13 1.14 1.15 1.16 1 2 3 4 5 6 7 8 9 10 K e lu ar an S e n so r (V ) Pengambilan Data Multimeter Mikrokontroler

(20)

tambahan alat seperti kabel, sumber tegangan, dan kotak pengaman.

KESIMPULAN DAN SARAN

Kesimpulan

Arduino Duemilanove dapat melakukan pengambilan data serta memunyai modul ADC, sehingga memudahkan dalam konversi data dari data analog menjadi data digital. Modul ADC pada Arduino Duemilanove memiliki rentang kesalahan sebesar ± 2 LSB dan sudah diuji, sehingga dalam pembangunan sistem yang membutuhkan data dengan akurasi tinggi perlu diperhatikan rentang kesalahan konversi data. Selain itu, pemilihan resolusi juga menjadi pertimbangan untuk data yang membutuhkan akurasi tinggi.

SD Card dapat dipilih sebagai data logger memory karena memudahkan dalam melakukan

pengelolaan penyimpanan data. Kemudahan ini dikarenakan SD Card bersifat portable terhadap sistem. Data yang disimpan ke dalam SD Card, disimpan dalam format .csv agar data mudah dimanipulasi.

Komunikasi serial dapat digunakan untuk berkomunikasi dengan perangkat lain dengan melakukan penyesuaian terhadap baud-rate. Dalam penelitian kali ini digunkana baud-rate sebesar 9600 bit per second.

Saran

Penelitian ini masih terbatas pada lingkungan model sehingga perlu untuk dilakukan uji coba lapang. Rancang Bangun sistem masih dalam tahap mekanisme akuisisi data, sehingga perlu dikembagkan rancang bangun pada mekanisme penyimpanan data, pengiriman data, pengolahan data, dan aktuator.

DAFTAR PUSTAKA

Atmel. 2009. 8-bit AVR Microcontroller with 4/8/16/32K Bytes In-System Programmable Flash ATmega48PA/ ATmega88PA/ ATmega168PA/ ATmega328P. Orchard Parkway San Jose: Atmel Corporation. Heryanto AM et al. 2008. Pemrograman Bahasa

C untuk Mikrokontroler ATMEGA8535. Andi: Yogyakarta.

Saptomo SK, Setiawan BI, Tusi A, Iskandar MA. 2011. Development of Automated

Irrigation System for Production Field : Fuzzy Timer Control.

Winoto Ardi. 2010. Mikrokontroler AVR ATmega8/32/16/8535 dan Pemrogramannya dengan Bahasa C pada WinAVR. Informatika: Bandung.

Anonim. Arduino. http://arduino.com [23 Juli 2011]

Anonim. Arduino Duemilanove.

http://arduino.cc/en/Main/ArduinoBoardDue milanove [23 Juli 2011].

Anonim. SD Modul (Arduino Compatible). http://dfrobot.com/index/.php?route=product /product&product_id=163 [23 Juli 2011].

(21)
(22)
(23)

Lampiran 2 Gambar sensor float switch

Lampiran 3 Koneksi SD Modul dengan Arduino

(24)

Lampiran 4 Dokumentasi rancang bangun menggunakan sensor float switch

(25)

Lampiran 6 Tampilan serial monitor dari rancang bangun menggunakan sensor float switch

(26)

Lampiran 8 Tampilan serial monitor ketika akan melakukan pengaturan penggunaan sistem

(27)

Lampiran 10 Harga serta alat-alat yang digunakan dalam rancang bangun menggunakan float switch

No Alat Jumlah Harga Satuan (Rp) Total Harga (Rp)

1 Arduino Duemilanove 1 235.000 235.000

2 Sensor float switch 2 65.000 130.000

3 LED 1 8.000 8.000

Total 373.000

Lampiran 11 Harga serta alat-alat yang digunakan dalam rancang bangun menggunakan thermocouple

No Alat Jumlah Harga Satuan (Rp) Total Harga (Rp)

1 Arduino Duemilanove 1 235.000 235.000 2 Sensor Thermocouple 1 20.000 20.000 3 Baterai 9 V 1 7.500 7.500 4 SD Card 1 38.000 38.000 5 SD Modul 1 100.000 100.000 6 LED 1 8.000 8.000 Total 408.500

// program untuk menjaga ketinggian air dengan simulasi valve menggunakan LED

#define sensor 2 //jumlah sensor yang digunakan

#define valve 13 //port digital yang digunakan untuk simulasi valve int valueA0;

int valueA1; void setup() {

Serial.begin(9600); //boud-rate untuk komunikasi dengan serial monitor pinMode(valve, OUTPUT); //mengeset pin digital sebagai output

pinMode(2,OUTPUT); digitalWrite(2, HIGH); }

void loop(){

//fungsi untuk membaca nilai dari sensor dan

//menyimpannya ke dalam suatu variabel

valueA0=analogRead(A0); delay(3000);

valueA1=analogRead(A1);

//simulasi valve menggunakan LED

//lampu akan menyala jika air berada di batas bawah

if (valueA0>0){

digitalWrite(valve, HIGH); }

//Menampilkan hasil pembacaan sensor pada Serial Monitor Serial.print ("nilai dari batas bawah: ");

(28)

Serial.println(valueA0); delay(3000);

//lampu akan mati jika air berada dibatas atas if (valueA1==0){

digitalWrite(valve, LOW); }

//Menampilkan hasil pembacaan sensor pada Serial Monitor

Serial.print("nilai dari batas atas:"); Serial.println(valueA1);

delay(3000);

}

/* program datalogger menggunakan SD Card sebagai memori Setting program meliputi :

-sampling time -penentuan batas atas -penentuan batas bawah

-interupt (setting ulang pengoperasian) dengan cara memasukkan sembarang nilai ke serial monitor

*/ #include <Time.h> #include <SdFat.h> #include <SdFatUtil.h> #define LOG_INTERVAL 1000 #define SENSOR_COUNT 3 #define ECHO_TO_SERIAL 1 #define WAIT_TO_START 1 #define SYNC_INTERVAL 1000

#define valve 9 //port digital untuk simulasi valve yaitu lampu Led #define sensor 5 //port analog yang digunakan untuk sensor uint32_t syncTime = 0; // time of last sync()

char settingPoint[8]="0";

int count=0; //sebagai penanda array penyimpanan hasil Serial.read ke settingPoint int batasAtas; int batasBawah; int nilaiSensor; int samplingTime; int hit=0; time_t t; time_t n;

int selisih; //sebagai indikator sampling time

int ket = 0; //sebagai indikator keterangan penulisan sampling time, batas atas, dan batas bawah pada file

SdFat sd; SdFile file;

ArduinoOutStream cout(Serial); char buf[50];

#define error(s) sd.errorHalt_P(PSTR(s)) void setup() {

Serial.begin(9600);

(29)

pinMode(valve, OUTPUT); //mengeset pin digital sebagai output }

void loop() { start();

//Perintah untuk mengeset nilai sampling time

Serial.println("Masukkan Nilai Seberapa Lama Data Akan Diambil (dalam menit)"); while(!Serial.available()); samplingTime: dataSerial(); if (count==8){ count=0; samplingTime=atoi(settingPoint); } else{ goto samplingTime; } ulangBatasAtas:

//Perintah untuk mengeset nilai batas atas

Serial.println("Memasukkan nilai settingPoint batas atas (0-1023): "); while(!Serial.available()); batasAtas: dataSerial(); if (count==8){ count=0; batasAtas=atoi(settingPoint); } else{ goto batasAtas; } if (batasAtas>1023 || batasAtas<0) { goto ulangBatasAtas; } ulangBatasBawah:

//Perintah untuk mengeset nilai batas bawah

Serial.println("Memasukkan nilai settingPoint batas bawah (0-1023): "); while(!Serial.available()); batasBawah: dataSerial(); if (count==8){ count=0; batasBawah=atoi(settingPoint); } else{ goto batasBawah;

(30)

} if (batasBawah>1023 || batasBawah<0) { goto ulangBatasBawah; }

Serial.print("nilai sampling time:" ); Serial.println(samplingTime); Serial.print("nilai batas atas:" ); Serial.println(batasAtas);

Serial.print("nilai batas bawah:" ); Serial.println(batasBawah); ambilData(); software_reset(); }

//fungsi untuk memulai & membuat file .CSV void start() { Serial.println("Initializing SD card..."); if (!sd.init(SPI_HALF_SPEED)) sd.initErrorHalt(); Serial.println("card initialized.");

char name[] = "LOGGER00.CSV"; for (uint8_t i=0; i < 100; i++) { name[6] = i/10 + '0';

name[7] = i%10 + '0';

if (file.open(name, O_CREAT | O_EXCL | O_WRITE)) break; }

if (!file.isOpen()) error("file.open");

cout << pstr("Logging to: ") << name << endl;

obufstream bout(buf, sizeof(buf));

//Untuk memberikan nama header table data bout << pstr("No"); bout << pstr(",Nilai"); bout << pstr(",Valve"); #if ECHO_TO_SERIAL cout << buf << endl; #endif bout << "\r\n"; file.write(buf); file.sync();

if (file.writeError) error("gagal menulis header tabel");

(31)

}

//Fungsi untuk mengambil data dari serial monitor void dataSerial() {

settingPoint[count]=Serial.read(); count=count+1;

int merge = atoi(settingPoint); Serial.println(merge);

}

//Fungsi untuk mengambil data dari sensor void ambilData(){ t=now(); while(selisih<samplingTime) { interupt();

n=now(); //memasukkan waktu saat ini ke variable t

selisih=minute(n)-minute(t); //mencari selisih waktu untuk memberhentikan loopoing nilaiSensor=analogRead(sensor); Serial.println(nilaiSensor); ledSwitch(); hit++; sdCard(hit,nilaiSensor); } }

//Fungsi simulasi valve pada LED void ledSwitch() {

//led menyala jika nilai sensor kurang dari batas bawah if (nilaiSensor<batasBawah){

digitalWrite(valve, HIGH); }

//led menyala jika nilai sensor kurang dari batas bawah if (nilaiSensor>batasAtas){

digitalWrite(valve, LOW); }

}

//Fungsi untuk menulis pada sdCard void sdCard(int n, int nilai) { uint32_t m; do { m = millis(); } while(m % LOG_INTERVAL);

obufstream bout(buf, sizeof(buf));

// Menulis urutan data yang diambil bout << n;

// Menulis data yang diambil bout << ',' << nilai;

(32)

if (digitalRead(valve)>0) { bout << pstr(",Menyala"); } else { bout << pstr(",Mati"); } #if ECHO_TO_SERIAL cout << buf << endl; #endif

bout << "\r\n"; file.write(buf);

if ((millis() - syncTime) >= SYNC_INTERVAL) { file.sync();

syncTime = millis(); }

if (file.writeError) error("gagal menulis data");

if (m == millis()) delay(1); }

// fungsi untuk mereset void software_reset(){ asm volatile ("jmp 0"); }

// fungsi untuk mensetting ulang kembali ketika arduino sedang beroperasi void interupt() { if(Serial.available()) { asm volatile ("jmp 0"); start(); } }

(33)

Penguji:

Gambar

Gambar 1 Skema Arduino Duemilanove.
Gambar 4 Tampilan Arduino-002.
Gambar 6 SD Modul (SKU: DFR0071).
Tabel 1 Perbedaan rancang bangun menggunakan sensor float switch dan sensor thermocouple  No  Keterangan  Rancang Bangun Menggunakan
+7

Referensi

Dokumen terkait

Selain disebabkan oleh Islam sebagai agama yang lebih mengutamakan hal-hal yang berbau sosial daripada individual yang terbukti dengan banyaknya ayat Al-Qur`an dan Hadis

Berkenaan dengan kajian budaya, maka peneliti menjatuhkan pilihan pada batik yang menjadi isu dalam identitas budaya Indonesia dengan mengemukakan dua alasan;

Puji syukur kehadirat Allah SWT, karena hanya berkat karunia serta rahmatNya penulis dapat menyelesaikan tugas akhir yaitu penulisan skripsi dengan judul “

Score model akan ditampilkan jika pengguna masuk ke halaman soal-soal latihan dan permainan, jika pengguna dapat menjawab pertanyaan dari soal- soal latihan dan bisa

Wilayah DIY beserta pembagian Kab/Kota di lingkungannya tahun 1957 Demi kelancaran tata pemerintahan, sesuai dengan mosi Dewan Perwakilan Rakyat Daerah Istimewa Yogyakarta Nomor

Paket pengadaan ini terbuka untuk penyedia barang/jasa yang teregistrasi pada Layanan Pengadaan Secara Elektronik (LPSE) dan memenuhi persyaratan memiliki Surat Izin Usaha

Posyandu Margosari III RT 02 dan RW 01 Kelurahan Salatiga Kecamatan Sidorejo merupakan suatu unit pelayanan kesehatan yang bertugas untuk melakukan pelayanan kesehatan.

Dengan pengenkripsian tersebut seseorang yang ingin menggunakan program sistem informasi kartu tidak dapat menggunakan user id yang lain untuk masuk ke dalam program