Post on 12-Mar-2019
i
TUGAS AKHIR
SISTEM TELEMETRI AKUISISI DATA GREENHOUSE
MENGGUNAKAN XBee Pro S2B
Diajukan untuk memenuhi salah satu syarat
Memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Jurusan Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
Disusun oleh :
RAYENDRA EGA SATRIA
NIM : 125114007
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
FINAL PROJECT
GREENHOUSE DATA ACQUISITION TELEMETRY SYSTEM
USING XBee Pro S2B
In a partial fulfilment of the requirements
For the degree of Sarjana Teknik
Department of Electrical Engineering
Faculty of Science and Technology, Sanata Dharma University
RAYENDRA EGA SATRIA
NIM :125114007
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO :
Ini hidupku, aku penentu kesuksesan hidupku,
is my decision and my action , or nothing at all
Skripsi ini kupersembahkan untuk…..
Yesus Kristus Juru Slamat & Pembimbingku yang Setia
Bapak, Ibu dan Adikku
Kekasihku yang Memberikan Semangat
Sahabat dan Teman-teman Seperjuangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Faktor yang sangat penting dalam membuat sebuah greenhouse adalah dimana
pengguna harus mengetahui kondisi yang ada di dalam greenhouse tersebut .Greenhouse
yang ada saat ini tidak bisa dimonitor secara otomatis, sehingga untuk mengetahui kondisi
greenhouse harus melihat secara langsung dan data yang diperoleh tidak dapat direkam
atau disimpan secara otomatis. Oleh karena itu sistem yang secara otomatis dapat
memantau dan menyimpan semua data dalam greenhouse pada computer dibuat.
Sistem ini menggunakan modul pengiriman XBee Pro S2B untuk mengirimkan
data secara wireless dari sistem kontrol ke komputer untuk ditampilkan di interface
software matlab agar pengguna mudah dalam melihat. Sistem akan mengirim data setiap
10 detik, setelah itu data akan disimpan secara otomatis berdasarkan tanggal pengiriman.
Modul XBee Pro S2B untuk sistem telemetri monitoring kondisi greenhouse
berhasil dibuat dan sudah diuji dengan jarak maksimal 115 meter untuk pengiriman paket
data. Data yang dimonitor adalah waktu, tanggal, suhu, kelembaban udara, kelembaban
tanah, status control, pompa air, humidifier dan air cooler.
Kata kunci : Greenhouse, Matlab, XBee Pro S2B.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
A very important factor in making a greenhouse is that user must know the
conditions which exist in the greenhouse. The current greenhouse can’t be monitored automatically, so to find out the condition of the greenhouse the user should directly
monitor it and the data obtained could not be recorded or stored automatically. Since the
data obtained could not be recorded or stored automatically, therefore a system that could
automatically monitor and save all data in the greenhouse on the computer was created.
This system uses shipping module XBee Pro S2B to send the wireless data from the
control system to the computer. After that, the data will be displayed in the matlab software
interface so the user can easily see the data. The system will transmit data every 10
seconds. After that, the data will be saved automatically based on delivery date.
XBee Pro S2B module for telemetry system monitoring the condition of the
greenhouse was successfully created and had already tested with the maximum distance of
115 meters for data packet delivery. Monitored data is the time, date, temperature, air
humidity, soil moisture, status control, water pump, humidifier and air cooler.
Keywords : Greenhouse, Matlab, XBee Pro S2B.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas segala rahmat-
Nya. Berkat Kasih dan KaruniaNya selama menjalani proses pembuatan tugas akhir ini,
penulis dapat menyelesaikan tugas akhir dengan judul “Sistem Telemetri Akuisisi Data
Greenhouse Menggunakan Xbee Pro S2B”.
Tugas akhir ini disusun untuk memenuhi salah satu syarat memperoleh gelar
Sarjana Teknik (S.T) bagi mahasiswa program S-1 Jurusan Teknik Elektro Universitas
Sanata Dharma Yogyakarta. Selama proses penyusunan proposal ini, penulis banyak
mendapat bantuan dan dukungan dari berbagai pihak, untuk itu penulis mengucapkan
terimakasih kepada:
1. Bapak Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elektro
Universitas Sanata Dharma Yogyakarta.
2. Bapak Dr. Ir. M. Linggo Sumarno, M.T., selaku Dosen Pembimbing tugas akhir yang
telah banyak meluangkan waktu untuk memberikan bimbingan.
3. Bapak Martanto, M.T., dan Bapak Joko Untoro, S.Si., M.T., yang telah memberikan
saran dan kritik dalam menyelesaikan penulisan tugas akhir.
4. Seluruh dosen Teknik Elektro yang telah memberikan ilmu yang bermanfaat kepada
penulis selama kuliah.
5. Bapak, ibu dan adikku yang telah memberikan perhatian dan dukungan.
6. Rosana Indriastuti yang telah memberikan semangat untuk segera menyelesaikan
penulisan tugas akhir ini.
7. Seluruh teman-teman prodi Teknik Elektro angkatan 2012 atas kerjasama dan
kebersamaannya selama menjalani studi.
8. Kawan-kawan penggembira dan penyemangat kos 21 yang memberikan dukungan.
9. Semua pihak yang tidak bisa penulis sebutkan satu per satu atas bantuan, bimbingan,
kritik dan saran.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
Halaman Sampul(Bahasa Indonesia) ......................................................................... i
Halaman Sampul(Bahasa Inggris) ............................................................................. ii
Lembar Persetujuan ................................................................................................... iii
Lembar Pengesahan ................................................................................................... iv
Halaman Persembahan .............................................................................................. v
Lembar Pernyataan Keaslian Karya .......................................................................... vi
Lembar Pernyataan Persetujuan Publikasi Karya Ilmiah .......................................... vii
Intisari ........................................................................................................................ viii
Abstract ...................................................................................................................... ix
Kata Pengantar ........................................................................................................... x
Daftar Isi .................................................................................................................... xii
Daftar Gambar ........................................................................................................... xv
Daftar Tabel ............................................................................................................... xvii
BAB I PENDAHULUAN
1.1 Latar Belakang ......................................................................................... 1
1.2 Tujuan dan Manfaat ................................................................................ 1
1.3 Batasan Masalah ..................................................................................... 2
1.4 Metodologi Penelitian ............................................................................. 2
BAB II DASAR TEORI
2.1 Sistem Telemetri ...................................................................................... 4
2.2 Sistem Akuisisi Data ............................................................................... 4
2.3 Greenhouse .............................................................................................. 4
2.3.1 Tanaman Hias Ruangan .................................................................. 5
2.3.2 Suhu Udara ..................................................................................... 6
2.3.3 Kelembaban Udara ......................................................................... 6
2.3.4 Kelembaban Tanah ......................................................................... 6
2.4 XBee Pro S2B .......................................................................................... 7
2.4.1 Fitur-fitur XBee Pro S2B ................................................................ 7
2.4.2 Spesifikasi XBee Pro S2B .............................................................. 7
2.4.3 Konfigurasi Pin ............................................................................... 8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.4.4 XBee Usb Adapter dan Software X-CTU ....................................... 9
2.4.5 XBee Shield .................................................................................... 10
2.4.6 Komunikasi Serial .......................................................................... 10
2.4.7 PAN ID ........................................................................................... 11
2.4.8 API .................................................................................................. 12
2.4.9 IDLE Mode ..................................................................................... 12
2.5 Topologi Point to Point ........................................................................... 13
2.6 Software MATLAB ................................................................................. 13
2.6.1 Sistem MATLAB ........................................................................... 14
2.6.2 Karakteristik MATLAB ................................................................. 15
2.6.3Karkteristik Lingkungan Kerja MATLAB ...................................... 16
2.7 LCD ......................................................................................................... 18
2.8 Mikrokontroller Arduino Mega ............................................................... 19
2.9 Software Arduino ..................................................................................... 20
BAB III RANCANGAN PENELITIAN
3.1 Arsitektur Sistem ..................................................................................... 22
3.2 Perancangan Subsistem Software ............................................................ 23
3.2.1 Diagram Alir Program Utama ........................................................ 25
3.2.2 Diagram Alir Subrutin Pengiriman Data ........................................ 25
3.2.3 Diagram Alir Pengiriman dan Penerimaan Paket Data .................. 28
3.2.4 Diagram Alir Subrutin Penerima Data ........................................... 29
3.2.5 Format Paket Data .......................................................................... 30
3.2.6 Format Penyimpanan File ............................................................... 30
3.3 Perancangan Subsistem Hardware .......................................................... 33
3.3.1 Setting Konfigurasi XBee PRO S2B .............................................. 33
3.3.2 LCD ................................................................................................ 35
3.3.3 Desain Greenhouse ......................................................................... 37
BAB IV HASIL DAN PEMBAHASAN
4.1 Bentuk Fisik Box Kontrol Pengiriman Data dan Sistem Elektronik ....... 39
4.1.1 Bentuk Fisik Box ............................................................................ 39
4.1.2 Sistem Elektronik ........................................................................... 41
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
4.2 Pengujian Hardware ................................................................................ 42
4.2.1 Pengujian Komunikasi XBee Pro S2B ........................................... 42
4.2.2 Pengujian Timer dan Pengiriman Paket Data ................................. 46
4.2.3 Pengujian Timer dan Penerima Paket Data .................................... 47
4.2.4 Pengujian Interface ......................................................................... 49
4.2.5 Pengujian Database ........................................................................ 50
4.3 Pembahasan Perangkat Lunak ................................................................. 52
4.3.1 Program utama ................................................................................ 52
4.3.2 Subrutim Pengiriman Paket Data ................................................... 52
4.3.3 Subrutin Pengiriman Data Waktu dan Tanggal .............................. 52
4.3.4 Subrutin Pengiriman Status Pengendali ......................................... 53
4.3.5 Subrutin Pengiriman Data Sensor................................................... 53
4.3.6 Subrutin Penerima Paket Data ........................................................ 53
4.3.7 Paket Data ....................................................................................... 54
4.3.8 Penyimpanan Data .......................................................................... 54
BAB V KESIMPULAN
5.1 Kesimpulan .............................................................................................. 57
5.2 Saran ........................................................................................................ 57
DAFTAR PUSTAKA ................................................................................... ............. 58
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR GAMBAR
Halaman
Gambar 1.1 Diagram Blok Perancangan ................................................................. 3
Gambar 2.1 Modul XBee Pro S2B .......................................................................... 7
Gambar 2.2 Konfigurasi pin XBee Pro S2B............................................................ 8
Gambar 2.3 XBee usb adapter dan kabel mini usb .................................................. 9
Gambar 3.4 Tampilan software X_CTU ................................................................. 10
Gambar 2.5 XBee Shield ......................................................................................... 10
Gambar 2.6 Sistem data UART ............................................................................... 11
Gambar 2.7 Paket data UART ditransmisikan melalui module XBee .................... 11
Gambar 2.8 Software Matlab ................................................................................... 13
Gambar 2.9 LCD Display ........................................................................................ 18
Gambar 2.10 Arduino Mega ...................................................................................... 20
Gambar 2.11 IDE Arduino ........................................................................................ 20
Gambar 3.1 Blok Diagram Seluruh Sistem ............................................................. 22
Gambar 3.2 Blok Diagram Sistem Penelitian .......................................................... 22
Gambar 3.3 Tampilan GUI ...................................................................................... 24
Gambar 3.4 Tampilan Grafik GUI .......................................................................... 25
Gambar 3.5 Diagram Alir Program Utama ............................................................. 26
Gambar 3.6 Diagram Alir Subrutin Pengiriman Data ............................................. 27
Gambar 3.7 Diagram Alir Pengiriman dan Penerimaan Paket Data ....................... 28
Gambar 3.8 Diagram Alir Subrutin Penerima Data ................................................ 29
Gambar 3.9 Diagram Alir Penyimpanan Data ......................................................... 31
Gambar 3.10 Menampilkan Data ............................................................................... 32
Gambar 3.11 Menghitung Memori Data ................................................................... 32
Gambar 3.12 Penampil Grafik dengan Data yang Hilang ......................................... 33
Gambar 3.13 Hasil Test Komunikasi XBee Pertama ................................................ 34
Gambar 3.14 Nomor Versi dan PAN ID ................................................................... 34
Gambar 3.15 Nomor PAN ID dan Serial Number ..................................................... 34
Gambar 3.16 Test Modem XBee kedua ..................................................................... 34
Gambar 3.17 Versi Router dan Serial Number .......................................................... 35
Gambar 3.18 Router DH dan DL............................................................................... 35
Gambar 3.19 cek Seluruh konfigurasi XBee ............................................................. 35
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
Gambar 3.20 Test XBee Pertama .............................................................................. 35
Gambar 3.21 Rangkaian LCD Display ...................................................................... 36
Gambar 3.22 Design prototype smart greenhouse .................................................... 37
Gambar 3.23 Greenhouse Tampak Depan ................................................................ 38
Gambar 3.24 Greenhouse Tampak Atas .................................................................... 38
Gambar 3.25 Greenhouse Tampak Samping ............................................................. 38
Gambar 4.1 Bentuk Fisik Box Tampak Depan ........................................................ 40
Gambar 4.2 Bentuk Fisik Box Tampak Atas ........................................................... 40
Gambar 4.3 Bentuk Fisik Box Tampak Samping .................................................... 40
Gambar 4.4 Bentuk Fisik Box Tampak Bawah ....................................................... 41
Gambar 4.5 XBee dan Shield XBee ........................................................................ 41
Gambar 4.6 LCD ..................................................................................................... 42
Gambar 4.7 XBee dan Usb Adapter ........................................................................ 42
Gambar 4.8 XBee Menerima Data .......................................................................... 44
Gambar 4.9 XBee Berkomunikasi Tanpa Data ....................................................... 44
Gambar 4.10 Penerima Data Error ............................................................................ 45
Gambar 4.11 Program Pembacaan Paket Data .......................................................... 48
Gambar 4.12 Program Menampilkan Data Dalam Tabel .......................................... 48
Gambar 4.13 Program Simpan Data Tabel ke Excel ................................................. 49
Gambar 4.14 Pengujian Interface .............................................................................. 50
Gambar 4.15 Hasil Data Excel yang Tersimpan ....................................................... 51
Gambar 4.16 Penampil Data Saat Pengambilan Paket Data ..................................... 51
Gambar 4.17 Penampil Data Saat Tidak Ada Pengambilan Paket Data ................... 51
Gambar 4.18 Menampilkan Data ............................................................................... 55
Gambar 4.19 Menghitung Memori Data ................................................................... 56
Gambar 4.20 Penyimpanan Hasil Data ...................................................................... 56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
DAFTAR TABEL
Halaman
Tabel 2.1 Spesifikasi XBee Pro S2B ......................................................................... 7
Tabel 2.2 LCD Display .............................................................................................. 19
Tabel 2.3 Keterangan Tombol Pada Tampilan IDE Arduino .................................... 20
Tabel 3.1 Format Paket Data ..................................................................................... 30
Tabel 3.2 Tampilan Data di LCD .............................................................................. 36
Tabel 4.1 Komunikasi Data Tanpa Error ................................................................... 44
Tabel 4.2 Komunikasi Data Error.............................................................................. 45
Tabel 4.3 Tampilan Tanggal Error ............................................................................ 45
Tabel 4.4 Data Jarak pengambilan Paket Data .......................................................... 46
Tabel 4.5 Serial Monitor Pengiriman Paket Data ...................................................... 47
Tabel 4.6 Paket Data yang Diterima .......................................................................... 48
Tabel 4.7 Timer Saat Tombol Kontrol Box Ditekan ................................................. 49
Tabel 4.8 Perubahan Format Paket Data ................................................................... 54
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Tanaman memberikan udara yang sehat, sebab mengambil CO2 (gas asam arang)
yang dikeluarkan dari proses pernafasan untuk diubah menjadi O2 (zat asam) yang akan
manusia dan binatang hirup kembali dalam proses pernafasan[1]. Maka diperlukan sebuah
tempat dan alat yang digunakan untuk membuat bagaimana tanaman yang kita tanam dapat
hidup secara maksimal yakni greenhouse dan sistem monitoring. Alat ini terdapat dua
bagian, yaitu bagian pertama terdiri dari sistem kontrol yaitu greenhouse, sensor,
pengendali kondisi greenhouse, bagian kedua terdiri dari sistem telemetri akuisisi data.
Pada sistem ini, penulis lebih berkonsentrasi pada bagian kedua yakni sistem
telemetri akuisisi data. Terdapat banyak peneliti yang membuat sistem monitoring
greenhouse, salah satunya yang sudah dilakukan oleh M. Syahrul Munir dalam penelitian
yang berjudul “Rancangan Smart Greenhouse Dengan Teknologi Mobile Untuk Efisiensi
Tenaga, Biaya Dan Waktu Dalam Pengelolaan Tanaman”. Dalam penelitiannya semua
proses pemantauan oleh sensor diolah pada mikrokontroller kemudian data akan disimpan
pada database server. Sistem pemantauan dan pengendalian sistem dapat dilakukan secara
online dengan teknologi mobile berbasis web[2].
Menggunakan konsep yang sama tetapi berbeda metode yang digunakan, penulis
mengubah metode pengiriman paket data menggunakan modul XBee Pro S2B yang
dilakukan secara offline dan tidak harus terpaku dengan internet, jadi memudahkan bagi
pengguna yang daerahnya tidak terjangkau oleh internet. Sistem ini akan memonitoring
kondisi greenhouse seperti suhu, kelembaban udara, kelembaban tanah dan kontrol status.
Sistem ini juga dihubungkan dengan pengendali kondisi greenhouse seperti kipas,
evaporator fan, pompa air agar pengguna dapat memantau kondisi greenhouse melalui PC.
Sistem ini menggunakan modul XBee Pro S2B sebagai transmitter dan receiver. Sistem ini
dapat memonitoring kondisi greenhouse tanpa harus melihat dari dekat dan menciptakan
kondisi tanaman yang baik.
1.2 Tujuan dan Manfaat
Tujuan penelitian ini adalah menghasilkan suatu sistem yang dapat mengirim dan
menerima data sensor dan kontrol status pada greenhouse secara otomatis dari sistem
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
kontrol ke PC dengan wireless modul XBee Pro S2B. Manfaat dari penelitian ini adalah
mempermudah pekerjaan manusia dalam monitoring kondisi greenhouse.
1.3 Batasan masalah
Tugas akhir ini bertujuan menghindari terlalu kompleksnya masalah yang muncul,
maka perlu adanya batasan-batasan masalah yang sesuai dengan judul tugas akhir ini.
Adapun batasan masalah adalah :
a. Terdapat 1 buah greenhouse.
b. Jarak maksimal antara kontrol unit dengan PC adalah 500 meter.
c. Ada 4 parameter yang diakuisisi yaitu suhu, kelembaban udara, kelembaban tanah,
kontrol status.
d. Data yang diterima dari hasil pengukuran bagian kontrol unit.
e. Interface dengan MATLAB R2012b.
f. Terdapat tabel dan grafik pada tampilan interface.
g. XBee Pro S2B sebagai sistem komunikasi.
h. Mikrokontroller dengan Arduino Mega 2560 rev 3.
1.4 Metodologi Penelitian
Berdasarkan pada tujuan yang ingin dicapai metode-metode yang digunakan dalm
penyusunan tugas akhir ini adalah :
a. Studi literatur, yaitu pengumpulan bahan-bahan referensi berupa buku, jurnal, artikel,
internet yang berkaitan dengan permasalahan yang dibahas dalam tugas akhir ini.
b. Dokumenter, yaitu mendapatkan sumber informasi berdasarkan data atau arsip yang
telah ada sehingga dapat membantu penulis dalam mengerjakan tugas akhir ini.
c. Eksperimen, yaitu langsung melakukan praktek maupun pengujian terhadap hasil
pembuatan alat dalam pembuatan tugas akhir ini.
d. Perancangan subsistem hardware. Tahap ini bertujuan untuk mencari model yang
optimal dari sistem yang akan dibuat dengan mempertimbangkan dari berbagai faktor-
faktor dan kebutuhan yang telah ditentukan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
LCD
ARDUINO
MEGA
SHIELD &
XBee
USB
ADAPTER &
XBee
LAPTOP
Gambar 1.1 Diagram Blok Perancangan
e. Pembuatan subsistem hardware berdasarkan gambar 1.1, rangkaian akan bekerja dengan
baik jika data dari Arduino Mega dapat diterima dan ditampilkan pada interface laptop
dengan menggunakan XBee Pro S2B.
f. Proses pengambilan data dilakukan dengan mengirimkan data dari Arduino Mega ke
laptop dan dapat ditampilkan untuk dimonitoring.
g. Analisi data dilakukan dengan mendeteksi kestabilan sistem yang sedang berjalan
(misal: menjaga kestabilan suhu pada greenhouse). Penyimpulan hasil percobaan dapat
dilakukan dengan menghitung prosentase error yang terjadi pada kesamaan data yang
dikirim dan yang diterima.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
BAB II
DASAR TEORI
2.1 Sistem Telemetri
Telemetri adalah penggunaan telekomunikasi untuk merekam dan mengirimkan
sinyal pegukuran secara otomatis dari suatu alat ukur yang berada pada jarak jauh.
Selanjutnya informasi hasil pengukuran dikirimkan dengan berbagai cara menuju user [3].
Sistem telemetri bertujuan mengambil suatu data dari tempat yang lokasinya jauh
dan mengirimkannya ke stasiun pusat untuk diolah. Penggunaan sistem telemetri banyak
dijumpai dalam kehidupan sehari-hari seperti pemantauan cuaca, tracking satelit,
monitoring kendaraan, monitoring proses industri [4].
2.2 Sistem Akuisisi Data
Sistem akusisi data atau biasa dikenal Data Acquisition Sistem (DAS) merupakan
sistem instrumentasi elektronik terdiri dari sejumlah elemen yang secara bersama-sama
bertujuan melakukan pengukuran, menyimpan, dan mengolah hasil pengukuran. Secara
aktual DAS berupa interface antara lingkungan analog dengan lingkungan digital.
Lingkungan analog meliputi transduser dan pengondisi sinyal dengan segala
kelengkapannya, sedangkan lingkungan digital meliputi analog to digital converter
(ADC), selanjutnya pemrosesan digital dilakukan oleh mikroprosesor atau sistem berbasis
mikroprosesor. Komputer yang digunakan untuk sistem akuisisi data dapat mempengaruhi
kecepatan akuisisi data. Tipe-tipe transfer data yang tersedia pada komputer yang
bersangkutan mempengaruhi kinerja dari sistem akuisisi data secara
keseluruhan [5].
2.3 Greenhouse
Greenhouse atau rumah tanaman pada dasarnya digunakan untuk
mengembangbiakan suatu tumbuhan baik untuk tujuan riset maupun intensifikasi
pertanian. Greenhouse sendiri biasanya dilengkapi dengan sistem pengatur temperatur dan
kelembaban udara, sehingga besarnya suhu, kelembaban udara di dalam rumah kaca
tersebut dapat sesuai dengan habitat tanaman tersebut [6].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
2.1.1 Tanaman hias ruangan
Tanaman hias yang akan ditempatkan dalam ruangan berasal dari alam terbuka dan
mempunyai sifat pembawaan yang berbeda-beda, tergantung jenisnya. Beberapa jenis
mempunyai sifat pembawaan mampu hidup dalam ruangan yang minim cahaya, udara
segar bahkan pada kelembaban relatif yang kurang. Jenis-jenis inilah sebetulnya yang
disebut tanaman hias untuk ruangan meski dalam kondisi lingkungan yang minimum [1].
Jenis-jenisnya antara lain :
a. Ruangan teduh dan sejuk
1) Jenis-jenis paku.
2) Maranta.
3) Philodendron.
b. Ruangan terang tapi tidak ada matahari
1) Monstera.
2) Scindapsus.
3) Zebrina.
c. Ruangan agak kesinaran matahari langsung kalau siang
1) Chlorophytum.
2) Cordyline.
3) Ficus decora.
4) Peperomia.
5) Sanseviera.
d. Ruangan bercahaya langsung dekat jendela
1) Coleus.
2) Ficus benjamina.
3) Kalanchoe.
e. Ruangan kering dan terang
1) Aechmea.
2) Agave.
3) Ficus decora.
4) Sanseviera.
5) Vriesia.
6) Jenis-jenis kaktus.
7) Jenis-jenis sukulen.[7]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
2.1.2 Suhu udara
Suhu udara di permukaan tanah berfluktuasi dan cenderung menurun seiring
dengan bertambahnya umur tanaman, karena tanaman bertambah tinggi dan jumlah serta
luas daun makin besar, sehingga radiasi yang menuju permukaan tanah terhambat atau
terhalang oleh covering dan menyebabkan evaporasi tanah terhambat [8]. Suhu maksimum
dan minimum yang mendukung pertumbuhan tanaman biasanya berkisar 5o - 35oC. Suhu
dimana pertumbuhan optimum berlangsung berbeda-beda sesuai tahap perkembangan.
Rata-rata temperatur yang diperlukan adalah 18,3 – 21,2oC, bahkan pada cuaca yang
sangat panas dengan temperatur rata-rata mencapai 27,0 oC tanaman masih tumbuh dengan
baik. Cuaca yang dingin sekitar 12,0 – 15,0oC juga membantu tanaman yang baru dipindah
atau dipotkan untuk menyesuaikan diri [1].
2.1.3 Kelembaban udara
Kelembaban udara merupakan kandungan uap air di udara yang dinyatakan sebagai
kelembaban mutlak, kelembaban nisbi (relatif) maupun defisit tekanan udara. Kandungan
uap air di udara di daerah tropik biasanya lebih besar dari pada di daerah iklim sedang.
Variasi musiman sangat kecil dan kelembaban relatif selalu diatas 80%. Kandungan uap air
udara yang sangat besar dan variasi suhu harian yang besar menyebabkan pembentukan
embun menjadi suatu yang umum bagi daerah tropik. Evaporasi embun sedikit
mengawetkan lengas tanah / kelembaban tanah, tetapi pengaruh embun yang lebih besar
adalah menciptakan kondisi yang cocok bagi perkembangan berbagai penyakit tumbuhan
[8].
2.1.4 Kelembaban tanah
Faktor kelembaban media tanam sangat mempengaruhi pertumbuhan dan
perkembangan tanaman. Kelembaban media tanam dapat dijaga dengan melakukan
penyiraman secara teratur dan pengaturan cahaya dengan menempatkankan di daerah yang
cukup ternaungi. Terjaganya kelembaban tanah, maka media tanam dapat menjamin
pertumbuhan sistem perakaran tanaman dan proses penyerapan air dan hara. Hal ini
disebabkan media menjadi porous sehingga udara dalam media cukup bersih dan seimbang
dengan keadaan airnya serta O2 tersedia dengan cukup [9].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
2.4 XBee Pro S2B
Modul XBee Pro S2B dirancang untuk beroperasi dalam protokol ZigBee dan
rendah daya untuk jaringan sensor nirkabel. Modul memerlukan minimal daya dan
menyediakan pengiriman data yang handal antar perangkat jarak jauh. Modul beroperasi
dalam ISM band frekuensi 2,4 GHz menggunakan wire antena [10]. Modul XBee Pro S2B
dapat dilihat pada gambar 2.1.
Gambar 2.1 Modul XBee Pro S2B
2.4.1 Fitur-Fitur XBee Pro S2B
Terdapat beberapa fitur-fitur yang dapat mendukung kinerja XBee Pro S2B,
diantaranya :
a. Catu daya : 2.8V - 3.4V DC
b. I/O Interface : 3.3V CMOS UART, SPI, I2C, PWM, DIO, ADC.
c. Metode konfigurasi : API atau perintah AT, lokal atau melalui udara.
d. Frekuensi : 2,4 GHz.
e. Serial data : 1200 bps – 1 Mbps.
f. ADC Input : 10-bit.
g. Digital I/O : 10.
h. Pilihan antena : PCB Embedded Antenna, Wire Whip, U.FL, RPSMA.
i. Modulasi : QPSK, DSSS.
j. Jangkauan : 100 m indoor atau 3200 m outdoor (LOS).[10]
2.4.2 Spesifikasi XBee Pro S2B
Tabel 2.1 Spesifikasi XBee Pro S2B
Spesifikasi XBee-PRO (S2B)
Performa
Indoor / dalam ruangan Hingga 300 ft. (90 m)
Outdoor / luar ruangan Hingga 2 mil (3200 m)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Tabel 2.1 (Lanjutan) Spesifikasi XBee Pro S2B
Spesifikasi XBee-PRO (S2B)
Performa
Transmit Power Output 63mW (+18 dBm)
RF Data Rate 250,000 bps
Data Throughput Hingga 35000 bps
Serial Interface Data Rate 1200 bps - 1 Mbps
Sensitivitas Receiver -102 dBm
Kebutuhan Daya
Tegangan Input 2.7 - 3.6 V
Arus ( transmit, output daya maksimum) 205mA hingga 220 mA
Arus (Receive) 47 mA hingga 62 mA
Arus yang ada (Receiver off) 15mA
Umum
Operasi Frekuensi Band ISM 2.4 GHz
Ukuran 0.960 x 1.297 (2.438cm x 3.294cm)
Suhu Operasional -40 sampai 85º C
Pilihan Antena Integrated Whip Antenna, Embedded PCB Antenna, RPSMA atau U.FL Connector
Jaringan dan Keamanan
Didukung Jaringan Topologi Point-to-point, Point-to-multipoint, Peer-
to-peer, and Mesh
Jumlah Saluran 15 Saluran
Saluran 11 to 25
Pilihan Alamat PAN ID dan alamat, Cluster IDs dan Endpoints
2.4.3 Konfigurasi Pin
Pin-pin di sini berguna untuk mengetahui pin mana saja yang digunakan dalam
sistem yang dibuat seperti pada gambar 2.2.
Gambar 2.2 Konfigurasi pin XBee Pro S2B
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
2.4.4 XBee Usb Adapter dan Software X-CTU
XBee usb adapter merupakan alat untuk menghubungkan modul Xbee ke komputer
dengan kabel mini usb dan selanjutnya dikonfigurasi menggunakan software X-CTU.
Software X-CTU merupakan software yang digunakan untuk mengkonfigurasi Xbee agar
dapat berkomunikasi dengan Xbee lainya. Parameter yang harus diatur adalah PAN ID
(Personal Area Network). PAN ID adalah parameter yang mengatur radio mana saja yang
dapat berkomunikasi, agar dapat berkomunikasi PAN ID dalam satu jaringan harus sama.
XBee dapat berkomunikasi point to point dan point to multipoint (broadcast) tetapi dalam
sistem ini komunikasi XBee secara simplex atau satu arah, jadi satu XBee mengirim dan
satunya hanya menerima data. XBee usb adapter dan kabel mini usb dapat dilihat pada
gambar 2.3 dan tampilan X_CTU pada gambar 2.4. Adaptor juga bisa mendukung
antarmuka XBee, spesifikasinya :
a. Output daya 3.3V dan 5V ganda.
b. 3.3V dan 5V IO kompatibel.
c. USB 2.0 protokol.
d. Modus BitBang.
e. Mudah terhubung ke PC via kabel mini USB.
f. Xbee pengaturan perangkat lunak pendukung X-CTU [10].
Gambar 2.3 XBee usb adapter dan kabel mini usb
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
Gambar 2.4 Tampilan software X_CTU
2.4.5 XBee Shield
Xbee shield merupakan board yang dapat menghubungkan board arduino
berkomunikasi secara nirkabel atau wireless menggunakan modul Xbee atau Zigbee seperti
yang terlihat pada gambar 2.5 [10].
Gambar 2.5 XBee Shield
2.4.6 Komunikasi Serial
Modul antarmuka XBee untuk perangkat host melalui port serial
asynchronous. Melalui port serial, modul dapat berkomunikasi dengan logika dan tegangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
kompatibel UART atau melalui penerjemah ke perangkat serial ( misalnya: melalui modul
RS-232 atau USB interface ) seperti gambar 2.6.
Gambar 2.6 Sistem data UART
Data memasuki UART modul melalui DIN (pin 3) sebagai sinyal serial
asynchronous. Sinyal harus siaga tinggi ketika tidak ada data yang sedang dikirim. Setiap
byte data yang terdiri dari start bit (rendah), 8 bit data (bit paling signifikan pertama) dan
stop bit (tinggi) [10]. Seperti yang terlihat pada gambar 2.7.
Gambar 2.7 Paket data UART ditransmisikan melalui module XBee
2.4.7 PAN ID
Jaringan ZigBee disebut jaringan area pribadi atau PANS. Setiap jaringan
didefinisikan dengan PAN yang unik identifier (PAN ID). Identifier ini umum di semua
perangkat dari jaringan yang sama. Perangkat ZigBee yang baik dikonfigurasikan dengan
ID PAN untuk bergabung atau mereka dapat menemuan jaringan di dekatnya dan pilih ID
PAN untuk bergabung. ZigBee mendukung 64-bit dan PAN ID 16-bit. Kedua ID PAN
digunakan untuk secara unik mengidentifikasi jaringan. Perangkat pada jaringan ZigBee
yang sama harus berbagi sama 64-bit dan 16-bit ID PAN. Jika beberapa jaringan ZigBee
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
beroperasi dalam jangkauan satu sama lain, masing-masing harus memiliki ID PAN yang
unik [10].
2.4.8 API
Operasi API adalah sebuah alternatif untuk operasi transparan. Ketika dalam mode
API semua data masuk dan keluar modul yang terkandung didalam akan mendefinisikan
operasi atau peristiwa dalam modul.
Mengirimkan data (diterima melalui pin DIN (pin 3)) meliputi:
a. RF Transmit data
b. Perintah AT
Menerima data (dikirim pin DOUT (pin 2)) meliputi:
a. RF menerima data
b. Respon perintah
c. Pemberitahuan seperti ulang, asosiasi, memisahkan, dll.
API menyediakan sarana alternatif konfigurasi modul dan routing data pada lapisan
aplikasi host. Aplikasi host dapat mengirim frame ke modul yang berisi alamat dan muatan
informasi, bukan menggunakan modus perintah untuk memodifikasi alamat. Modul akan
mengirimkan data ke aplikasi mengandung paket status serta sumber dan informasi dari
paket data yang diterima.
Pilihan operasi API memfasilitasi banyak operasi seperti :
a. Mengirimkan data ke beberapa tujuan.
b. Menerima keberhasilan / kegagalan status setiap paket data ditransmisikan.
c. Mengidentifikasi alamat sumber dari setiap paket yang diterima [10].
2.4.9 IDLE Mode
Kondisi tidak menerima atau mengirimkan data, modul RF dalam Idle Mode /
mode siaga. Ketika data serial yang diterima dan siap dipaketkan, modul RF akan keluar
Idle Mode dan mencoba untuk mengirimkan data. Alamat tujuan menentukan data yang
akan diterima. Sebelum transmisi data, modul memastikan bahwa alamat jaringan 16-bit
dan rute ke node tujuan telah ditetapkan. Jika tujuan 16-bit alamat jaringan tidak diketahui,
alamat jaringan penemuan akan berlangsung. Jika rute tidak diketahui, penemuan rute akan
berlangsung untuk tujuan membangun rute ke node tujuan. Jika modul dengan alamat
jaringan yang cocok tidak ditemukan, paket tersebut akan dibuang. Data akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
ditransmisikan sekali rute didirikan. Jika penemuan rute gagal untuk membangun rute,
paket akan dibuang. Jika paket data yang valid diterima, data akan ditransfer [10].
2.5 Topologi Point to Point
Topologi point to point adalah topologi yang membangun hubungan langsung
antara dua node jaringan. Jaringan sensor nirkabel atau WSN ini menggunakan topologi
point to point. Jenis node dan parameter yang harus dikonfigurasi agar dua Xbee dapat
berkomunikasi secara point to point adalah salah satu node harus menjadi coordinator dan
lainnya menjadi router atau end device. Klik “Read” dan “Always Update Firmware” pada
tab modem configuration dalam software X-CTU untuk dapat membaca modul Xbee, pada
bagian function set diatur menjadi Zigbee Coordinator AT, selanjutnya parameter pada
node coordinator yang harus diatur adalah parameter PAN ID, PAN ID dalam satu
jaringan (antara dua Xbee) harus sama agar dapat berkomunikasi. Jika jenis node dan
parameter sudah diatur, setelah itu klik “Write” untuk menyimpan konfigurasi yang telah
diatur ke dalam Xbee [10].
2.6 Software Matlab
Gambar 2.8 Software Matlab
Matlab atau (Matrix Laboratory) yaitu software untuk menganalisis dan
mengkomputasi data numerik. Matlab merupakan suatu bahasa pemrograman matematika
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
lanjutan yang dibentuk dengan dasar pemikiran yang menggunakan sifat dan bentuk
matriks seperti pada gambar 2.8.
Matlab dikembangkan oleh The Mathwork Inc yang hadir dengan fungsi dan
karakteristik yang berbeda dengan bahasa pemrograman lain yang sudah ada lebih dahulu
seperti Delphi, Basic maupun C++.
Matlab dikembangkan dengan menggunakan bahasa C++ dan assembler,
(utamanya untuk fungsi-fungsi dasar matlab). Matlab telah berkembang menjadi
sebuah environment pemrograman yang canggih yang berisi fungsi-fungsi built-in untuk
melakukan tugas pengolahan sinyal, aljabar linier, dan kalkulasi matematis lainnya. Matlab
menyediakan berbagai fungsi untuk menampilkan data, baik dalam bentuk dua dimensi
maupun dalam bentuk tiga dimensi [11].
2.6.1 Sistem MATLAB
a. Development Environment.
Kumpulan semua alat-alat dan fasiltas untuk membantu menggunakan fungsi
dan file matlab. Bagian ini memuat desktop, Command window, command history,
editor and debugger, dan browser untuk melihat help, workspace, files.
b. The Matlab Mathematical Function Library.
Bagian ini adalah algoritma komputasi, mulai dari fungsi sederhana seperti
sum, sine, cosine sampai fungsi lebih rumit seperti, invers matriks, nilai eigen,
fungsi Bessel dan fast Fourier transform.
c. The Matlab language.
Bahasa matriks/array level tinggi dengan control flow, fungsi, struktur data,
input/output, dan fitur objek programming lainnya.
d. Graphics.
Matlab mempunyai fasilitas menampilkan vector dan matriks sebagai grafik.
Fasilitas ini mencakup visualisasi data dua / tiga dimensi, pemrosesan citra (image),
animasi, dan grafik animasi.
e. The MATLAB Application Program Interface (API).
Paket ini memungkinkan menulis bahasa C dan Fortran yang berinteraksi
dengan matlab. API memuat fasilitas untuk pemanggilan kode-kode dari matlab
(dynamic linking), seperti mesin penghitung, membaca dan menulis mat-files.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Matlab merupakan sistem interaktif yang mempunyai basis data array dan tidak
membutuhkan dimensi. Ini memungkinkan kita dapat menyelesaikan banyak masalah
komputasiteknis, khususnya yang berkaitan dengan formulasi matrik dan vector. Tidak
hanya itu, matlab juga mampu melakukan komputasi simbolik yang biasa dilakukan oleh
maple.
Matlab memiliki ratusan fungsi yang dapat digunakan sebagai problem solver
mulai dari simpel sampai masalah-masalah yang kompleks. Sebagai contoh di lngkungan
perguruan tinggi dan industri:
Lingkungan perguruan tinggi, misalnya perguruan tinggi teknik. matlab merupakan
perangkat standar untuk memperkenalkan dan mengembangkan penyajian materi
matematika, rekayasa dan keilmuan.
Di industri, matlab merupakan perangkat pilihan untuk penelitian dengan
produktifitas yang tinggi, pengembangan dan analisanya. Kegunaan matlab secara umum
adalah sebagai berikut:
a. Matematika dan komputasi
b. Perkembangan algoritma
c. Pemodelan, simulasi, dan pembuatan prototype
d. Analisa data, eksplorasi dan visualisasi
e. Pembuatan aplikasi, termasuk pembuatan antaramuka grafis [11].
2.6.2 Karakteristik MATLAB
a. Bahasa pemrogramannya didasarkan pada matriks (baris dan kolom).
b. Lambat (dibandingkan dengan Fortran atau C) karena bahasanya langsung
diartikan.
c. Automatic memory management, misalnya kita tidak harus
mendeklarasikan arrays terlebih dahulu.
d. Tersusun rapi.
e. Waktu pengembangannya lebih cepat dibandingkan dengan Fortran atau C.
f. Dapat diubah ke bahasa C lewat matlab Compiler.
g. Tersedia banyak toolbox untuk aplikasi-aplikasi khusus.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Beberapa kelebihan program aplikasi matlab jika kita bandingkan dengan program
lain seperti Fortran, dan Basic adalah :
a. Mudah dalam memanipulasi struktur matriks dan perhitungan berbagai operasi matriks
yang meliputi penjumlahan, pengurangan, perkalian, invers dan fungsi matriks
lainnya.
b. Menyediakan fasilitas untuk memplot struktur gambar (fasilitas grafik tiga dimensi
yang sangat memadai).
c. Script program yang dapat diubah sesuai dengan keinginan.
d. Jumlah routine-routine powerful yang berlimpah yang terus berkembang.
e. Kemampuan interface (misal dengan bahasa C, word dan mathematica).
f. Matlab dilengkapi dengan toolbox, simulink, stateflow dan sebagainya, serta mulai
melimpahnya source code di internet yang dibuat dalam matlab, ( contoh toolbox
misalnya : signal processing, control system, neural networks dan sebagainya) [11].
2.6.3 Karakteristik Lingkungan Kerja MATLAB
Secara umum lingkungan kerja matlab terdiri dari tiga bagian yang penting dalam
menjalankan yaitu:
a. Command Windows
Windows ini muncul pertama kali ketika menjalankan program matlab. Command
windows digunakan untuk menjalankan perintah-perintah matlab, memanggil tool matlab
seperti editor, fasilitas help, model simulink dan lain-lain. Ciri dari windows ini adanya
prompt (tanda lebih besar) yang menyatakan matlab siap menerima perintah. Perintah
tersebut dapat berupa fungsi-fungsi bawaan (toolbox) matlab itu sendiri.
1) Workspace : menampilkan semua variable yang pernah kita buat meliputi variable
ukuran, jumlah byte, dan class
2) Command History : menampilkan perintah-perintah yang telah kita ketikkan pada
Command Window.
b. Editor Window
Window ini merupakan tool yang disediakan oleh matlab yang berfungsi sebagai
editor script matlab (listing perintah-perintah yang harus dilakukan oleh matlab). Ada dua
cara untuk membuka editor ini, yaitu Klik : File, lalu New dan kemudian M-File.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Secara formal suatu script merupakan suatu file eksternal yang berisi tulisan
perintah matlab. Tetapi script tersebut bukan merupakan suatu fungsi. Ketika menjalankan
suatu script, perintah di dalamnya dieksekusi seperti ketika dimasukkan langsung
pada matlab melalui keyboard.
Penulisan barisan ekspresi dalam matlab command window dilakukan pada baris
perbaris dan untuk menyimpan barisan perintah serta hasil outputnya dengan menggunkan
command diary. Hal ini tidak efisien dikarenakan barisan yang telah tersimpan di diary
tidak dapat diload-kan kembali, seandaianya telah keluar dari matlab. Jika dilakukan
banyak sekali perulangan barisan perintah yang sama, misalkan dilakukan pengolahan data
dan perhitungan yang sama dengan melibatkan data atau fungsi yang berbeda. Cara
membentuk dan menjalankan M-File:
1) Klik menu File, pilih New dan klik M-File
2) Pada editor teks, tulis argumen atau perintah
3) Simpan dengan cara klik File, pilih Save As dan beri nama dengan ekstensi .m
4) Pastikan file yang akan dijalankan berada pada direktori aktif
5) Misalkan file graf1.m berada di C:\MATLAB, maka lakukan perintah cd
6) >> cd c:\matlab
7) Kemudian jalankan file graf1.m dengan cara
8) >> graf1
Fungsi M-File harus mengikuti beberapa aturan. Fungsi M-file juga mempunyai
sejumlah sifat penting. Aturan-aturan dan sifat-sifat tersebut meliputi :
1) Nama fungsi dan nama file harus identik. Contohnya flipud disimpan dalam file yang
bernama flipud.m
2) Pertama kali matlab mengeksekusi suatu fungsi M-file, matlab membuka file fungsi
tersebut dan mengkompilasi perintah-perintah di dalamnya menjadi suatu representasi
internal dalam memori yang mempercepat eksekusi untuk semua pemanggilan
berikutnya.
3) Baris komentar sampai dengan baris bukan komentar yang pertama adalah teks help
yang ditampilkan. Jika meminta bantuan, misalnya >>help flipud yang menampilkan 9
baris komentar pertama dari contoh di atas. Baris komentar yang paling atas disebut
baris H1 yakni baris yang dicari oleh perintah lookfor.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
4) Setiap fungsi memiliki ruang kerjanya sendiri yang berbeda dengan ruang kerja
matlab. Satu-satunya hubungan antara ruang kerja matlab dengan variabel-variabel
dalam fungsi adalah variabel-variabel input dan output fungsi.
5) Jumlah dari argument input dan output yang digunakan jika suatu fungsi dipanggil
hanya ada dalam fungsi tersebut.
6) Fungsi dapat berbagi variabel dengan fungsi lain, ruang kerja matlab dan pemanggilan
untuk dirinya sendiri jika variabelnya dideklarasikan sebagai variabel global.
7) Fungsi M-file berhenti dieksekusi dan kembali ke prompt jika telah mencapai akhir
dari M-file atau jika menemui perintah return. Perintah return merupakan cara
sederhana untuk menghentikan fungsi sebelum mencapai akhir file. Fungsi M-file
dapat memuat lebih dari sebuah fungsi
c. Figure Windows
Windows ini merupakan hasil visualisasi dari script Matlab. Matlab memberikan
kemudahan bagi programmer untuk mengedit windows ini sekaligus memberikan program
khusus untuk itu, sehingga selain berfungsi sebagai visualisasi output yang berupa grafik
juga sekaligus menjadi media input yang interaktif.
d. Simulink windows
Windows ini digunakan untuk mensimulasikan sistem kendali berdasarkan blok
diagram yang telah diketahui. Untuk mengoperasikannya ketik “simulink” pada command
windows [11].
2.7 LCD
LCD (liquid cell display) merupakan salah satu komponen elektronika yang
berfungsi untuk menampilkan data berupa karakter, huruf, angka [12]. Pada penerapanya
LCD akan menampilkan status pengiriman data dari greenhouse. Seperti pada gambar 2.9.
Gambar 2.9 LCD Display
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
LCD tipe ini memiliki 2 baris dimana masing-masing baris memuat 16 karakter.
Selain sangat mudah dioperasikan, kebutuhan daya LCD ini sangat rendah [12]. Sementara
untuk konfigurasi pin dapat dilihat pada tabel 2.2 berikut.
Tabel 2.2 LCD Display
No Nama Fungsi
1 Vss 0V (GND)
2 Vcc 5V
3 VLC LCD Contrast Voltage
4 RS Register Select; H: Data Input; L: Instruction Input
5 RD H: Read; L: Write
6 EN Enable Signal
7 D0 Data Bus
8 D1 Data Bus
9 D2 Data Bus
10 D3 Data Bus
11 D4 Data Bus
12 D5 Data Bus
13 D6 Data Bus
14 D7 Data Bus
15 V+BL Positif backlight voltage (4-4,2V; 50-200mA)
16 V–BL Negative backlight voltage (0V; GND)
2.8 Mikrokontroller Arduino Mega
Mega 2560 adalah papan mikrokontroler berdasarkan ATmega2560. Mikro ini
memiliki 54 digital pin input / output (yang 15 dapat digunakan sebagai output PWM), 16
analog input, 4 UART (hardware port serial), osilator kristal 16 MHz, koneksi USB, jack
listrik, header ICSP, dan tombol reset. Berisi semua yang diperlukan untuk mendukung
mikrokontroler, hanya terhubung ke komputer dengan kabel USB atau dengan adaptor AC-
DC atau baterai untuk suplay [13]. Arduino mega dapat dilihat seperti gambar 2.10. Untuk
lebih jelasnya dapat dilihat di lampiran 9 sampai 13.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
Gambar 2.10 Arduino Mega
2.9 Software Arduino
Pemrograman arduino dikenal dengan Integrated Development Evironment ( IDE ).
Lingkungan pemrograman yang digunakan untuk menulis baris program dan
mengunggahnya ke dalam board arduino dibuat lebih mudah dan dapat berjalan pada
beberapa sistem operasi seperti windows, macintosh dan linux [13]. Dengan tampilan awal
seperti gambar 2.11.
Gambar 2.11 IDE Arduino
Tabel 2.3 Keterangan Tombol Pada Tampilan IDE Arduino
No Tombol Nama Fungsi
1
Verify
Menguji kesalahan dalam program atau sketch apabila sketch sudah benar, maka sketch tersebut akan dikompilasi. Kompilasi adalah proses mengubah kode program ke dalam kode mesin.
2
Upload
Mengirimkan kode mesin hasil kompilasi ke board arduino
3
New Membuat sketch baru
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Tabel 2.3 (Lanjutan) Keterangan Tombol Pada Tampilan IDE Arduino
No Tombol Nama Fungsi
4
Open
Membuka sketch yang sudah ada
5
Save
Menyimpan sketch
IDE arduino pada tabel 2.3 membutuhkan beberapa pengaturan yang digunakan
untuk mendeteksi board arduino yang sudah dihubungkan ke komputer. Beberapa
pengaturan tersebut adalah mengatur jenis board yang digunakan sesuai dengan board
yang terpasang dan mengatur jenis komunikasi data melalui perintah serial port. Kedua
pengaturan tersebut dapat ditemukan pada pull menu tools [13].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
BAB III
RANCANGAN PENELITIAN
3.1 Arsitektur Sistem
Perancangan sistem telemetri akuisisi data greenhouse menggunakan XBee Pro S2B
dibagi menjadi dua bagian utama, yaitu:
a. Perancangan software yang terdiri dari pemograman pc / interface, pemrograman mikro /
arduino mega, penyetingan konfigurasi XBee Pro S2B.
b. Perancangan hardware yang terdiri dari perancangan LCD.
Gambar 3.1 Blok Diagram Seluruh Sistem
Gambar 3.2 Blok Diagram Sistem Penelitian
Peneliti dalam sistem ini membuat sistem dengan bagian blok warna merah yaitu
pengirim dan penerima data dengan modul XBee Pro S2B kemudian ditampilkan di PC
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
seperti pada gambar 3.1. Berikut merupakan keterangan cara kerja sistem yang ditunjukkan
gambar 3.2 :
a. XBee Pro S2B merupakan transmitter wireless yang bekerja pada frekuensi 2,4 GHz. Alat
ini mempunyai 2 fungsi yaitu pengirim data dari hasil sensor melalui arduino mega ke PC
dan penerima data di PC secara wireless.
b. LCD sebagai penampil status bahwa data sedang dikirim.
c. Arduino mega berfungsi sebagai media perantara untuk mentransmisikan data yang masuk
ke PC yang dipancarkan oleh XBee Pro S2B.
d. Shield Xbee berfungsi komunikasi antara arduino mega dengan XBee.
e. Usb adapter berfungsi untuk berkomunikasi antara PC dengan XBee menggunakan port
USB.
f. Untuk mendapatkan data dari control unit. Data dari control unit yang disimpan dalam
database arduino mega akan dikirimkan ke PC melalui XBee Pro S2B. Setelah data di
terima di PC, data tersebut dipisahkan untuk setiap format datanya kemudian ditampilkan
dalam bentuk tabel dan grafik.
3.2 Perancangan Subsistem Software
Perancangan subsistem software yang pertama harus dibuat adalah membuat diagram
alur sistemnya terlebih dahulu yang nantinya dalam pembuatan program dapat terencana
dengan baik dan sesuai.utuk mendukung perancangan software, di sini dibuat rancangan
tampilan GUI / interface seperti gambar 3.3 dengan software matlab sebagai sistem
monitoring kondisi greenhouse yang secara otomatis data akan masuk dan tertampil secara
realtime, kemudian data yang telah masuk akan tertampil dalam bentuk tabel dan grafik yang
nantinya data juga akan tersimpan di dalam database yakni disimpan dengan format tanggal
pengiriman.mat agar memudahkan dalam pencarian data yang sebelumnya sudah tersimpan.
Saat data yang baru masuk maka nantinya user atau pengguna juga dapat mencari atau
melihat-lihat file-file yang sebelumnya tersimpan jika dibutuhkan. Model format
penyimpanan data sesuai dengan format karakter pada tabel interface.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
Gambar 3.3 Tampilan GUI
Bagian data masuk adalah data yang sesuai dengan data yang baru saja dikirim dari
transmitter untuk mengecek atau melihat apakah data yang masuk dan diterima sesuai. Untuk
tampilan pada tabel nantinya data akan tertampil sesuai dengan nomor paket pengiriman
yakni akan terus bergeser ke atas atau data yang baru akan tertampil pada tabel paling bawah
dan jika ingin melihat data yang sudah lama dengan cara scroll atau geser ke atas secara
manual.
Grafik yang ada nantinya akan terus tertampil dengan 10 data terakhir yang diterima
hingga hari berganti agar memudahkan dalam pembacaan grafik setiap harinya serta nantinya
pengguna juga dapat melihat data pada jam dan tanggal berapa saja. Keterangan grafik pada
sumbu x adalah waktu pengiriman dan sumbu y adalah data sensor yang masuk seperti
gambar 3.4. Serta nantinya dapat melihat nilai minimum, maximum dan average pada setiap
data sensor yang dikirim per harinya. Jika ingin melihat grafik pada data yang diinginkan,
contoh melihat data pada jam 2 sampai jam 6 pagi dua minggu yang lalu, ya tinggal cari file
pada tanggal tersebut dan yang di plot atau dibuat grafiknya ambil pada jam 2 sampai jam 6
pagi saja dan nantinya akan tertampil grafik sesuai dengan apa yang diinginkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Gambar 3.4 Tampilan Grafik GUI
3.2.1 Diagram Alir Program Utama
Perancangan sistem yang akan dijalankan dengan inisialisasi port pada mikro arduino
mega kemudian mengaktifkan TX / transmitter, setelah itu tanggal dan waktu pengiriman
harus diketahui. Setelah semua data terkumpul maka data siap dikirim dan diterima dengan
bantuan modul XBee Pro S2B secara wireless yang kemudian akan ditampilkan datanya di
dalam interface PC dan dapat dimonitoring pada jarak jauh. Diagram alir dapat dilihat pada
gambar 3.5 dimana bagian dengan warna biru merupakan sistem pengiriman data dan bagian
dengan warna merah merupakan sistem penerima data.
3.2.2 Diagram Alir Subrutin Pengiriman Data
Sistem pada perancangan pengiriman data ini dengan inisialisasi port mikro arduino
mega kemudian transmitter diaktifkan lalu atur tanggal dan waktu pengiriman kemudian
semua data yang akan dikirim akan dilihat apakah data tersebut termasuk data waktu dan
tanggal, sensor, kontrol status, suhu, kelembaban udara, kelembaban tanah. Setelah data
tersebut sudah sesuai maka siap dikirim di dalam bentuk paket yang sebelumnya data tersebut
sudah terdapat karakter tersendiri untuk membedakan antara data yang satu dengan yang
lainnya seperti pada gambar 3.6. Subrutin setiap pengiriman data dapat dilihat di lampiran
gambar L1 sampai L6 dengan mengirimkan data setiap satu menit sekali karena
menyesuaikan dengan pengambilan data pada sensor.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Inisialisasi
Port Mikro
Aktifkan TX
Mulai
Subrutin Pengiriman
Data
Subrutin Penerima
Data
Tampilkan Data Dalam
Tabel dan Grafik
Selesai
Baca Waktu
dan Tanggal
Gambar 3.5 Diagram Alir Program Utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Mulai
Atur Waktu
Pengiriman
Data
Inisialisasi
Port Mikro
Aktifkan TX
Data TanggalSubrutin Pengiriman
Data TanggalUlang
Data Kontrol StatusSubrutin Pengiriman
Data Kontrol StatusUlang
Data SuhuSubrutin Pengiriman
Data SuhuUlang
Data Kelembaban
Udara
Data Kelembaban
Tanah
Subrutin Pengiriman
Data Kelembaban
Tanah
Subrutin Pengiriman
Data Kelembaban
Udara
Ulang
Ulang
Kirim Paket DataSubrutin Pengiriman
Paket Data
Selesai
YAYA
YA
YA
YA
YA
YA
YA
YA
YA
YA
TIDAK
TIDAK
TIDAK
TIDAK
TIDAK
TIDAK
TIDAK
TIDAK
TIDAK
TIDAK
TIDAK
Data WaktuSubrutin Pengiriman
Data WaktuUlang
YA
YA
TIDAK
Gambar 3.6 Diagram Alir Subrutin Pengiriman Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
3.2.3 Diagram Alir Pengiriman dan Penerimaan Paket Data
Sistem pengiriman dan penerimaan paket data ini dengan mengambil serta
mengirimkan satu paket data yang sudah siap kirim kemudian transmitter diaktifkan
kemudian paket data dikirim dan pada XBee penerima receiver diaktifkan supaya dapat
menerima paket data yang sudah dikirim. Setelah itu data akan diterima dan ditampilkan
dalam interface PC seperti pada gambar 3.7.
Mulai
Ambil 1
Paket Data
Aktifkan TX
Kirim Paket
Data
Aktifkan RX
Data Masuk ?
Ambil Paket
Data
Tampilkan
Dalam Bentuk
Tabel dan grafik
Selesai
YA
TIDAK
Gambar 3.7 Diagram Alir Pengiriman dan Penerimaan Paket Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
3.2.4 Diagram Alir Subrutin Penerima Data
Sistem pada perancangan ini menerima setiap satu menit sekali dengan
menginisialisasi port pada PC kemudian transmitter diaktifkan agar dapat berkomunikasi dan
data bisa diterima. Setelah data masuk akan dicek terlebih dahulu apakah format sesuai, jika
ya maka data siap ditampilkan. Dengan diagram alir seperti pada gambar 3.8.
Mulai
Inisialisasi
Port PC
Aktifkan
RX
Data Masuk ?
Ambil dan
Periksa
Data
Format Data
sesuai ?
Tampilkan Data Ke
Tabel dan Grafik
Selesai
YA
TIDAK
YA
TIDAK
Gambar 3.8 Diagram Alir Subrutin Penerima Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3.2.5 Format Paket Data
Jumlah karakter dalam paket data sebanyak 44 karakter, terdiri dari nomor
pengiriman, waktu, tanggal, status sistem kontrol dan data 3 sensor ( suhu, kelembaban udara,
kelembaban tanah) yang diawali dengan karakter ”@” dan diakhiri dengan karakter “$”.
Format data tersebut disesuaikan dengan kebutuhan , berikut format data di dalam paket data :
@HH:MM#YYYY-mm-DD#KxEyPz#S11.1#U22.2#T33.3$
Dari format data yang sudah ada, HH:MM adalah jam dan menit, YYYY-mm-DD
adalah tanggal bulan tahun pengiriman, KxEyPz adalah keterangan apakah sistem kendalinya
dalan kondisi on atau off yakni terdapat kipas, evaporator fan dan pompa air, S11.1 adalah
data suhu dengan tanda titik (.) sebagai pemisah angka desimal, U22.2 adalah data
kelembaban udara dengan tanda titik (.) sebagai pemisal angka desimal, T33.3 adalah data
kelembaban tanah dengan tanda titik (.) sebagai pemisah angka desimal untuk memudahkan
dalam pembacaan, tanda pagar (#) sebagai pemisah tiap data. Dari format paket data tersebut
dijelaskan jumlah karakter dalam tabel tabel 3.1.
Tabel 3.1 Format Paket Data
Waktu Tanggal Kontrol Status
Suhu (oC)
Kelembaban Udara (%)
Kelembaban Tanah (%)
Jumlah Karakter
5 10 6 5 5 5
3.2.6 Format Penyimpanan File
Perancangan ini supaya dapat memudahkan pengguna dalam menyimpan data, maka
file yang disimpan diberi nama sesuai dengan tanggal kapan data tersebut diterima / dikirim
dengan format nama.mat, contoh 20160210.mat berarti file tersebut data pada tahun 2016
bulan Februari tanggal 10. Data tersebuat tersimpan secara otomatis setelah semua data dalam
1 hari sudah diterima semua karena pengiriman data setiap 1 menit sekali, jadi dalam 1 hari
terdapat 1440 data yang harus dikirim dan diterima. Penyimpanan setiap hari atau per hari dan
sebagai keterangan rancangan sistem kerja GUI seperti yang diperjelas pada gambar 3.9. Pada
database nantinya dalam 1 folder akan dapat menyimpan data dalam satu minggu dengan
jumlah data 10080 dan untuk 4 bulan dalam satu siklus tanam yakni 10080 x 16 minggu
adalah 161.280 data dengan catatan bahwa software matlab menyala terus menerus, di sini
sebenarnya berapapun banyak datanya tidak masalah karena masuk ke dalam memori laptop
dan juga memori setiap data sangat kecil, untuk satu karakter jika dalam satu hari hanya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
11520 bytes, sementara dalam paket data terdapat 44 karakter, berarti dalam satu hari hanya
menyimpan data 11520 kb x 44 karakter yakni 506880 b atau 506,88 kb dan dalam satu
minggu 506,88 x 7 jadi 3548,16 kb atau 3,54816 Mb. Jika dalam satu siklus tanam 4 bulan,
maka 3,54816 Mb x 16 minggu yakni 56,77056 Mb seperti yang diperjelas pada gambar 3.10
dan 3.11.
START
Apakah Paket
Data Sesuai ?
Ulang
SELESAI
Tidak
Ya
Ya
Ya
Tidak
Tampilkan Data
Dalam Bentuk Grafik
Terima
Data
Paket
Tampilkan Data
Dalam Kolom Data
Terbaru dan
Kedalam Tabel
Simpan Data
Paket Dalam
Bentuk M.File
Gambar 3.9 Diagram Alir Penyimpanan Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Gambar 3.10 Menampilkan Data
Gambar 3.11 Menghitung Memori Data
Jika nantinya software Matlab dimatikan berarti datanya tidak tersimpan dan jika
ingin menamilkan grafik pada data sebelum dan sesudah dimatikan hanya dengan plot data
yang nantinya diinginkan meskipun berbeda data seperti pada gambar 3.12.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Gambar 3.12 Penampil Grafik dengan Data yang Hilang
3.3 Perancangan Subsistem Hardware
Perancangan subsistem hardware dibuat untuk mendukung dalam pembuatan sistem
ini, perancangan yang akan dibuat adalah setting XBee, perancangan LCD sebagai penampil
data yang akan dikirim serta desain greenhouse yang akan digunakan.
3.3.1 Setting Konfigurasi XBee Pro S2B
Saat akan melakukan setting konfigurasi XBee dengan software X_CTU pilih port
mana yang akan diseting kemudian pilih baud rate dan test, jika berhasil maka akan muncul
kotak seperti gambar 3.13. Setting konfigurasi dengan memilih type modem yang harus
terkonfigurasi dengan internet, lalu set coordinator AT dengan membuat PAN ID dengan
angka yang unik, cek nomor PAN ID dan nomor versi pada XBee seperti pada gambar 3.14
serta cek serial number seperti pada gambar 3.15.
Setting XBee yang ke dua dengan cara yang sama seperti pada setting XBee yang
pertama dengan hasil test modem seperti pada gambar 3.16 tapi setelah memilih type modem
lalu set router AT, cek versi router dan serial number seperti pada gambar 3.17 serta cek
router DH dan DL seperti gambar 3.18. Isi DH dan DL dengan nomor SH dan SL dan cek
seluruh konfigurasi XBee yang kedua seperti pada gambar 3.19.
Setelah selesai pada XBee kedua lalu setting lagi XBee yang pertama dengan hasil test
sepert pada gambar 3.20, kemudian cek konfigurasinya seperti dan ganti DH dan DL dengan
SH dan SL router XBee yang kedua, cek lagi konfigurasinya seperti, jika sudah semua selesai
XBee dapat digunakan untuk berkomunikasi.
22.5
23
23.5
24
24.5
25
25.5
0 5 10 15
oC
Paket Data
Suhu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Gambar 3.13 Hasil Test Komunikasi XBee Pertama
Gambar 3.14 Nomor Versi dan PAN ID Gambar 3.15 Nomor PAN ID dan Serial
Number
Gambar 3.16 Test Modem XBee kedua
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Gambar 3.17 Versi Router dan Serial Number Gambar 3.18 Router DH dan DL
Gambar 3.19 cek Seluruh konfigurasi XBee Gambar 3.20 Test XBee Pertama
3.3.2 LCD
Perancangan elektronika greenhouse ini LCD yang digunakan pada LCD character
16x2 berfungsi sebagai penampil keterangan paket pengiriman data. Berdasarkan datasheet
tegangan kontras (pin Vo) maksimum LCD ini adalah 5 volt, nantinya akan digunakan
Variabel resistor sebesar 10 kohm yang akan digunakan untuk membatasi tegangan pada pin
ini. Tujuannya mengatur kontras pada LCD tersebut. Rangkaian LCD character 16x2
ditunjukkan pada gambar 3.21.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Gambar 3.21 Rangkaian LCD Display
Pada Tabel 3.2 merupakan rancangan tampilan data pada LCD dengan keterangan
warna biru merupakan status kontrol dengan Kx adalah kipas, Ey adalah evaporator fan, Pz
adalah pompa air, warna merah merupakan data suhu dengan satu angka desimal di belakang
koma, warna hijau merupakan data kelembaban udara dengan satu angka desimal di belakang
koma, warna kuning merupakan data kelembaban tanah dengan satu angka desimal dibelang
koma dan warna ungu merupakan jumlah paket data yang dikirim atau nomor pengiriman
paket data yang nantinya paket akan reset setiap hari maka butuh 4 karakter yakni 1 jam = 60
menit, maka 60 x 24 jam = 1440 paket data. Tanda pagar di LCD merupakan pemisah antar
bagian data agar mudah dalam pembacaan dan tanda titik sebagai tanda koma untuk angka
desimal.
Tabel 3.2 Tampilan Data di LCD
K x E y P z # S 1 1 . 1 # U 2 2
. 2 # T 3 3 . 3 # P 4 4 4 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
3.3.3 Design Greenhouse
Perancangan ini merupankan design smart greenhouse yang dibuat berupa gambar 3
dimensi yang nantinya akan menjadi panduan untuk membuat alat yang sebenarnya. Pada
gambar 3.20 ditunjukan design untuk greenhouse tersebut dengan ukuran panjang x lebar x
tinggi adalah 70 cm x 60 cm x 80 cm. Greenhouse nantinya akan terbuat dari alumunium
dan kaca. Pada greenhouse akan terdapat kipas, evaporator fan dan sistem pengairan yang
akan diletakkan di dalam greenhouse.
Pompa air akan diletakkan diluar greenhouse yang ditunjukkan pada gambar 3.22.
seperti yang terlihat pada gambar 3.23 merupakan gambaran greenhouse dari depan dan
gambar 3.24 merupakan gambaran greenhouse dari atas serta gambar 3.25 merupakan
gambaran greenhouse tampak dari samping. Dalam meletakkan pusat kontrolnya, juga
terdapat kotak di depan greenhouse seperti pada gambar 3.23. Kotak ini nantinya digunakan
untuk meletakkan mikrokontroler ,LCD , LED dan tombol sebagai pusat kontrol. User
nantinya akan melihat status greenhouse pada kotak ini. Pada greenhouse ini juga akan
terdapat 4 roda agar mudah untuk dipindahkan. Kedua sensor, SHT 11 akan diletakkan diatas
selang irigasi , sementara YL-69 akan ditanam ditanah yang ada pada greenhouse.
Gambar 3.22 Design Prototype Smart Greenhouse
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
Gambar 3.23 Tampak Depan Gambar 3.24 Tampak Atas
Gambar 3.25 Tampak Samping
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
BAB IV
HASIL DAN PEMBAHASAN
Bab ini berisikan gambar fisik hardware yang dibuat, sistem elektronik, pengujian
hardware yang meliputi pengujian komunikasi XBee, pengujian timer dan pengiriman
paket data, pengujian timer dan penerima paket data, pengujian interface, pengujian
database. Pembahasan perangkat lunak yang meliputi program utama, subrutin pengiriman
paket data, subrutin pengiriman data waktu dan tanggal, subrutin pengiriman status
pengendali, subrutin pengiriman data sensor, subrutin penerima paket data, penyimpanan
data. Hasil pengujian berupa data-data yang diperoleh dapat memperlihatkan bahwa
hardware dan software yang dirancang telah bekerja dengan baik atau tidak. Berdasarkan
data-data tersebut dapat dilakukan analisis terhadap proses kerja alat yang kemudian dapat
digunakan untuk menarik kesimpulan akhir.
4.1 Bentuk Fisik Box Kontrol Pengiriman Data dan Sistem Elektronik
Fisik box dan sistem elektronik merupakan komponen pendukung karena dari
kontrol box data diambil dan dikirimkan ke interface.
4.1.1 Bentuk Fisik Box
Bentuk fisik box yang digunakan untuk menempatkan rangkaian elektronik, box
dirancang agar mempermudah dalam penempatan rangkaian elektronik pendukung sistem
yang akan dijalankan. Gambar fisik box dapat dilihat seperti pada gambar 4.1 yang
merupakan bentuk fisik box tampak depan dengan adanya LCD dan tombol push botton
untuk melihat data serta pada bagian kiri terdapat lampu indikator status dari ketiga sensor,
gambar 4.2 merupakan bentuk fisik box tampak atas dengan adanya antena dari modul
XBee Pro S2B sebagai modul pengiriman paket data, gambar 4.3 merupakan bentuk fisik
box tampak samping dengan adanya input dan sumber tegangan mikrokontroler arduino
serta input sensor, gambar 4.4 merupakan bentuk fisik box tampak bawah dengan adanya
stop kontak dari relay untuk mengatur pompa air, air cooler sebagai pengganti kipas dan
humidifier sebagai pengganti evaporator fan yang mengontrol kodisi greenhouse agar
sesuai dengan apa yang diinginkan dan tergantung dari data keluaran sensor.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Gambar 4.1 Bentuk Fisik Box Tampak Depan
Gambar 4.2 Bentuk Fisik Box Tampak Atas
Gambar 4.3 Bentuk Fisik Box Tampak Samping
Antena_XBee
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Gambar 4.4 Bentuk Fisik Box Tampak Bawah
4.1.2 Sistem Elektronik
Sistem elektronik yang terdapat pada kontrol box yakni XBee, Shield XBee sebagai
modul komunikasi transmitter paket data seperti terlihat pada gambar 4.5 dan LCD untuk
menampilkan data yang terkirim, status input sensor atau data sensor, status output sensor
atau status kontrol semua data seperti terlihat seperti pada gambar 4.6. Selama pengujian
semua hardware yang digunakan aman dan berfungsi dengan baik sesuai rancangan, LCD
yang digunakan diganti dari ukuran 16 x 2 dengan 16 x 4 agar tampilan data dapat terlihat
dengan mudah atau memudahkan pengguna dalam pembacaan data. Hardware yang
terpasang pada laptop yakni XBee dan usb adapter juga berfungsi dengan baik yang
berguna sebagai modul komunikasi receiver paket data seperti pada gambar 4.7.
Gambar 4.5 XBee dan Shield XBee
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Gambar 4.6 LCD
Gambar 4.7 XBee dan Usb adapter
4.2 Pengujian Hardware
Pengujian hardware bertujuan supaya hardware yang digunakan benar-benar layak
pakai dalam jangka panjang dan berfungsi dengan baik. Pengujian yang dilakukan meliputi
pengujian komunikasi XBee Pro S2B, pengujian timer dan pengiriman paket data,
pengujian timer dan penerima paket data, pengujian interface, pengujian database.
4.2.1 Pengujian Komunikasi XBee Pro S2B
Pengujian komunikasi pada modul XBee Pro S2B bertujuan supaya modul
komunikasi ini dapat berfungsi dengan baik. Dalam pengujian dapat dilihat secara
langsung modul ini berkerja atau tidak dengan melihat pada usb adapter yang terpasang
pada XBee sebagai receiver, led pada usb adapter akan bernyala merah jika ada data yang
diterima/masuk seperti yang terlihat pada gambar 4.8, jika tidak ada data yang masuk dan
XBee tersebut sedang berkomunikasi maka hanya led warna biru yang berkedip seperti
yang terlihat pada gambar 4.9.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Pada pengujian komunikasi yang dilakukan di kondisi outdoor dengan tempat
pengambiilan data di area dalam kampus 3 Sanata Dharma, Paingan, Yogyakarta. Kontrol
box sebagai media untuk mengirimkan ditempatkan di dekat gazebo kolam ikan
dikarenakan mengambil titik tengah yang nantinya pengujian dapat dilakukan di area
sudut-sudut gedung kampus. Untuk setiap pengujian pengiriman paket data, data yang
diterima / diambil selama 5 menit setiap titik pengambilan data dengan timer pada program
receiver untuk menyamakan lamanya pengambilan data dan menghitung berapa nantinya
data yang dapat diterima dan error selama 5 menit tersebut.
Hasil pengujian yang dilakukan, antara transmitter dan receiver dapat
berkomunikasi dengan baik dan lancar hingga jarak 115 meter seperti pada tabel 4.1 dan
pengujian pada jarak 120 meter data yang diterima tidak maksimal, yakni terdapat 2 data
yang tidak masuk yakni pada jam 14:10:39 kemudian jam 14:10:59 jam 14:11:09
kemudian jam 14:11:29, dari data waktu yang masuk ada paket data yang terlewatkan atau
tidak diterima yaitu jam 14:10:49 dan 14:11:19 yang disebabkan karena jarak yang terlalu
jauh untuk dijangkau dan adanya tembok-tembok penghalang yang memungkinkan kurang
maksimalnya pengiriman paket data seperti pada tabel 4.2. Jika jarak pengambilan data
lebih dekat dari 115 meter dan banyak penghalang maka data yang diterima juga tidak
akan maksimal serta karakter pada paket data yang dikirimkan juga akan error seperti pada
pengambilan data pada jarak yang jauh dan tidak terjangkau. Di dalam pengujian ini
contoh data yang error seperti pada tabel 4.3, karakter pada data tanggal tepatnya pada
tahun dimana tanggal pengiriman data angka 2 pada tahun 2016 hilang jadi data yang
diterima karakternya menjadi 016 tetapi data yang lain tetap benar. Pada tampilan interface
sebenarnya angka 2 tersebut sudah diterima dan ditampilkan tetapi tidak bersamaan dengan
data yang lainnya maka data tersebut tidak tersimpan di excel seperti pada gambar 4.10 di
tampilan data tunggal atau data update yang baru diterima. Hasil pengujian jarak yang
dilakukan dalam pengambilan data untuk membuktikan jarak maksimal komunikasi modul
XBee terlihat seperti pada tabel 4.4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Gambar 4.8 XBee Menerima Data
Gambar 4.9 XBee Berkomunikasi Tanpa Data
Tabel 4.1. Komunikasi Data Tanpa Error
Waktu Tanggal Suhu Kel. Udara Kel. Tanah Air
Cooler Humidifier Pompa
Air
12:44:31 2016-06-29 32,23 86,19 5,00 1 0 0
12:44:41 2016-06-29 32,25 86,27 5,00 1 0 0
12:44:51 2016-06-29 32,28 85,53 5,00 1 0 0
12:45:01 2016-06-29 32,23 86,68 5,00 1 0 0
12:45:11 2016-06-29 32,30 86,72 5,00 1 0 0
12:45:21 2016-06-29 32,31 86,12 5,00 1 0 0
12:45:31 2016-06-29 32,20 86,43 5,00 1 0 0
12:45:41 2016-06-29 32,32 86,38 5,00 1 0 0
12:45:51 2016-06-29 32,29 86,02 5,00 1 0 0
12:46:01 2016-06-29 32,32 86,44 5,00 1 0 0
12:46:11 2016-06-29 32,31 86,31 5,00 1 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Tabel 4.2. Komunikasi Data Error
Waktu Tanggal Suhu Kel. Udara Kel. Tanah Air
Cooler Humidifier Pompa
Air
14:10:09 2016-06-29 32,55 84,17 5,00 1 0 0
14:10:19 2016-06-29 32,52 83,85 5,00 1 0 0
14:10:29 2016-06-29 32,49 84,85 5,00 1 0 0
14:10:39 2016-06-29 32,57 84,26 5,00 1 0 0
14:10:59 2016-06-29 32,50 84,98 5,00 1 0 0
14:11:09 2016-06-29 32,55 84,18 5,00 1 0 0
14:11:29 2016-06-29 32,48 85,32 5,00 1 0 0
Tabel 4.3 Tampilan Tanggal Error
Waktu Tanggal Suhu Kel. Udara Kel. Tanah Air
Cooler Humidifier Pompa
Air
14:03:29 016-06-29 32,54 84,00 5,00 1 0 0
14:03:39 016-06-29 32,51 84,93 5,00 1 0 0
14:04:19 016-06-29 32,50 84,43 5,00 1 0 0
14:04:39 2016-06-29 32,48 85,25 5,00 1 0 0
14:04:49 016-06-29 32,51 84,22 5,00 1 0 0
Gambar 4.10 Penerimaan Data Error
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Tabel 4.4. Data Jarak Pengambilan Paket Data
Jarak (m) Status
10 m Sukses
20 m Sukses
30 m Sukses
40 m Sukses
50 m Sukses
60 m Sukses
70 m Sukses
80 m Sukses
90 m Sukses
100 m Sukses
110 m Sukses
115 m Sukses
120 m Error
130 m Error
4.2.2 Pengujian Timer dan Pengiriman Paket Data
Pengujian timer dan pengiriman data ini dapat dilihat di serial monitor software
Arduino yakni melihat waktu pengiriman, jika sesuai dengan yang diinginkan (10 detik)
maka timer pada mikrokontroler bekerja dengan baik. Penggunaan timer dalam pengiriman
paket data untuk mempermudah sistem dalam pengiriman paket data yang bekerja di luar
sistem utama pada program mikrokontroller, perubahan pengiriman paket data dari yang
sebelumnya setiap 1 menit menjadi 10 detik dikarenakan untuk mendapatkan hasil yang
lebih signifikan yang sebelumnya di dalam pengujian alat pompa air yang bekerja sangat
cepat dalam penyiraman tanah, maka perubahan pengiriman paket data ini dirubah agar
pengguna dapat dengan jelas mengetahui kapan pompa bekerja pada set poin yang sudah
ditentukan
Setelah dilakukan pengujian hasilnya timer bekerja dengan baik seperti pada tabel
4.5. Pengujian pengambilan data ini selama 5 menit dengan format data yang benar sesuai
jumlah karakter pada rancangan yang ada yakni tanggal#waktu#status air cooler#status
humidifier#status pompa air#data sensor suhu#data sensor kelembaban udara#data sensor
kelembaban tanah. Paket data yang dikirimkan nantinya akan dilihat sebagai perbandingan
dalam pengujian data yang masuk ke interface untuk membuktikan bahwa data yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
dikirim dan diterima sama sesuai dengan format datanya. Untuk melihat program
lengkapnya dapat dilihat di lampiran 13 sampai lampiran 25.
Tabel 4.5. Serial Monitor Pengiriman Paket Data No Serial Monitor
01
02
03
04
05
06
07
08
09
10
2016-06-30#15:51:07#1#1#1#33.68#76.08#0.00
2016-06-30#15:51:17#1#1#1#33.88#76.31#0.00
2016-06-30#15:51:27#1#1#1#33.89#76.32#0.00
2016-06-30#15:51:37#1#1#1#33.88#76.37#0.00
2016-06-30#15:51:47#1#1#1#33.85#76.43#0.00
2016-06-30#15:51:57#1#1#1#33.89#76.51#0.00
2016-06-30#15:52:07#1#1#1#33.86#76.43#0.00
2016-06-30#15:52:17#1#1#1#33.83#76.42#0.00
2016-06-30#15:52:27#1#1#1#33.85#76.45#0.00
2016-06-30#15:52:37#1#1#1#33.83#76.45#0.00
4.2.3 Pengujian Timer dan Penerima Paket Data
Pengujian timer dan penerima paket data ini berfungsi mengetahui supaya data
yang dikirim dapat diterima semua dengan lancar. Penambahan timer pada program
software penerima data ini hanya untuk mempermudah dalam pengambilan data dengan
timer 5 menit, jadi setelah tombol start untuk mengaktifkan sistem dalam pengambilan
data maka selama 5 menit sistem akan berjalan dan secara otomatis sistem akan mati atau
berhenti melakukan pengambilan / menerima data. Tetapi jika tidak ada timer yang
digunakan di dalam pengambilan sampel data selama 5 menit tersebut maka pengambilan
data akan berlangsung secara terus menerus dengan penyimpanan data secara otomatis di
excel dan penamaan file sesuai dengan tanggal pengambilan data. Untuk memberhentikan
sistem pengambilan data, pengguna dapat menekan tombol stop pada interface.
Pada pengujian yang berlangsung dapat dilihat secara langsung data dapat diterima
dengan benar dan lancar sesuai dengan paket data yang dikirimkan seperti yang terlihat
pada tabel 4.6. Untuk melihat perbandingan data yang diterima dengan yang dikirim dapat
mencocokan dengan tabel 4.5. Data ini hasil penyimpanan di excel dan terlihat perbedaan
pada urutan datanya yakni waktu, tanggal, data sensor suhu, data sensor kelembaban udara,
data sensor kelembaban tanah, status kontrol air cooler, status kontrol humidifier, status
control pompa air. Perbedaan urutan ini dikarenakan pada program matlab sebagai
penerima data setelah paket data terbaca sesuai dengan yang dikirim kemudian dipisahkan
menjadi data tunggal seperti pada gambar 4.11 yang kemudian ditampilkan ke tabel
dengan format tersebut seperti pada gambar 4.12 dan untuk disimpan di excel seperti pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
gambar 4.13, untuk program lengkapnya dapat dilihat di lampiran 25 sampai lampiran 46.
Ada juga pengujian dengan hasil yang didapat timernya ada kesalahan yakni bertambah 1
sampai 2 detik yang dikarenakan pada tombol di kontrol box ditekan untuk melihat data
yang ada pada LCD, tombol yang ada akan membuat delay di dalam program
mikrokontroller tersebut. Pada timer hitungan untuk setiap timer adalah 0,5 ms, sehingga
agar looping berjalan selama 10 detik maka nilai timernya adalah 20 karena 20 x 0,5 = 10
detik, sedangkan waktu yang dibutuhkan untuk void loop saat mengambil data adalah 1
detik jadi nilai void loop dibuat 18 agar nilai timer menjadi 10 detik. Saat timer
menghitung dari 1 sampai 9 dan tombol pada kontrol box ditekan saat detik ke 5 maka
akan delay selama 2 detik menjadi detik ke 7 dan tidak akan mengganggu timer, sedangkan
jika timer pada detik ke 8 dan 9 kemudian tombol ditekan maka timer akan menjadi 10 dan
11 detik. Maka dari itu delay pada tombol dibuat 2 detik untuk memperkecil penambahan
waktu dan pengguna juga dapat melihat tampilan pada lcd dengan jelas. Jadi penambahan
waktu yang terjadi pada pengiriman paket data yakni 1 sampai 2 detik. Contoh hasil
pengujian dengan timer saat tombol pada kontrol box ditekan seperti pada tabel 4.7.
Tabel 4.6. Paket Data yang Diterima
Waktu Tanggal Suhu Kel. Udara Kel. Tanah Air
Cooler Humidifier Pompa
Air
15:51:07 2016-06-30 33,68 76,08 0,00 1 1 1
15:51:17 2016-06-30 33,88 76,31 0,00 1 1 1
15:51:27 2016-06-30 33,89 76,32 0,00 1 1 1
15:51:37 2016-06-30 33,88 76,37 0,00 1 1 1
15:51:47 2016-06-30 33,85 76,43 0,00 1 1 1
15:51:57 2016-06-30 33,89 76,51 0,00 1 1 1
15:52:07 2016-06-30 33,86 76,43 0,00 1 1 1
15:52:17 2016-06-30 33,83 76,42 0,00 1 1 1
15:52:27 2016-06-30 33,85 76,45 0,00 1 1 1
15:52:37 2016-06-30 33,83 76,45 0,00 1 1 1
Gambar 4.11. Program Pembacaan Paket Data
Gambar 4.12. Program Menampilkan Data Dalam Tabel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Gambar 4.13. Program Simpan Data Tabel ke Excel
Tabel 4.7. Timer Saat Tombol Kontrol Box Ditekan
Waktu Tanggal Suhu Kel. Udara Kel. Tanah
Air
Cooler Humidifier
Pompa
Air
11:41:16 2016-06-29 29,89 87,58 6,00 1 0 0
11:41:27 2016-06-29 29,94 87,75 6,00 1 0 0
11:41:37 2016-06-29 30,04 88,16 6,00 1 0 0
11:41:47 2016-06-29 30,11 88,11 6,00 1 0 0
11:41:58 2016-06-29 30,24 88,27 6,00 1 0 0
11:42:09 2016-06-29 30,13 87,69 6,00 1 0 0
11:42:19 2016-06-29 29,92 87,19 6,00 1 0 0
4.2.4 Pengujian Interface
Pada pengujian interface ini dapat dilihat dari sistem dapat berjalan sesuai dengan
rancangan, yakni menampilkan data yang dikirim. Pada tampilan interface ini dilakukan
perubahan dengan adanya penambahan tampilan animasi data sensor suhu, sensor
kelembaban udara, sensor kelembaban tanah yang baru saja masuk dan penampil data yang
diinginkan oleh pengguna jika ingin melihat data lama atau data yang tersimpan
sebelumnya pada saat sistem pengambilan data berjalan ataupun tidak, jadi pengguna tidak
perlu melihat data yang tersimpan di excel. Pembacaan data yang akan ditampilkan dengan
memilih file tanggal yang akan ditampilkan kemudian mengetik secara manual waktu yang
akan ditampilkan dan memilih data sensor apa yang akan ditampilkan. Data yang
ditampilkan maksimal 20 data agar pengguna dapat dengan mudah melihat datanya, jika
data yang ditampilkan tidak dibatasi maka pembacaan data terlalu susah dikarenakan
tampilan grafik yang tidak besar.
Setelah dilakukan pengujian hasilnya sistem dapat berjalan dengan baik dan sesuai
dengan rancangan, interface ini dapat menerima data, menyimpan dan menampilkan data
tunggal, data dalam table, grafik dan animasi agar memudahkan dalam pembacaan untuk
setiap data yang masuk dan terupdate , perhitungan nilai max, min, rata-rata secara
otomatis, penampil data yang sebelumnya sudah tersimpan jika pengguna ingin melihat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Hasil pengujian seperti pada gambar 4.14. Di dalam tampilan grafik adanya perubahan
yakni bentuk grafik dirubah dari grafik garis jadi grafik kolom atau diagram batang untuk
memperjelas perubahan data yang terjadi serta jika ada data yang tidak masuk maka pada
grafik dengan waktu tersebut akan kosong.
Gambar 4.14. Pengujian Interface
4.2.5 Pengujian database
Pengujian database dapat dilihat dari hasil data yang masuk dapat disimpan di
dalam excel secara otomatis, setelah dilakukan pengujian hasilnya seluruh data yang
masuk dan tertampil pada interface dapat tersimpan secara otomatis dengan penamaan file
sesuai tanggal pengambilan paket data seperti yang terlihat pada gambar 4.15, jika sudah
berganti hari dalam pengambilan paket data maka secara otomatis sistem akan membuat
file baru untuk data pada tanggal yang berbeda. Penamaan file penyimpanan paket data ini
sesuai jam dan tanggal di laptop yang digunakan dalam pengambilan paket data. Untuk
pengujian penampil data pada saat sistem pengambilan data sedang berjalan dapat dilihat
pada gambar 4.16 dan untuk penampil data saat sistem tidak berjalan dapat dilihat pada
gambar 4.17.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Gambar 4.15. Hasil Data Excel yang Tersimpan
Gambar 4.16. Penampil Data Saat Pengambilan Paket Data
Gambar 4.17. Penampil Data Saat Tidak Ada Pengambilan Paket Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
4.3 Pembahasan Perangkat Lunak
Program yang dibuat dalam perancangan ini mengacu pada diagram alir bab
sebelumnya. Program sudah berfungsi seperti yang diharapkan dengan adanya perubahan
sedikit untuk memaksimalkan sistem yang akan dijalankan. Berikut merupakan penjelasan
lengkap dari program yang dibuat.
4.3.1 Program Utama
Program utama berisikan alur perintah utama yang selanjutnya akan memanggil
subrutin-subrutin lainnya. Perintah yang ada pada program utama akan menginisialisasi
fitur-fitur yang digunakan, selanjutnya program akan secara terus menerus memanggil satu
persatu subrutin. Subrutin yang nantinya dipanggil yakni subrutin pengiriman paket data
yang terdapat pada mikrokontroler dan penerima serta penyimpanan paket data pada
software matlab.
4.3.2 Subrutin Pengiriman Paket Data
Subrutin pengiriman paket data yang sebelumnya di dalam perancangan setiap 1
menit diubah dan berjalan setiap 10 detik sekali sesuai dengan timer yang dijalankan.
Pengubahan timer pengiriman dikarenakan perubahan hasil data sensor kelembaban udara
dan kelembaban tanah sangat cepat berubah untuk mencapai set poin, jadi jika pengiriman
paket data terlalu lama maka status kontrol perubahan tidak terlalu terlihat perubahannya.
Data yang dikirimkan tersebut adalah data terakhir yang terdeteksi oleh sensor serta status
terakhir sistem pengendalinya, jadi data yang dikirim secara otomatis update dan di dalam
proses pengiriman paket data sudah dipisahkan dengan tanda pagar (#) untuk setiap
datanya agar nantinya untuk penerima dapat mudah memisahkan data-datanya. Pengiriman
data akan berhenti jika sistem dalam kondisi off atau mati. Pengujian yang dilakukan
berjalan dengan baik sesuai dengan rancangan.
4.3.3 Subrutin Pengiriman Data Waktu dan Tanggal
Subrutin pengiriman data waktu dan tanggal ini adalah data dari sistem RTC (Real
Time Clock) mikrokontroler yang berjalan terus menerus, jika ada perintah untuk
mengirimkan data maka waktu dan tanggal pada saat pengirimanlah yang nantinya akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
dikirimkan sebagai paket data. Dari pengujian pengiriman paket data yang dilakukan
bahwa sistem ini dapat berjalan dengan baik.
4.3.4 Subrutin Pengiriman Status Pengendali
Subrutin pengiriman status pengendali ( air cooler, humidifier, pompa air ) ini akan
mengirimkan data terakir alat apakah sedang dalam kondisi on ( 1 ) atau off ( 0 ). Dalam
pengujian sistem ini bekerja sesuai dengan kondisi pada greenhouse untuk membuat
suasananya seperta yang diinginkan, jadi pengguna nantinya juga dapat melihat apakah
data sensor dengan sistem kontrolnya dapat bekerja atau tidak dengan melihat pada
interface pengguna dengan mengetahui batas atas dan bawah set poin sistem
pengendalinya.
4.3.5 Subrutin Pengiriman Data Sensor
Subrutin pengiriman data sensor (data suhu, data kelembaban udara, data
kelembaban tanah) ini akan mengirimkan data setiap 10 detik sekali, data yang dikirimkan
adalah data terakir yang terdeteksi sensor saat sistem akan melakukan pengiriman. Jadi
data yang dikirim akan terus update sesuai dengan waktu pengiriman. Pengujian yang
dilkakukan bahwa pengiriman data sensor berjalan dengan baik.
4.3.6 Subrutin Penerima Paket Data
Subrutin penerima paket data terdapat pada software matlab yang bekerja dengan
mendeteksi data yang masuk setiap 0,25 detik sesuai dengan timer yang dijalankan. Sistem
penerima ini akan bekerja secara otomatis memisahkan data satu per satu yang sebelumnya
paket data akan menjadi data tunggal dengan memisahkan data yang ditandai dengan tanda
pagar (#). Sistem akan bekerja jika user / pengguna menekan tombol start dan untuk
memberhentikan atau mematikan sistem user hanya menekan tombol stop pada gui
software matlab tersebut yang terletak pada pojok kanan atas di bawah tombol start.
Pengujian yang dilakukan di dalam penerimaan paket data ini berjalan dengan baik yakni
paket data dapat diterima dengan utuh dengan syarat jarak tidak terlalu jauh dan
penghalang tidak terlalu banyak dikarenakan dapat mengganggu kelancaran di dalam
penerimaan paket data. Semua paket data dapat ditampilkan di dalam interface sesuai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
dengan perancangan yang ada dengan penambahan tampilan penampil data yang
sebelumnya tersimpan dan animasi perubahan data sensor.
4.3.7 Paket Data
Jumlah karakter dalam paket data yang sebelumnya dalam perancangan sebanyak
44 karakter dengan format @HH:MM#YYYY-mm-DD#KxEyPz#S11.1#U22.2#T33.3$
diubah menjadi lebih sedikit yakni 40 karakter dengan format YYYY-mm-
DD#HH:MM#A#B#C#SS.SS#UU.UU#T.TT. Perubahan format ini untuk mempermudah
di dalam memisahkan setiap data.
Dari format data yang sudah ada, YYYY-mm-DD adalah tanggal bulan tahun
pengiriman, HH:MM adalah jam dan menit, A#B#C# adalah keterangan apakah sistem
kendalinya dalan kondisi on atau off yakni terdapat Air cooler, humidifier dan pompa air,
SS.SS adalah data suhu dengan tanda titik (.) sebagai pemisah angka desimal, UU.UU
adalah data kelembaban udara dengan tanda titik (.) sebagai pemisal angka desimal, T.TT
adalah data kelembaban tanah dengan tanda titik (.) sebagai pemisah angka desimal untuk
memudahkan dalam pembacaan, tanda pagar (#) sebagai pemisah tiap data. Dari format
paket data tersebut dijelaskan jumlah karakter dalam tabel tabel 4.8.
Tabel 4.8 Perubahan Format Paket Data
Waktu Tanggal Kontrol Status
Suhu (oC)
Kelembaban Udara (%)
Kelembaban Tanah (level)
Jumlah Karakter
5 10 3 5 5 4
4.3.8 Penyimpanan Data
Pada sistem penyimpanan data di software matlab bekerja secara otomatis dan akan
menyimpan data setiap hari dengan nama file sesuai dengan tanggal pengambilan data.
Data yang tersimpan yang sebelumnya di dalam perancangan berbentuk .mat diubah dan
disimpan ke excel dengan format date.xls agar pengguna dapat mudah dalam pembacaan.
contoh 10-mei-2016.xls berarti file tersebut data pada tahun 2016 bulan Mei tanggal 10.
Data tersebuat tersimpan secara otomatis setelah data pertama pada tanggal tersebut
diterima dan disimpan dalam 1 hari karena pengiriman data setiap 10 detik sekali, jadi
dalam 1 hari terdapat 8640 data yang harus dikirim dan diterima. Dengan penyimpanan
setiap hari atau per hari dan sebagai keterangan rancangan sistem kerja GUI. Pada database
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
nantinya dalam 1 folder akan dapat menyimpan data dalam satu minggu dengan jumlah
data 60480 dan untuk 4 bulan dalam satu siklus tanam yakni 60480 x 16 minggu adalah
976.680 data dengan catatan bahwa software Matlab menyala terus menerus, di sini
sebenarnya berapapun banyak datanya tidak masalah karena masuk ke dalam memori
laptop dan juga memori setiap data sangat kecil, untuk satu karakter jika dalam satu hari
hanya 69120 bytes, sementara dalam paket data terdapat 32 karakter, berarti dalam satu
hari hanya menyimpan data 69120 b x 32 karakter yakni 2211840 b atau 2,211 Mb dan
dalam satu minggu 2,211 Mb x 7 jadi 15,477 Mb. Jika dalam satu siklus tanam 4 bulan,
maka 15,477 Mb x 16 minggu yakni 247,632 Mb seperti yang diperjelas pada gambar 4.18
dan 4.19.Data tersebut disimpan dalam file D yang tersimpan satu folder dengan program.
Hasil akan terlihat seperti pada gambar 4.20.
Data yang tersimpan inilah nantinya akan dipakai sebagai penampil data yang
sebelumnya tersimpan untuk ditampilkan di interface agar pengguna tidak perlu membuka
data excel, dengan catatan bahwa pengambilan data pada pengisian data jam harus sesuai
dan data yang ditampilkan adalah data hasil pembacaan sensor. Pengujian yang dilakukan
dapat berhasil dan berjalan dengan lancar.
Gambar 4.18 Menampilkan Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Gambar 4.19 Menghitung Memori Data
Gambar 4.20 Penyimpanan Hasil Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
BAB V
KESIMPULAN DAN SARAN
4.4 Kesimpulan
Dari hasil pengujian dan pengambilan data pada sistem telemetri akuisisi data
greenhouse dengan menggunakan XBee Pro S2B, didapatkan kesimpulan sebagai berikut:
a. Sistem interface pada software matlab berjalan sesuai perancangan dengan data
yang dimonotoring adalah waktu, tanggal, suhu, kelembaban udara,
kelembaban tanah, status control pompa air, humidifier dan air cooler.
b. Penggunaan modul XBee Pro S2B untuk berkomunikasi dengan baik pada jarak
maksimum 115 meter di luar ruangan tanpa penghalang.
c. Semakin banyak penghalang tempat berkomunikasinya modul XBee maka data
yang dikirimkan tidak maksimal.
d. Jika pengiriman data gagal atau tidak menemukan receiver maka data tidak
akan dikirimkan lagi atau dibuang sesuai dengan IDLE mode yang terdapat
pada modul.
4.5 Saran
Saran-saran dari pengembangan sistem telemetri ini adalah:
a. Mengatasi error yang didapat agar jarak jangkauan pengiriman data semakin
jauh dan maksimal.
b. Dapat digunakan lebih dari satu greenhouse.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
DAFTAR PUSTAKA
[1] Kirana, Intan., 1983. Tanaman Hias Ruangan. Yogyakarta: Kanisius.
[2] Syahrul, M., 2010. Rancangan Smart Greenhouse Dengan Teknologi Mobile Untuk
Efisiensi Tenaga, Biaya Dan Waktu Dalam Pengelolaan Tanaman. Jawa Timur:
Fakultas Teknologi Industri Universitas Pembangunan Nasional.
[3] Sayood, F., 2003. Lossless Compression Handbook. New York: Academic Press.
[4] Carden, F., Jedlicka, R. dan Henry, R., 2002. Telemetry Systems Engineering.
London: ArtechHouse.
[5] Setiawan Rachmad., 2008. Teknik Akuisisi Data. Yogyakarta: Graha Ilmu.
[6] Yahya, Sofian., 2011. Desain Otomatisasi Sistem Pengendalian Temperatur dan
Kelembaban Greenhouse. Bandung: Kelompok Bidang Keahlian Pengendalian
Daya & Mesin Listrik, Departemen Teknik Elekto, Politeknik Negeri Bandung.
[7] Soeseno, Slamet., 1989. Pemeliharaan Tanaman Hias Ruangan. Jakarta: PT
Gramedia.
[8] Handoko., 1995. Klimatologi Dasar. Jakarta: Pustaka Jaya.
[9] Meiningsasi, Dyan., 2006. Pengaruh Jenis Media Terhadap Pertumbuhan Begonia
Imperialis dan Begoia “Bethlehem Star”. Bali: Balai Konservasi Tumbuhan Kebun
Raya Eka Karya Bali, Lembaga Ilmu Pengetahuan Indonesia.
[10] 2015. [Online]
Available at:
http://www.adafruit.com/datasheets/XBee%20ZB%20User%20Manual.pdf.
[Accessed 20 November 2015]
[11] 2015.[Online]
Available at: http://www.mathworks.com.
[Accessed 15 Desember 2015]
[12] 2015.[Online]
Available at: http://www.engineersgarage.com/electronic-components/16x2-lcd
module-datasheet.
[Accessed 14 Desember 2015]
[13] 2015.[Online]
Available at: https://www.arduino.cc/en/Main/ArduinoBoardMega2560.
[Accessed 28 November 2015]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L1
LAMPIRAN
Diagram Alir Subrutin Pengiriman Data
START
Inisialisasi
Apakah
Karakter = “W”
Ulang
SELESAI
Tidak
Ya
Ya
Tidak
Data
Waktu =
W,data,#
Terima
Data
Paket
Gambar L.1 Diagram Alir Subrutin Pengiriman Data Waktu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L2
START
Inisialisasi
Apakah
Karakter = “T”
Ulang
SELESAI
Tidak
Ya
Ya
Tidak
Data
Tanggal =
T,data,#
Terima
Data
Paket
Gambar L.2 Diagram Alir Subrutin Pengiriman Data Tanggal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L3
START
Inisialisasi
Apakah
Karakter = “K”
Ulang
SELESAI
Tidak
Ya
Ya
Ya
Tidak
Data
Kontrol
Status =
Ax,By,Cz,#
Tampilkan Data
Kontrol Status Di
LCD
Terima
Data
Paket
Gambar L.3 Diagram Alir Subrutin Pengiriman Data Kontrol Status
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L4
START
Inisialisasi
Apakah
Karakter = “S”
Ulang
SELESAI
Tidak
Ya
Ya
Ya
Tidak
Data
Suhu =
S,data,#
Tampilkan Data
Suhu Di LCD
Terima
Data
Paket
Gambar L.4 Diagram Alir Subrutin Pengiriman Data Suhu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L5
START
Inisialisasi
Apakah
Karakter = “U”
Ulang
SELESAI
Tidak
Ya
Ya
Ya
Tidak
Data
Kelembaban
Udara=
U,data,#
Tampilkan Data
Kelembaban Udara
Di LCD
Terima
Data
Paket
Gambar L.5 Diagram Alir Subrutin Pengiriman Data Kelembaban Udara
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
START
Inisialisasi
Apakah
Karakter = “T”
Ulang
SELESAI
Tidak
Ya
Ya
Ya
Tidak
Data
Kelembaban
Tanah=
T,data,#
Tampilkan Data
Kelembaban Tanah
Di LCD
Terima
Data
Paket
Gambar L.6 Diagram Alir Subrutin Pengiriman Data Kelembaban Tanah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L7
Prosedur Pengiriman Data Dengan XBee Pro S2B
Ketika data serial yang diterima dan siap dipaketkan, modul RF akan keluar Idle
Mode dan upaya untuk mengirimkan data. Alamat tujuan menentukan rute akan menerima
data. Sebelum transmisi data, modul memastikan bahwa alamat jaringan 16-bit dan rute ke
tujuan telah ditetapkan. Jika tujuan 16-bit alamat jaringan tidak diketahui, alamat jaringan
penemuan akan berlangsung. Jika rute adalah tidak diketahui, penemuan rute akan
berlangsung untuk tujuan membangun rute ke node tujuan. Jika sebuah modul dengan
alamat jaringan yang cocok tidak ditemukan, paket tersebut akan dibuang. Data akan
ditransmisikan sekali rute didirikan. Jika penemuan rute gagal untuk membangun rute,
paket akan dibuang. seperti pada alur pada gambar di bawah ini.[10]
IDLE
Mode
Network Discovered ?
Network Known ? Transmit Data
Finished
Transmission
16 bit network
Address Discovered ?
16 bit network
Address Known ?
Network
Discovery
16 bit network
Address
Discovery
Data Discanded
New
Transmision
No
YesYes
Yes
Yes
No
NoNo
Gambar L.7 Gambar Mode Pengiriman Data [10]
Bila data yang ditransmisikan dari satu node ke node yang lain, pengakuan jaringan
ditransmisikan kembali melintasi jaringan didirikan untuk node sumber. Paket pengakuan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L8
ini menunjukkan ke node sumber yang paket data telah diterima oleh node tujuan. Jika
pengakuan jaringan tidak diterima, node sumber akan mengirimkan kembali data. Hal ini
dimungkinkan dalam keadaan langka untuk tujuan untuk menerima paket data, tetapi untuk
sumber untuk tidak menerima pengakuan jaringan. Dalam hal ini, sumber akan
memancarkan kembali data, yang dapat menyebabkan tujuan untuk menerima paket data
yang sama beberapa kali. Modul XBee tidak menyaring duplikat paket.[10]
Prosedur Penerimaan Data Dengan XBee Pro S2B
Setelah dari sleep mode, perangkat end mengirimkan permintaan pendapat
masternya untuk menentukan apakah memiliki data buffer. Dalam pin sleep mode,
pendapat perangkat akhir setiap 100ms. Dalam sleep mode, perangkat akhir hanya akan
polling sekali sebelum kembali ke sleep mode kecuali sleep time (ST) dimulai (serial atau
RF data yang diterima). Jika sleep time dimulai, perangkat end akan terus polling setiap
100ms sampai sleep mode berakhir [10]. Data yang sudah diterima dan dikirim kemudian
akan dilihat hasilnya apakah datanya sesuai atau tidak dapat dihitung errornya dengan
rumus, yakni : % error = [ nil i e − nil i e en ny ]nil i e � %
Tabel L.1 Spesifikasi Arduino Mega [13]
Mikrokontroler ATmega2560
Tegangan Operasi 5V
Input Voltage (disarankan) 7-12V
Input Voltage (limit) 6-20V
Pin Digital I/O 54 (yang 15 pin digunakan sebagai output PWM)
Pins Input Analog 16
Arus DC per pin I/O 20 mA
Arus DC untuk pin 3.3V 50 mA
Flash Memory 256 KB (8 KB digunakan untuk bootloader)
SRAM 8 KB
EEPROM 4 KB
Clock Speed 16 MHz
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L9
Konfigurasi Pin Arduino Mega
Gambar L.6 Konfigurasi Pin Arduino Mega [13]
Masing-masing dari 54 digital pin pada arduino mega dapat digunakan sebagai
input atau output, menggunakan fungsi pin mode() , digital write() , dan digital read().
arduino mega beroperasi pada tegangan 5 volt. Setiap pin dapat memberikan atau
menerima arus maksimum 40 mA dan memiliki resistor pull-up internal (yang terputus
secara default) sebesar 20-50 k Ohm. Selain itu, beberapa pin memiliki fungsi khusus,
antara lain:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L10
a. Serial : 0 (RX) dan 1 (TX); Serial 1 : 19 (RX) dan 18 (TX); Serial 2 : 17 (RX)
dan 16 (TX); Serial 3 : 15 (RX) dan 14 (TX). Digunakan untuk menerima
(RX) dan mengirimkan (TX) data serial TTL. Pins 0 dan 1 juga terhubung ke
pin chip ATmega16U2 Serial USB-to-TTL.Eksternal Interupsi : Pin 2
(interrupt 0), pin 3 (interrupt 1), pin 18
b. (interrupt 5), pin 19 (interrupt 4), pin 20 (interrupt 3), dan pin 21 (interrupt
2). Pin ini dapat dikonfigurasi untuk memicu sebuah interupsi pada nilai yang
rendah, meningkat atau menurun, atau perubah nilai.
c. SPI : Pin 50 (MISO), pin 51 (MOSI), pin 52 (SCK), pin 53 (SS). Pin ini
mendukung komunikasi SPI menggunakan perpustakaan SPI. Pin SPI juga
terhubung dengan header ICSP, yang secara fisik kompatibel dengan arduino
uno, arduino duemilanove dan arduino diecimila.
d. LED : Pin 13. Tersedia secara built-in pada papan arduino ATmega2560. LED
terhubung ke pin digital 13. Ketika pin diset bernilai high, maka LED menyala
(ON), dan ketika pin diset bernilai low, maka LED padam (off).
e. TWI : Pin 20 (SDA) dan pin 21 (SCL). Yang mendukung komunikasi TWI
menggunakan perpustakaan wire. Perhatikan bahwa pin ini tidak di lokasi yang
sama dengan pin TWI pada arduino duemilanove atau arduino diecimila.
Arduino Mega2560 memiliki 16 pin sebagai analog input, yang masing-masing
menyediakan resolusi 10 bit (yaitu 1024 nilai yang berbeda). Secara default pin ini dapat
diukur/diatur dari mulai ground sampai dengan 5 volt, juga memungkinkan untuk
mengubah titik jangkauan tertinggi atau terendah mereka menggunakan pin AREF dan
fungsi analog Reference().
Ada beberapa pin lainnya yang tersedia, antara lain:
a. AREF : Referensi tegangan untuk input analog. Digunakan dengan fungsi
analog Reference().
b. RESET : Jalur low ini digunakan untuk me-reset (menghidupkan ulang)
mikrokontroler. Jalur ini biasanya digunakan untuk menambahkan tombol reset
pada shield yang menghalangi papan utama arduino.[13]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L11
Sumber Daya / Power Arduino Mega
Arduino mega dapat diaktifkan melalui koneksi USB atau dengan catu daya
eksternal. Sumber daya dipilih secara otomatis. Sumber daya eksternal (non-USB) dapat
berasal baik dari adaptor AC-DC atau baterai. Adaptor dapat dihubungkan dengan
mencolokkan steker 2,1 mm yang bagian tengahnya terminal positif ke ke jack sumber
tegangan pada papan. Jika tegangan berasal dari baterai dapat langsung dihubungkan
melalui header pin gnd dan pin vin dari konektor power.
Papan arduino ATmega2560 dapat beroperasi dengan pasokan daya eksternal 6 volt
sampai 20 volt. Jika diberi tegangan kurang dari 7 volt, maka, pin 5 volt mungkin akan
menghasilkan tegangan kurang dari 5 volt dan ini akan membuat papan menjadi tidak
stabil. Jika sumber tegangan menggunakan lebih dari 12 volt, regulator tegangan akan
mengalami panas berlebihan dan bisa merusak papan. Rentang sumber tegangan yang
dianjurkan adalah 7 volt sampai 12 volt.
Pin tegangan yang tersedia pada papan arduino adalah sebagai berikut:
a. VIN : Adalah input tegangan untuk papan arduino ketika menggunakan sumber
daya eksternal (sebagai ‘saingan’ tegangan 5 volt dari koneksi USB atau sumber
daya ter-regulator lainnya). Anda dapat memberikan tegangan melalui pin ini,
atau jika memasok tegangan untuk papan melalui jack power, kita bisa
mengakses/mengambil tegangan melalui pin ini.
b. 5V : Sebuah pin yang mengeluarkan tegangan ter-regulator 5 volt, dari pin ini
tegangan sudah diatur (ter-regulator) dari regulator yang tersedia (built-in) pada
papan. Arduino dapat diaktifkan dengan sumber daya baik berasal dari jack power
DC (7-12 volt), konektor USB (5 volt), atau pin VIN pada board (7-12 volt).
Memberikan tegangan melalui pin 5 volt atau 3.3 volt secara langsung tanpa
melewati regulator dapat merusak papan arduino.
c. 3V3 : Sebuah pin yang menghasilkan tegangan 3,3 volt. Tegangan ini dihasilkan
oleh regulator yang terdapat pada papan (on-board). Arus maksimum yang
dihasilkan adalah 50 mA.
d. GND : Pin ground atau massa.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L12
e. IOREF : Pin ini pada papan arduino berfungsi untuk memberikan referensi
tegangan yang beroperasi pada mikrokontroler. Sebuah perisai (shield)
dikonfigurasi dengan benar untuk dapat membaca pin tegangan IOREF dan
memilih sumber daya yang tepat atau mengaktifkan penerjemah tegangan (voltage
translator) pada output untuk bekerja pada tegangan 5 volt atau 3,3 volt.[13]
Komunikasi Pada Arduino Mega
Arduino Mega2560 memiliki sejumlah fasilitas untuk berkomunikasi dengan
komputer, dengan arduino lain, atau dengan mikrokontroler lainnya. Arduino ATmega328
menyediakan 4 hardware komunikasi serial UART TTL (5 Volt). Sebuah chip
ATmega16U2 (ATmega8U2 pada papan revisi 1 dan revisi 2) yang terdapat pada papan
digunakan sebagai media komunikasi serial melalui USB dan muncul sebagai COM Port
Virtual (pada Device komputer) untuk berkomunikasi dengan perangkat lunak pada
komputer, untuk sistem operasi windows masih tetap memerlukan file inf, tetapi untuk
sistem operasi OS X dan Linux akan mengenali papan sebagai port COM secara otomatis.
Perangkat lunak arduino termasuk didalamnya serial monitor memungkinkan data tekstual
sederhana dikirim ke dan dari papan arduino. LED RX dan TX yang tersedia pada papan
akan berkedip ketika data sedang dikirim atau diterima melalui chip USB-to-serial yang
terhubung melalui USB komputer (tetapi tidak untuk komunikasi serial seperti pada pin 0
dan 1).
Sebuah perpustakaan Software Serial memungkinkan untuk komunikasi serial pada
salah satu pin digital Mega2560. ATmega2560 juga mendukung komunikasi TWI dan SPI.
Perangkat lunak arduino termasuk perpustakaan wire digunakan untuk menyederhanakan
penggunaan bus TWI. Untuk komunikasi SPI, menggunakan perpustakaan SPI.[13]
Memori Arduino Mega
ATmega 2560 memiliki 256 KB dari memori flash untuk menyimpan kode (yang 8
KB digunakan untuk bootloader), 8 KB dari SRAM dan 4 KB EEPROM (yang dapat
dibaca dan ditulis dengan perpustakaan EEPROM).[13]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L13
Pemrograman Arduino Mega
Arduino mega dapat diprogram dengan software arduino. ATmega2560 pada
Arduino mega sudah tersedia preburned dengan bootloader yang memungkinkan untuk
meng-upload kode baru tanpa menggunakan programmer hardware eksternal. Hal ini
karena komunikasi yang terjadi menggunakan protokol asli STK500. Juga dapat melewati
(bypass) bootloader dan program mikrokontroler melalui pin header ICSP (In-Circuit
Serial Programming).
Chip ATmega16U2 (atau 8U2 pada board Rev. 1 dan Rev. 2) source code firmware
tersedia pada repositori arduino. ATmega16U2/8U2 dapat dimuat dengan bootloader
DFU, yang dapat diaktifkan melalui:
a. Pada papan Revisi 1 : Menghubungkan jumper solder di bagian belakang
papan dan kemudian akan me-reset 8U2.
b. Pada papan Revisi 2 : Ada resistor yang menghubungkan jalur HWB
8U2/16U2 ke ground, sehingga lebih mudah untuk dimasukkan ke dalam mode
DFU.
Kemudian anda dapat menggunakan Atmel FLIP software (sistem operasi
Windows) atau DFU programmer (sistem operasi Mac OS X dan Linux) untuk memuat
firmware baru atau dapat menggunakan pin header ISP dengan programmer eksternal
(overwrite DFU bootloader).[13]
Listing Program Mikrokontroller Arduino
1. //PROGRAM GREEN HOUSE
2. #include <Wire.h>
3. #include <SD.h>
4. #include <SPI.h>
5. #include "RTClib.h"
6. #include <SHT1x.h>
7. #include <LiquidCrystal.h>
8. #include <avr/io.h>
9. #include <avr/interrupt.h>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L14
10. volatile int count = 0;
11. int a = 0;
12. int timer1_counter;
13. File myFile;
14. RTC_DS1307 rtc;
15. LiquidCrystal lcd(12, 11, 7, 6, 5, 4);
16. #define dataPin 9
17. #define clockPin 10
18. SHT1x sht1x(dataPin, clockPin);
19. float soil;
20. float temp_c;
21. float humidity;
22. int Si;
23. int So;
24. int Dt;
25. int kondisi = 0;
26. int buttonstate = 0;
27. int cooler = 0;
28. int humid = 0;
29. int pompa = 0;
30. int s;
31. String waktu[3];
32. String tanggal[2];
33. char pwaktu[3][3];
34. char ptanggal[2][3];
35. int tahun;
36. void setup () {
37. Serial.begin(9600);
38. lcd.begin(16, 4);
39. lcd.setCursor (0, 0);
40. lcd.print("Starting Up");
41. delay (1000);
42. noInterrupts(); // disable all interrupts
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L15
43. TCCR1A = 0;
44. TCCR1B = 0;
45.
46. // Set timer1_counter to the correct value for our interrupt interval
47. //timer1_counter = 64911; // preload timer 65536-16MHz/256/100Hz
48. //timer1_counter = 64286; // preload timer 65536-16MHz/256/50Hz
49. timer1_counter = 34286; // preload timer 65536-16MHz/256/2Hz
50.
51. TCNT1 = timer1_counter; // preload timer
52. TCCR1B |= (1 << CS12); // 256 prescaler
53. TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt
54. interrupts(); // enable all interrupts
55. pinMode(A0, INPUT); //input analaog sensor kelembapan
56. pinMode(41, INPUT); //Button Start/Stop
57. pinMode(42, INPUT); //Data Yang terkirim
58. pinMode(43, INPUT); //Button output sensor
59. pinMode(44, INPUT); //Button Output Kendali
60. pinMode(22, OUTPUT); //kendali suhu
61. pinMode(23, OUTPUT); //kendali kelembapan udara
62. pinMode(24, OUTPUT); //kendali kelembapan tanah
63. pinMode(25, OUTPUT); //LED output Dingin
64. pinMode(26, OUTPUT); //LED output Normal
65. pinMode(27, OUTPUT); //LED output Panas
66. pinMode(29, OUTPUT); //LED output Kering (udara)
67. pinMode(30, OUTPUT); //LED output Lembab (udara)
68. pinMode(31, OUTPUT); //LED output Basah (udara)
69. pinMode(32, OUTPUT); //LED output Kering (tanah)
70. pinMode(33, OUTPUT); //LED output Lembab (tanah)
71. pinMode(34, OUTPUT); //LED output Basah (tanah)1
72. #ifdef AVR
73. Wire.begin();
74. #else
75. Wire1.begin(); // Shield I2C pins connect to alt I2C bus on Arduino Due
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L16
76. #endif
77. rtc.begin();
78.
79. if (! rtc.isrunning()) {
80. lcd.setCursor (0, 0);
81. lcd.print("RTC GAGAL");
82. // following line sets the RTC to the date & time this sketch was compiled
83. rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
84. // This line sets the RTC with an explicit date & time, for example to set
85. // January 21, 2014 at 3am you would call:
86. // rtc.adjust(DateTime(2016, 3, 11, 21, 52, 30));
87. }
88. // pinMode(analogin, INPUT);
89. // Serial.print(" inisialisasi SD..");
90. while (!SD.begin(53)) {
91. lcd.setCursor (0, 0);
92. lcd.print("SD Card Error");
93. }
94. lcd.setCursor (0, 0);
95. lcd.print("SD Card Ready");
96. delay (1000);
97. lcd.clear();
98. }
99. ISR(TIMER1_OVF_vect)
100. {
101. TCNT1 = timer1_counter;
102. count++;
103. if (count == 18) //detik
104. {
105. a = 1;
106. count = 0;
107. }
108. }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L17
109.
110. void loop () {
111. unsigned long ji, mi;
112.
113. buttonstate = digitalRead(41); // Tombol Start /Stop
114. DateTime now = rtc.now();
115. waktu[0] = String(now.second());
116. waktu[1] = String(now.minute());
117. waktu[2] = String(now.hour());
118. tanggal[0] = String(now.month());
119. tanggal[1] = String(now.day());
120. tahun = now.year();
121.
122. for (int i = 0; i < 3; i++) {
123. waktu[i].trim();
124. waktu[i].toCharArray (pwaktu[i], waktu[i].length() + 1);
125. if (waktu[i].length() == 1)
126. { for (int j = 1; j >= 0; j--)
127. { pwaktu[i][j] = pwaktu[i][j - 1];
128. }
129. pwaktu[i][0] = '0';
130. pwaktu[i][2] = '\0';
131. }
132. }
133. for (int i = 0; i < 2; i++) {
134. tanggal[i].trim();
135. tanggal[i].toCharArray (ptanggal[i], tanggal[i].length() + 1);
136. if (tanggal[i].length() == 1)
137. { for (int j = 1; j >= 0; j--)
138. { ptanggal[i][j] = ptanggal[i][j - 1];
139. }
140. ptanggal[i][0] = '0';
141. ptanggal[i][2] = '\0';
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L18
142. }
143. }
144.
145. if (buttonstate == LOW) {
146. lcd.setCursor (5, 0);
147. lcd.print( "Sistem ");
148. lcd.setCursor (0, 1);
149. lcd.print( "Smart Greenhouse");
150. lcd.setCursor (0, 3);
151. lcd.print( pwaktu[2]);
152. lcd.print(":");
153. lcd.print( pwaktu[1]);
154.
155. if (a == 1) {
156. ji = millis();
157. temp_c = sht1x.readTemperatureC(); // pembacaan sensor suhu
158. humidity = sht1x.readHumidity(); // pembacaan sensor kelembapan udara
159. s = analogRead(A0); //pembacaan sensor tanah
160. soil = map (s, 0, 1023, 10, 0);
161. // KENDALI SUHU
162. { if (temp_c < 29) {
163. digitalWrite(25, HIGH);
164. digitalWrite(26, LOW);
165. digitalWrite(27, LOW);
166. digitalWrite(22, LOW);
167. }
168. if ((temp_c < 33) && (temp_c > 29)) {
169. digitalWrite(25, LOW);
170. digitalWrite(26, HIGH);
171. digitalWrite(27, LOW);
172. }
173. if (temp_c > 33) {
174. digitalWrite(25, LOW);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L19
175. digitalWrite(26, LOW);
176. digitalWrite(27, HIGH);
177. digitalWrite(22, HIGH);
178. //Serial.print(33);
179. //Serial.print(",");
180. }
181. }
182. // KENDALI KELEMBAPAN UDARA
183. { if (humidity < 80) {
184. digitalWrite(29, HIGH);
185. digitalWrite(30, LOW);
186. digitalWrite(31, LOW);
187. digitalWrite(23, HIGH);
188. }
189. if ((humidity < 90) && (humidity > 80)) {
190. digitalWrite(29, LOW);
191. digitalWrite(30, HIGH);
192. digitalWrite(31, LOW);
193. }
194. if (humidity > 90) {
195. digitalWrite(29, LOW);
196. digitalWrite(30, LOW);
197. digitalWrite(31, HIGH);
198. digitalWrite(23, LOW);
199. }
200. }
201. // KENDALI KELEMBAPAN TANAH
202. { if (soil < 2) {
203. digitalWrite(32, HIGH);
204. digitalWrite(33, LOW);
205. digitalWrite(34, LOW);
206. digitalWrite(24, HIGH);
207. }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L20
208. if ((soil < 4) && (soil > 2)) {
209. digitalWrite(32, LOW);
210. digitalWrite(33, HIGH);
211. digitalWrite(34, LOW);
212. }
213. if (soil > 4) {
214. digitalWrite(32, LOW);
215. digitalWrite(33, LOW);
216. digitalWrite(34, HIGH);
217. digitalWrite(24, LOW);
218. }
219. }
220.
221. //Status output
222. cooler = digitalRead(22);
223. humid = digitalRead(23);
224. pompa = digitalRead(24);
225. Serial.println(ji);
226. while ((millis() - ji) < 1400) {
227. }
228.
229. // Pengiriman ke sistem interface
230. Serial.print(tahun, DEC);
231. Serial.print('-');
232. Serial.print(ptanggal[0]);
233. Serial.print('-');
234. Serial.print(ptanggal[1]);
235. Serial.print('#');
236. Serial.print(pwaktu[2]);
237. Serial.print(':');
238. Serial.print(pwaktu[1]);
239. Serial.print(':');
240. Serial.print(pwaktu[0]);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L21
241. Serial.print('#');
242. Serial.print(cooler);
243. Serial.print('#');
244. Serial.print(humid);
245. Serial.print('#');
246. Serial.print(pompa);
247. Serial.print('#');
248. Serial.print(temp_c, 2);
249. Serial.print('#');
250. Serial.print(humidity, 2);
251. Serial.print('#');
252. Serial.print(soil);
253.
254. //Simpan Data microSD
255. File myFile = SD.open("Sdtes4.txt", FILE_WRITE);
256. if (myFile)//bila ada maka akan dibuka, dan ditutup filenya
257. {
258. myFile.print(now.year());
259. myFile.print('/');
260. myFile.print(now.month(), DEC);
261. myFile.print('/');
262. myFile.print(now.day(), DEC);
263. myFile.print(',');
264. myFile.print(now.hour(), DEC);
265. myFile.print(':');
266. myFile.print(now.minute(), DEC);
267. myFile.print(':');
268. myFile.print(now.second(), DEC);
269. myFile.print(',');
270. myFile.print(temp_c, 2);
271. myFile.print(",");
272. myFile.print(humidity, 2);
273. myFile.print(",");
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L22
274. myFile.print(soil);
275. myFile.print(",");
276. myFile.print(cooler);
277. myFile.print(",");
278. myFile.print(humid);
279. myFile.print(",");
280. myFile.println(pompa);
281. myFile.close();
282. }
283. count = 0;
284. a = 0;
285. }
286. //Serial.print("waktu"); Serial.print(" "); Serial.println(mi -ji); //ngetes range
waktu ambil data
287. }
288. else {
289. lcd.begin (16, 4);
290. lcd.setCursor (2, 1);
291. lcd.print ("Tekan Tombol");
292. lcd.setCursor (5, 2);
293. lcd.print ("Start");
294. delay (1000);
295. lcd.clear();
296. digitalWrite(22, LOW);
297. digitalWrite(23, LOW);
298. digitalWrite(24, LOW);
299. digitalWrite(25, LOW);
300. digitalWrite(26, LOW);
301. digitalWrite(27, LOW);
302. digitalWrite(29, LOW);
303. digitalWrite(30, LOW);
304. digitalWrite(31, LOW);
305. digitalWrite(32, LOW);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L23
306. digitalWrite(36, LOW);
307. digitalWrite(27, LOW);
308. }
309. Dt = digitalRead(42); // Button Output
310. if (Dt == LOW && buttonstate == LOW) {
311. lcd.clear();
312. lcd.setCursor (0, 0);
313. lcd.print(tahun, DEC);
314. lcd.print('-');
315. lcd.print(ptanggal[0]);
316. lcd.print('-');
317. lcd.print(ptanggal[1]);
318. lcd.print('#');
319. lcd.print(pwaktu[2]);
320. lcd.print(':');
321. lcd.print(pwaktu[1]);
322. lcd.setCursor (0, 1);
323. lcd.print(':');
324. lcd.print(pwaktu[0]);
325. lcd.print('#');
326. lcd.print(cooler);
327. lcd.print('#');
328. lcd.print(humid);
329. lcd.print('#');
330. lcd.print(pompa);
331. lcd.print('#');
332. lcd.print(temp_c, 2);
333. lcd.print('#');
334. lcd.setCursor (0, 2);
335. lcd.print(humidity, 2);
336. lcd.print('#');
337. lcd.print(soil, 2);
338. delay(2000);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L24
339. lcd.clear();
340. }
341. So = digitalRead(44); // Button Output
342. if (So == LOW && buttonstate == LOW) {
343. lcd.clear();
344. lcd.setCursor (0, 0);
345. lcd.print ("1=Nyala , 0=Mati");
346. lcd.setCursor (0, 1);
347. lcd.print ("Air Cooler :");
348. lcd.print (cooler);
349. lcd.setCursor (0, 2);
350. lcd.print ("Humidifier :");
351. lcd.print (humid);
352. lcd.setCursor (0, 3);
353. lcd.print ("Pompa Air :");
354. lcd.print (pompa);
355. kondisi = 0;
356. delay(2000);
357. lcd.clear();
358. }
359. Si = digitalRead(43); //Button Input
360. if (Si == LOW && buttonstate == LOW) {
361. lcd.clear();
362. lcd.setCursor (0, 0);
363. lcd.print("Suhu :");
364. lcd.print(temp_c, 2);
365. lcd.print("C ");
366. lcd.setCursor (0, 1);
367. lcd.print("Kel Udara:");
368. lcd.print(humidity, 2);
369. lcd.print("% ");
370. lcd.setCursor (0, 2);
371. lcd.print("Kel Tanah:");
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L25
372. lcd.print(soil, 2);
373. delay(2000);
374. lcd.clear();
375. }
376. }
Listing Program Interface Software Matlab
1. %.................................................................. 2. % Tugas Akhir 3. % Sistem Telemetri Akuisisi Data Greenhouse Menggunakan XBee Pro S2B 4. % Oleh 5. % Rayendra Ega Satria 6. % Nim : 125114007 7. % Teknik Elektro Fakultas Sains dan Teknologi 8. % Universitas Sanata Dharma Yogyakarta 9. % 2016 10. %............................................................ 11. function varargout = EGA_TA(varargin) 12. % EGA_TA MATLAB code for EGA_TA.fig 13. % EGA_TA, by itself, creates a new EGA_TA or raises the
existing 14. % singleton*. 15. % 16. % H = EGA_TA returns the handle to a new EGA_TA or the
handle to 17. % the existing singleton*. 18. % 19. % EGA_TA('CALLBACK',hObject,eventData,handles,...) calls
the local 20. % function named CALLBACK in EGA_TA.M with the given
input arguments. 21. % 22. % EGA_TA('Property','Value',...) creates a new EGA_TA or
raises the 23. % existing singleton*. Starting from the left, property
value pairs are 24. % applied to the GUI before EGA_TA_OpeningFcn gets
called. An 25. % unrecognized property name or invalid value makes
property application 26. % stop. All inputs are passed to EGA_TA_OpeningFcn via
varargin. 27. % 28. % *See GUI Options on GUIDE's Tools menu. Choose "GUI
allows only one 29. % instance to run (singleton)". 30. % 31. % See also: GUIDE, GUIDATA, GUIHANDLES
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L26
32. 33. % Edit the above text to modify the response to help EGA_TA 34. 35. % Last Modified by GUIDE v2.5 17-Jun-2016 09:22:12 36. 37. % Begin initialization code - DO NOT EDIT 38. gui_Singleton = 1; 39. gui_State = struct('gui_Name', mfilename, ... 40. 'gui_Singleton', gui_Singleton, ... 41. 'gui_OpeningFcn', @EGA_TA_OpeningFcn, ... 42. 'gui_OutputFcn', @EGA_TA_OutputFcn, ... 43. 'gui_LayoutFcn', [] , ... 44. 'gui_Callback', []); 45. if nargin && ischar(varargin{1}) 46. gui_State.gui_Callback = str2func(varargin{1}); 47. end 48. 49. 50. if nargout 51. [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); 52. else 53. gui_mainfcn(gui_State, varargin{:}); 54. end 55. % End initialization code - DO NOT EDIT 56. 57. 58. % --- Executes just before EGA_TA is made visible. 59. function EGA_TA_OpeningFcn(hObject, eventdata, handles, varargin) 60. % This function has no output args, see OutputFcn. 61. % hObject handle to figure 62. % eventdata reserved - to be defined in a future version of MATLAB 63. % handles structure with handles and user data (see GUIDATA) 64. % varargin command line arguments to EGA_TA (see VARARGIN) 65. 66. % Choose default command line output for EGA_TA 67. 68. handles.output = hObject; 69. 70. % Update handles structure 71. guidata(hObject, handles); 72. 73. % UIWAIT makes EGA_TA wait for user response (see UIRESUME) 74. % uiwait(handles.figure1); 75. 76. delete(instrfindall); % reset port COM yang dipakai 77. s = serial('COM3','BaudRate', 9600); 78. set(s,'Terminator','LF'); 79. set(s,'Timeout',0.2); 80. fopen(s); % buka komunikasi serial
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L27
81. 82. handles.s = s; 83. handles.timer = timer('Period',0.25, ... 84. 'StartDelay',1, ... % 1 detik 85. 'TasksToExecute',inf, ... 86. 'ExecutionMode','fixedSpacing', ... 87. 'TimerFcn',{@timerCallback,hObject}); 88. handles.a = timer('Period',1, ... 89. 'StartDelay',300, ... % 300 detik / 5 menit 90. 'TasksToExecute',inf, ... 91. 'ExecutionMode','fixedSpacing', ... 92. 'TimerFcn',{@timerCallbacka,hObject}); 93. disp('Connected.') 94. guidata(hObject, handles); 95. 96. global ugrafik %Perhitungan jumlah grafik 97. global barisn %Perhitungan jumlah update grafik 98. ugrafik = 0; 99. barisn = 0; 100. 101. % --- Outputs from this function are returned to the command line. 102. function varargout = EGA_TA_OutputFcn(hObject, eventdata, handles) 103. % varargout cell array for returning output args (see VARARGOUT); 104. % hObject handle to figure 105. % eventdata reserved - to be defined in a future version of MATLAB 106. % handles structure with handles and user data (see GUIDATA) 107. 108. % Get default command line output from handles structure 109. varargout{1} = handles.output; 110. 111. 112. function waktu_Callback(hObject, eventdata, handles) 113. % hObject handle to waktu (see GCBO) 114. % eventdata reserved - to be defined in a future version of MATLAB 115. % handles structure with handles and user data (see GUIDATA) 116. 117. % Hints: get(hObject,'String') returns contents of waktu as text 118. % str2double(get(hObject,'String')) returns contents of
waktu as a double 119. 120. 121. % --- Executes during object creation, after setting all
properties. 122. function waktu_CreateFcn(hObject, eventdata, handles) 123. % hObject handle to waktu (see GCBO) 124. % eventdata reserved - to be defined in a future version of MATLAB 125. % handles empty - handles not created until after all CreateFcns
called 126. 127. % Hint: edit controls usually have a white background on Windows. 128. % See ISPC and COMPUTER.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L28
129. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
130. set(hObject,'BackgroundColor','white'); 131. end 132. 133. 134. 135. function tanggal_Callback(hObject, eventdata, handles) 136. % hObject handle to tanggal (see GCBO) 137. % eventdata reserved - to be defined in a future version of MATLAB 138. % handles structure with handles and user data (see GUIDATA) 139. 140. % Hints: get(hObject,'String') returns contents of tanggal as text 141. % str2double(get(hObject,'String')) returns contents of
tanggal as a double 142. 143. 144. % --- Executes during object creation, after setting all
properties. 145. function tanggal_CreateFcn(hObject, eventdata, handles) 146. % hObject handle to tanggal (see GCBO) 147. % eventdata reserved - to be defined in a future version of MATLAB 148. % handles empty - handles not created until after all CreateFcns
called 149. 150. % Hint: edit controls usually have a white background on Windows. 151. % See ISPC and COMPUTER. 152. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 153. set(hObject,'BackgroundColor','white'); 154. end 155. 156. 157. function air_cooler_Callback(hObject, eventdata, handles) 158. % hObject handle to air_cooler (see GCBO) 159. % eventdata reserved - to be defined in a future version of MATLAB 160. % handles structure with handles and user data (see GUIDATA) 161. 162. % Hints: get(hObject,'String') returns contents of air_cooler as
text 163. % str2double(get(hObject,'String')) returns contents of
air_cooler as a double 164. 165. 166. % --- Executes during object creation, after setting all
properties. 167. function air_cooler_CreateFcn(hObject, eventdata, handles) 168. % hObject handle to air_cooler (see GCBO) 169. % eventdata reserved - to be defined in a future version of MATLAB 170. % handles empty - handles not created until after all CreateFcns
called
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L29
171. 172. % Hint: edit controls usually have a white background on Windows. 173. % See ISPC and COMPUTER. 174. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 175. set(hObject,'BackgroundColor','white'); 176. end 177. 178. 179. function humidifier_Callback(hObject, eventdata, handles) 180. % hObject handle to humidifier (see GCBO) 181. % eventdata reserved - to be defined in a future version of MATLAB 182. % handles structure with handles and user data (see GUIDATA) 183. 184. % Hints: get(hObject,'String') returns contents of humidifier as
text 185. % str2double(get(hObject,'String')) returns contents of
humidifier as a double 186. 187. 188. % --- Executes during object creation, after setting all
properties. 189. function humidifier_CreateFcn(hObject, eventdata, handles) 190. % hObject handle to humidifier (see GCBO) 191. % eventdata reserved - to be defined in a future version of MATLAB 192. % handles empty - handles not created until after all CreateFcns
called 193. 194. % Hint: edit controls usually have a white background on Windows. 195. % See ISPC and COMPUTER. 196. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 197. set(hObject,'BackgroundColor','white'); 198. end 199. 200. 201. function pompa_air_Callback(hObject, eventdata, handles) 202. % hObject handle to pompa_air (see GCBO) 203. % eventdata reserved - to be defined in a future version of MATLAB 204. % handles structure with handles and user data (see GUIDATA) 205. 206. % Hints: get(hObject,'String') returns contents of pompa_air as
text 207. % str2double(get(hObject,'String')) returns contents of
pompa_air as a double 208. 209. 210. % --- Executes during object creation, after setting all
properties. 211. function pompa_air_CreateFcn(hObject, eventdata, handles) 212. % hObject handle to pompa_air (see GCBO) 213. % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L30
214. % handles empty - handles not created until after all CreateFcns called
215. 216. % Hint: edit controls usually have a white background on Windows. 217. % See ISPC and COMPUTER. 218. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 219. set(hObject,'BackgroundColor','white'); 220. end 221. 222. 223. function suhu_Callback(hObject, eventdata, handles) 224. % hObject handle to suhu (see GCBO) 225. % eventdata reserved - to be defined in a future version of MATLAB 226. % handles structure with handles and user data (see GUIDATA) 227. 228. % Hints: get(hObject,'String') returns contents of suhu as text 229. % str2double(get(hObject,'String')) returns contents of suhu
as a double 230. 231. 232. % --- Executes during object creation, after setting all
properties. 233. function suhu_CreateFcn(hObject, eventdata, handles) 234. % hObject handle to suhu (see GCBO) 235. % eventdata reserved - to be defined in a future version of MATLAB 236. % handles empty - handles not created until after all CreateFcns
called 237. 238. % Hint: edit controls usually have a white background on Windows. 239. % See ISPC and COMPUTER. 240. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 241. set(hObject,'BackgroundColor','white'); 242. end 243. 244. 245. function kel_udara_Callback(hObject, eventdata, handles) 246. % hObject handle to kel_udara (see GCBO) 247. % eventdata reserved - to be defined in a future version of MATLAB 248. % handles structure with handles and user data (see GUIDATA) 249. 250. % Hints: get(hObject,'String') returns contents of kel_udara as
text 251. % str2double(get(hObject,'String')) returns contents of
kel_udara as a double 252. 253. 254. % --- Executes during object creation, after setting all
properties. 255. function kel_udara_CreateFcn(hObject, eventdata, handles) 256. % hObject handle to kel_udara (see GCBO)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L31
257. % eventdata reserved - to be defined in a future version of MATLAB 258. % handles empty - handles not created until after all CreateFcns
called 259. 260. % Hint: edit controls usually have a white background on Windows. 261. % See ISPC and COMPUTER. 262. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 263. set(hObject,'BackgroundColor','white'); 264. end 265. 266. 267. function kel_tanah_Callback(hObject, eventdata, handles) 268. % hObject handle to kel_tanah (see GCBO) 269. % eventdata reserved - to be defined in a future version of MATLAB 270. % handles structure with handles and user data (see GUIDATA) 271. 272. % Hints: get(hObject,'String') returns contents of kel_tanah as
text 273. % str2double(get(hObject,'String')) returns contents of
kel_tanah as a double 274. 275. 276. % --- Executes during object creation, after setting all
properties. 277. function kel_tanah_CreateFcn(hObject, eventdata, handles) 278. % hObject handle to kel_tanah (see GCBO) 279. % eventdata reserved - to be defined in a future version of MATLAB 280. % handles empty - handles not created until after all CreateFcns
called 281. 282. % Hint: edit controls usually have a white background on Windows. 283. % See ISPC and COMPUTER. 284. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 285. set(hObject,'BackgroundColor','white'); 286. end 287. 288. 289. function jumlah_data_Callback(hObject, eventdata, handles) 290. % hObject handle to jumlah_data (see GCBO) 291. % eventdata reserved - to be defined in a future version of MATLAB 292. % handles structure with handles and user data (see GUIDATA) 293. 294. % Hints: get(hObject,'String') returns contents of jumlah_data as
text 295. % str2double(get(hObject,'String')) returns contents of
jumlah_data as a double 296. 297. 298. % --- Executes during object creation, after setting all
properties.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L32
299. function jumlah_data_CreateFcn(hObject, eventdata, handles) 300. % hObject handle to jumlah_data (see GCBO) 301. % eventdata reserved - to be defined in a future version of MATLAB 302. % handles empty - handles not created until after all CreateFcns
called 303. 304. % Hint: edit controls usually have a white background on Windows. 305. % See ISPC and COMPUTER. 306. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 307. set(hObject,'BackgroundColor','white'); 308. end 309. 310. 311. function max_suhu_Callback(hObject, eventdata, handles) 312. % hObject handle to max_suhu (see GCBO) 313. % eventdata reserved - to be defined in a future version of MATLAB 314. % handles structure with handles and user data (see GUIDATA) 315. 316. % Hints: get(hObject,'String') returns contents of max_suhu as text 317. % str2double(get(hObject,'String')) returns contents of
max_suhu as a double 318. 319. 320. % --- Executes during object creation, after setting all
properties. 321. function max_suhu_CreateFcn(hObject, eventdata, handles) 322. % hObject handle to max_suhu (see GCBO) 323. % eventdata reserved - to be defined in a future version of MATLAB 324. % handles empty - handles not created until after all CreateFcns
called 325. % Hint: edit controls usually have a white background on Windows. 326. % See ISPC and COMPUTER. 327. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 328. set(hObject,'BackgroundColor','white'); 329. end 330. 331. 332. function min_suhu_Callback(hObject, eventdata, handles) 333. % hObject handle to min_suhu (see GCBO) 334. % eventdata reserved - to be defined in a future version of MATLAB 335. % handles structure with handles and user data (see GUIDATA) 336. 337. % Hints: get(hObject,'String') returns contents of min_suhu as text 338. % str2double(get(hObject,'String')) returns contents of
min_suhu as a double 339. 340. 341. % --- Executes during object creation, after setting all
properties. 342. function min_suhu_CreateFcn(hObject, eventdata, handles)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L33
343. % hObject handle to min_suhu (see GCBO) 344. % eventdata reserved - to be defined in a future version of MATLAB 345. % handles empty - handles not created until after all CreateFcns
called 346. 347. % Hint: edit controls usually have a white background on Windows. 348. % See ISPC and COMPUTER. 349. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 350. set(hObject,'BackgroundColor','white'); 351. end 352. 353. 354. function mean_suhu_Callback(hObject, eventdata, handles) 355. % hObject handle to mean_suhu (see GCBO) 356. % eventdata reserved - to be defined in a future version of MATLAB 357. % handles structure with handles and user data (see GUIDATA) 358. 359. % Hints: get(hObject,'String') returns contents of mean_suhu as
text 360. % str2double(get(hObject,'String')) returns contents of
mean_suhu as a double 361. 362. 363. % --- Executes during object creation, after setting all
properties. 364. function mean_suhu_CreateFcn(hObject, eventdata, handles) 365. % hObject handle to mean_suhu (see GCBO) 366. % eventdata reserved - to be defined in a future version of MATLAB 367. % handles empty - handles not created until after all CreateFcns
called 368. 369. % Hint: edit controls usually have a white background on Windows. 370. % See ISPC and COMPUTER. 371. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 372. set(hObject,'BackgroundColor','white'); 373. end 374. 375. 376. function max_kudara_Callback(hObject, eventdata, handles) 377. % hObject handle to max_kudara (see GCBO) 378. % eventdata reserved - to be defined in a future version of MATLAB 379. % handles structure with handles and user data (see GUIDATA) 380. 381. % Hints: get(hObject,'String') returns contents of max_kudara as
text 382. % str2double(get(hObject,'String')) returns contents of
max_kudara as a double 383. 384. 385. % --- Executes during object creation, after setting all
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L34
properties. 386. function max_kudara_CreateFcn(hObject, eventdata, handles) 387. % hObject handle to max_kudara (see GCBO) 388. % eventdata reserved - to be defined in a future version of MATLAB 389. % handles empty - handles not created until after all CreateFcns
called 390. 391. % Hint: edit controls usually have a white background on Windows. 392. % See ISPC and COMPUTER. 393. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 394. set(hObject,'BackgroundColor','white'); 395. end 396. 397. 398. function min_kudara_Callback(hObject, eventdata, handles) 399. % hObject handle to min_kudara (see GCBO) 400. % eventdata reserved - to be defined in a future version of MATLAB 401. % handles structure with handles and user data (see GUIDATA) 402. 403. % Hints: get(hObject,'String') returns contents of min_kudara as
text 404. % str2double(get(hObject,'String')) returns contents of
min_kudara as a double 405. 406. 407. % --- Executes during object creation, after setting all
properties. 408. function min_kudara_CreateFcn(hObject, eventdata, handles) 409. % hObject handle to min_kudara (see GCBO) 410. % eventdata reserved - to be defined in a future version of MATLAB 411. % handles empty - handles not created until after all CreateFcns
called 412. 413. % Hint: edit controls usually have a white background on Windows. 414. % See ISPC and COMPUTER. 415. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 416. set(hObject,'BackgroundColor','white'); 417. end 418. 419. 420. function mean_kudara_Callback(hObject, eventdata, handles) 421. % hObject handle to mean_kudara (see GCBO) 422. % eventdata reserved - to be defined in a future version of MATLAB 423. % handles structure with handles and user data (see GUIDATA) 424. 425. % Hints: get(hObject,'String') returns contents of mean_kudara as
text 426. % str2double(get(hObject,'String')) returns contents of
mean_kudara as a double
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L35
427. 428. 429. % --- Executes during object creation, after setting all
properties. 430. function mean_kudara_CreateFcn(hObject, eventdata, handles) 431. % hObject handle to mean_kudara (see GCBO) 432. % eventdata reserved - to be defined in a future version of MATLAB 433. % handles empty - handles not created until after all CreateFcns
called 434. 435. % Hint: edit controls usually have a white background on Windows. 436. % See ISPC and COMPUTER. 437. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 438. set(hObject,'BackgroundColor','white'); 439. end 440. 441. 442. function max_ktanah_Callback(hObject, eventdata, handles) 443. % hObject handle to max_ktanah (see GCBO) 444. % eventdata reserved - to be defined in a future version of MATLAB 445. % handles structure with handles and user data (see GUIDATA) 446. 447. % Hints: get(hObject,'String') returns contents of max_ktanah as
text 448. % str2double(get(hObject,'String')) returns contents of
max_ktanah as a double 449. 450. 451. % --- Executes during object creation, after setting all
properties. 452. function max_ktanah_CreateFcn(hObject, eventdata, handles) 453. % hObject handle to max_ktanah (see GCBO) 454. % eventdata reserved - to be defined in a future version of MATLAB 455. % handles empty - handles not created until after all CreateFcns
called 456. 457. % Hint: edit controls usually have a white background on Windows. 458. % See ISPC and COMPUTER. 459. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 460. set(hObject,'BackgroundColor','white'); 461. end 462. 463. 464. function min_ktanah_Callback(hObject, eventdata, handles) 465. % hObject handle to min_ktanah (see GCBO) 466. % eventdata reserved - to be defined in a future version of MATLAB 467. % handles structure with handles and user data (see GUIDATA) 468. 469. % Hints: get(hObject,'String') returns contents of min_ktanah as
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L36
text 470. % str2double(get(hObject,'String')) returns contents of
min_ktanah as a double 471. 472. 473. % --- Executes during object creation, after setting all
properties. 474. function min_ktanah_CreateFcn(hObject, eventdata, handles) 475. % hObject handle to min_ktanah (see GCBO) 476. % eventdata reserved - to be defined in a future version of MATLAB 477. % handles empty - handles not created until after all CreateFcns
called 478. 479. % Hint: edit controls usually have a white background on Windows. 480. % See ISPC and COMPUTER. 481. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 482. set(hObject,'BackgroundColor','white'); 483. end 484. 485. 486. function mean_ktanah_Callback(hObject, eventdata, handles) 487. % hObject handle to mean_ktanah (see GCBO) 488. % eventdata reserved - to be defined in a future version of MATLAB 489. % handles structure with handles and user data (see GUIDATA) 490. 491. % Hints: get(hObject,'String') returns contents of mean_ktanah as
text 492. % str2double(get(hObject,'String')) returns contents of
mean_ktanah as a double 493. 494. 495. % --- Executes during object creation, after setting all
properties. 496. function mean_ktanah_CreateFcn(hObject, eventdata, handles) 497. % hObject handle to mean_ktanah (see GCBO) 498. % eventdata reserved - to be defined in a future version of MATLAB 499. % handles empty - handles not created until after all CreateFcns
called 500. 501. % Hint: edit controls usually have a white background on Windows. 502. % See ISPC and COMPUTER. 503. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 504. set(hObject,'BackgroundColor','white'); 505. end 506. 507. 508. % ----------------------------------------------------------------- 509. function activex4_Click(hObject, eventdata, handles) 510. % hObject handle to activex4 (see GCBO) 511. % eventdata structure with parameters passed to COM event listener
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L37
512. % handles structure with handles and user data (see GUIDATA) 513. 514. 515. % ----------------------------------------------------------------- 516. function activex4_Slide(hObject, eventdata, handles) 517. % hObject handle to activex4 (see GCBO) 518. % eventdata structure with parameters passed to COM event listener 519. % handles structure with handles and user data (see GUIDATA) 520. 521. 522. % ----------------------------------------------------------------- 523. function activex4_Change(hObject, eventdata, handles) 524. % hObject handle to activex4 (see GCBO) 525. % eventdata structure with parameters passed to COM event listener 526. % handles structure with handles and user data (see GUIDATA) 527. 528. 529. % --- Executes during object creation, after setting all
properties. 530. function axes10_CreateFcn(hObject, eventdata, handles) 531. % hObject handle to axes10 (see GCBO) 532. % eventdata reserved - to be defined in a future version of MATLAB 533. % handles empty - handles not created until after all CreateFcns
called 534. 535. % Hint: place code in OpeningFcn to populate axes10 536. 537. 538. % --- Executes when entered data in editable cell(s) in uitable1. 539. function uitable1_CellEditCallback(hObject, eventdata, handles) 540. % hObject handle to uitable1 (see GCBO) 541. % eventdata structure with the following fields (see
MATLAB.UI.CONTROL.TABLE) 542. % Indices: row and column indices of the cell(s) edited 543. % PreviousData: previous data for the cell(s) edited 544. % EditData: string(s) entered by the user 545. % NewData: EditData or its converted form set on the Data
property. Empty if Data was not changed 546. % Error: error string when failed to convert EditData to
appropriate value for Data 547. % handles structure with handles and user data (see GUIDATA) 548. 549. 550. % --- Executes during object creation, after setting all
properties. 551. function uitable1_CreateFcn(hObject, eventdata, handles) 552. % hObject handle to uitable1 (see GCBO) 553. % eventdata reserved - to be defined in a future version of MATLAB 554. % handles empty - handles not created until after all CreateFcns
called 555. 556.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L38
557. % --- Executes on button press in pushbutton3. 558. function pushbutton3_Callback(hObject, eventdata, handles) 559. % hObject handle to pushbutton3 (see GCBO) 560. % eventdata reserved - to be defined in a future version of MATLAB 561. % handles structure with handles and user data (see GUIDATA) 562. 563. 564. % --- Executes during object creation, after setting all
properties. 565. function suhu_grafik_CreateFcn(hObject, eventdata, handles) 566. % hObject handle to suhu_grafik (see GCBO) 567. % eventdata reserved - to be defined in a future version of MATLAB 568. % handles empty - handles not created until after all CreateFcns
called 569. 570. % Hint: place code in OpeningFcn to populate suhu_grafik 571. 572. 573. % --- Executes during object creation, after setting all
properties. 574. function ktanah_grafik_CreateFcn(hObject, eventdata, handles) 575. % hObject handle to ktanah_grafik (see GCBO) 576. % eventdata reserved - to be defined in a future version of MATLAB 577. % handles empty - handles not created until after all CreateFcns
called 578. 579. % Hint: place code in OpeningFcn to populate ktanah_grafik 580. 581. 582. % --- Executes on selection change in menu_date. 583. function menu_date_Callback(hObject, eventdata, handles) 584. % hObject handle to menu_date (see GCBO) 585. % eventdata reserved - to be defined in a future version of MATLAB 586. % handles structure with handles and user data (see GUIDATA) 587. 588. % Hints: contents = cellstr(get(hObject,'String')) returns
menu_date contents as cell array 589. % contents{get(hObject,'Value')} returns selected item from
menu_date 590. 591. 592. % --- Executes during object creation, after setting all
properties. 593. function menu_date_CreateFcn(hObject, eventdata, handles) 594. % hObject handle to menu_date (see GCBO) 595. % eventdata reserved - to be defined in a future version of MATLAB 596. % handles empty - handles not created until after all CreateFcns
called 597. 598. 599. % guidata(hObject,handles); 600.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L39
601. % Hint: popupmenu controls usually have a white background on Windows.
602. % See ISPC and COMPUTER. 603. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 604. set(hObject,'BackgroundColor','white'); 605. end 606. 607. 608. % --- Executes during object creation, after setting all
properties. 609. function namatanggal_CreateFcn(hObject, eventdata, handles) 610. % hObject handle to namatanggal (see GCBO) 611. % eventdata reserved - to be defined in a future version of MATLAB 612. % handles empty - handles not created until after all CreateFcns
called 613. 614. % Hint: popupmenu controls usually have a white background on
Windows. 615. % See ISPC and COMPUTER. 616. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 617. set(hObject,'BackgroundColor','white'); 618. end 619. 620. 621. function datawaktu1_Callback(hObject, eventdata, handles) 622. % hObject handle to datawaktu1 (see GCBO) 623. % eventdata reserved - to be defined in a future version of MATLAB 624. % handles structure with handles and user data (see GUIDATA) 625. 626. % Hints: get(hObject,'String') returns contents of datawaktu1 as
text 627. % str2double(get(hObject,'String')) returns contents of
datawaktu1 as a double 628. 629. 630. % --- Executes during object creation, after setting all
properties. 631. function datawaktu1_CreateFcn(hObject, eventdata, handles) 632. % hObject handle to datawaktu1 (see GCBO) 633. % eventdata reserved - to be defined in a future version of MATLAB 634. % handles empty - handles not created until after all CreateFcns
called 635. 636. % Hint: edit controls usually have a white background on Windows. 637. % See ISPC and COMPUTER. 638. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 639. set(hObject,'BackgroundColor','white'); 640. end 641.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L40
642. 643. function datawaktu2_Callback(hObject, eventdata, handles) 644. % hObject handle to datawaktu2 (see GCBO) 645. % eventdata reserved - to be defined in a future version of MATLAB 646. % handles structure with handles and user data (see GUIDATA) 647. 648. % Hints: get(hObject,'String') returns contents of datawaktu2 as
text 649. % str2double(get(hObject,'String')) returns contents of
datawaktu2 as a double 650. 651. 652. % --- Executes during object creation, after setting all
properties. 653. function datawaktu2_CreateFcn(hObject, eventdata, handles) 654. % hObject handle to datawaktu2 (see GCBO) 655. % eventdata reserved - to be defined in a future version of MATLAB 656. % handles empty - handles not created until after all CreateFcns
called 657. 658. % Hint: edit controls usually have a white background on Windows. 659. % See ISPC and COMPUTER. 660. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 661. set(hObject,'BackgroundColor','white'); 662. end 663. 664. 665. % --- Executes on button press in ok. 666. function ok_Callback(hObject, eventdata, handles) 667. % hObject handle to ok (see GCBO) 668. % eventdata reserved - to be defined in a future version of MATLAB 669. % handles structure with handles and user data (see GUIDATA) 670. 671. 672. % --- Executes on selection change in pilihandata. 673. function pilihandata_Callback(hObject, eventdata, handles) 674. % hObject handle to pilihandata (see GCBO) 675. % eventdata reserved - to be defined in a future version of MATLAB 676. % handles structure with handles and user data (see GUIDATA) 677. 678. % Hints: contents = cellstr(get(hObject,'String')) returns
pilihandata contents as cell array 679. % contents{get(hObject,'Value')} returns selected item from
pilihandata 680. 681. 682. % --- Executes during object creation, after setting all
properties. 683. function pilihandata_CreateFcn(hObject, eventdata, handles) 684. % hObject handle to pilihandata (see GCBO) 685. % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L41
686. % handles empty - handles not created until after all CreateFcns called
687. 688. % Hint: popupmenu controls usually have a white background on
Windows. 689. % See ISPC and COMPUTER. 690. if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor')) 691. set(hObject,'BackgroundColor','white'); 692. end 693. 694. 695. % --- Executes on button press in mulai. 696. function mulai_Callback(hObject, eventdata, handles) 697. % hObject handle to mulai (see GCBO) 698. % eventdata reserved - to be defined in a future version of MATLAB 699. % handles structure with handles and user data (see GUIDATA) 700. handles = guidata(hObject); 701. 702. start(handles.timer); %start timer 703. start(handles.a); %timer 5 menit 704. set(handles.uitable1, 'Data',[]); %mengosongkan tabel 705. set(handles.uitable1, 'Data',
cell(size(get(handles.uitable1,'Data')))); %menampilkan nomor urut data yang masuk 706. 707. 708. function timerCallback(~,~,hObject) 709. 710. global ugrafik %Perhitungan jumlah grafik 711. global barisn %Perhitungan jumlah update grafik 712. 713. 714. handles = guidata(hObject); 715. 716. if isfield(handles,'s') 717. try 718. readasync(handles.s); 719. n = handles.s.BytesAvailable; 720. if n > 0 721. warning('off','MATLAB:serial:fscanf:unsuccessfulRead'); 722. idn = fscanf(handles.s); 723. C = textscan(idn,'%s%s%d%d%d%f%f%f','Delimiter','#'); 724. [Tanggal, Waktu, Air_cooler, Humidifier, Pompa_air,
Suhu, Kel_udara, Kel_tanah] = deal(C{:}); 725. 726. dsuhu=sprintf('%.2f',Suhu); %menetapkan data suhu dengan 2 angka
dibelakang koma(,) 727. dkel_udara=sprintf('%.2f',Kel_udara); %menetapkan data
kel.udara dengan 2 angka di belakang koma(,) 728. dkel_tanah=sprintf('%.2f',Kel_tanah); %menetapkan data
kel.tanah dengan 2 angka di belakang koma(,)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L42
729. 730. set(handles.waktu,'String',Waktu); %menampilkan data
waktu ke tampilan data masukan tunggal 731. set(handles.tanggal,'String',Tanggal); %menampilkan data
tanggal ke tampilan data masukan tunggal 732. set(handles.air_cooler,'String',Air_cooler); %menampilkan data
air cooler ke tampilan data masukan tunggal 733. set(handles.humidifier,'String',Humidifier); %menampilkan data
humidifier ke tampilan data masukan tunggal 734. set(handles.pompa_air,'String',Pompa_air); %menampilkan data
pompa air ke tampilan data masukan tunggal 735. set(handles.suhu,'String',dsuhu); %menampilkan data
suhu ke tampilan data masukan tunggal 736. set(handles.kel_udara,'String',dkel_udara); %menampilkan data
kel.udara ke tampilan data masukan tunggal 737. set(handles.kel_tanah,'String',dkel_tanah); %menampilkan data
kel.tanah ke tampilan data masukan tunggal 738. set(handles.activex4,'Value',Suhu); %menampilkan data
suhu ke tampilan animasi 739. set(handles.activex7,'NeedleValue',Kel_udara); %menampilkan data
kel.udara ke tampilan animasi 740. set(handles.activex9,'NeedleValue',Kel_tanah); %menampilkan data
kel.tanah ke tampilan animasi 741. 742. 743. %Tabel : 744. d = [Waktu Tanggal dsuhu dkel_udara dkel_tanah Air_cooler
Humidifier Pompa_air]; % 745. data=get(handles.uitable1,'data'); 746. data(end+1,:)=d; %menampilkan data berikutnya pada tabel 747. set(handles.uitable1,'data',data); %menampilkan data dalam tabel 748. 749. %Save data ke excel 750. data_TA=date; %data_TA akan sesuai dengan tanggal saat ini 751. xlswrite(data_TA,data,'sheet1')%simpan data tabel GUI MATLAB ke
excel 752. 753. %membaca dan mengambil data dari excel 754. data_TA=date; 755. namafile=[data_TA '.xls']; 756. hasil=xlsread(namafile); 757. 758. %Menampilkan pada grafik 759. datanum = str2double(get(handles.uitable1,'Data')); 760. datastr = get(handles.uitable1,'Data'); 761. ugrafik = ugrafik + 1; 762. if (ugrafik < 10) 763. %Nilai sumbu Y saat dibawah 10 764. awaktu = datastr(:,1); 765. asuhu = datanum(:,3); 766. akeludara = datanum(:,4); 767. akeltanah = datanum(:,5); 768.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L43
769. if (ugrafik >= 1) 770. %batas.a & batas.b x axis saat dibawah 10 771. nbatawaktu = datastr(1,1); 772. batawaktu = datenum(datestr(nbatawaktu,
'HH:MM:SS'),'HH:MM:SS'); 773. nbatbwaktu = datastr(end,1); 774. batbwaktu =
datenum(datestr(nbatbwaktu,'HH:MM:SS'),'HH:MM:SS'); 775. handles.suhu_grafik.XLim = [batawaktu batbwaktu]; 776. handles.kudara_grafik.XLim = [batawaktu batbwaktu] 777. handles.ktanah_grafik.XLim = [batawaktu batbwaktu]; 778. end 779. else 780. barisn = barisn + 1; 781. %Nilai sumbu Y saat diatas 10 782. awaktu = datastr(barisn:1:end,1); 783. asuhu = datanum(barisn:1:end,3); 784. akeludara = datanum(barisn:1:end,4); 785. akeltanah = datanum(barisn:1:end,5); 786. 787. % Tetapakan ba & bb x axis saat diatas 10 788. %Batas atas 789. nbatawaktu = datastr(barisn,1); 790. batawaktu = datenum(datestr(nbatawaktu, 'HH:MM:SS'),'HH:MM:SS'); 791. 792. %Batas bawah 793. nbatbwaktu = datastr(end,1); 794. batbwaktu = datenum(datestr(nbatbwaktu, 'HH:MM:SS'),'HH:MM:SS'); 795. handles.suhu_grafik.XLim = [batawaktu batbwaktu]; 796. handles.kudara_grafik.XLim = [batawaktu batbwaktu]; 797. handles.ktanah_grafik.XLim = [batawaktu batbwaktu]; 798. end 799. swaktu = datenum(datestr(awaktu, 'HH:MM:SS'),'HH:MM:SS') 800. 801. %menampilkan 10 data suhu terakhir dalam grafik 802. hold(handles.suhu_grafik, 'on'); 803. stem(handles.suhu_grafik, swaktu, asuhu,'-ko'); 804. datetick(handles.suhu_grafik, 'x', 'HH:MM','keeplimits'); 805. 806. %menampilkan 10 data kel.udara terakhir dalam grafik 807. hold(handles.kudara_grafik, 'on'); 808. stem(handles.kudara_grafik, swaktu, akeludara,'-ko'); 809. datetick(handles.kudara_grafik, 'x', 'HH:MM','keeplimits'); 810. 811. % menampilkan 10 data kel.tanah terakhir dalam grafik 812. hold(handles.ktanah_grafik, 'on'); 813. stem(handles.ktanah_grafik, swaktu, akeltanah,'-ko'); 814. datetick(handles.ktanah_grafik, 'x', 'HH:MM','keeplimits'); 815. 816. %menghitung nilai data suhu max, min dan mean dari seluruh data
yang masuk ke excel 817. suhu_max = max(hasil(:,3)); %max suhu dari kolom 1 pada excel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L44
818. suhu_min = min(hasil(:,3)); %min suhu dari kolom 1 pada excel 819. size_suhu=size(hasil(:,3),1); %menghitung jumlah data suhu dari
kolom 1 pada excel 820. suhu_rata = sum(hasil(:,3))/size_suhu; %mean suhu dari kolom 1
pada excel 821. suhu_rerata=sprintf('%.2f',suhu_rata); %mean suhu dengan 2 angka
dibelakang koma(,) 822. 823. %menampilkan nilai data suhu max, min dan mean dari seluruh data
yang masuk ke excel 824. set(handles.max_suhu,'String',suhu_max); 825. set(handles.min_suhu,'String',suhu_min); 826. set(handles.mean_suhu,'String',suhu_rerata); 827. 828. %menghitung nilai data kel.udara max, min dan mean dari seluruh
data yang masuk ke excel 829. kudara_max = max(hasil(:,4)); 830. kudara_min = min(hasil(:,4)); 831. size_kudara=size(hasil(:,4),1); 832. kudara_rata = sum(hasil(:,4))/size_kudara; 833. kudara_rerata=sprintf('%.2f',kudara_rata); 834. 835. %menampilkan nilai data kel.udara max, min dan mean dari seluruh
data yang masuk ke excel 836. set(handles.max_kudara,'String',kudara_max); 837. set(handles.min_kudara,'String',kudara_min); 838. set(handles.mean_kudara,'String',kudara_rerata); 839. 840. %menghitung nilai data kel.tanah max, min dan mean dari seluruh
data yang masuk ke excel 841. ktan_max = max(hasil(:,5)); 842. ktanah_max=sprintf('%.2f',ktan_max); 843. ktan_min = min(hasil(:,5)); 844. ktanah_min=sprintf('%.2f',ktan_min); 845. size_ktanah=size(hasil(:,5),1); 846. ktanah_rata = sum(hasil(:,5))/size_ktanah; 847. ktanah_rerata=sprintf('%.2f',ktanah_rata); 848. 849. %menampilkan nilai data kel.tanah max, min dan mean dari seluruh
data yang masuk ke excel 850. set(handles.max_ktanah,'String',ktanah_max); 851. set(handles.min_ktanah,'String',ktanah_min); 852. set(handles.mean_ktanah,'String',ktanah_rerata); 853. set(handles.jumlah_data,'String',size_ktanah); %menghitung
dan menampilkan jumlah data yang masuk selama 1 hari 854. 855. End 856. catch 857. end 858. End 859. 860. function timerCallbacka(~,~,hObject)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L45
861. 862. handles = guidata(hObject); 863. stop(handles.a); 864. stop(handles.timer); 865. msgbox('selesai'); 866. 867. % --- Executes on button press in selesai. 868. function selesai_Callback(hObject, eventdata, handles) 869. % hObject handle to selesai (see GCBO) 870. % eventdata reserved - to be defined in a future version of MATLAB 871. % handles structure with handles and user data (see GUIDATA) 872. 873. %stop timer dan stop program gui 874. handles = guidata(hObject); 875. stop(handles.timer); 876. s=handles.s; 877. fclose(s) 878. 879. 880. % --- Executes on button press in pushbutton6. 881. function pushbutton6_Callback(hObject, eventdata, handles) 882. % hObject handle to pushbutton6 (see GCBO) 883. % eventdata reserved - to be defined in a future version of MATLAB 884. % handles structure with handles and user data (see GUIDATA) 885. 886. % Mencari file data excel 887. [filename, pathname] = uigetfile('*.xls','Select your file'); 888. [file] = xlsread([pathname filename]) 889. handles.gui.file=file; 890. fwaktu=(file(:,1)); 891. filewaktu = datestr(fwaktu,'HH:MM:SS') 892. handles.gui.filewaktu=filewaktu; 893. guidata(hObject,handles); 894. 895. 896. function [cari_waktu] = waktuindex(waktu,filewaktu) 897. %UNTITLED Summary of this function goes here 898. % Detailed explanation goes here 899. 900. cari_waktu=1 901. [B] = size(filewaktu,1); 902. for i=1:B; 903. if strcmp(filewaktu(i,:),waktu); 904. cari_waktu=i; 905. end 906. End 907. 908. % --- Executes on button press in pushbutton7. 909. function pushbutton7_Callback(hObject, eventdata, handles) 910. % hObject handle to pushbutton7 (see GCBO) 911. % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L46
912. % handles structure with handles and user data (see GUIDATA) 913. 914. % Cari waktu 1 915. filewaktu=handles.gui.filewaktu; 916. filewaktu=num2str (filewaktu); 917. waktu1=get(handles.datawaktu1,'String'); 918. cari_waktu1 = waktuindex(waktu1,filewaktu) 919. handles.gui.cari_waktu1=cari_waktu1; 920. 921. % Cari waktu 2 922. waktu2=get(handles.datawaktu2,'String'); 923. cari_waktu2 = waktuindex(waktu2,filewaktu) 924. handles.gui.cari_waktu2=cari_waktu2; 925. 926. % POP-UP menu 927. file=handles.gui.file; 928. filewaktu=handles.gui.filewaktu; 929. cari_waktu1=handles.gui.cari_waktu1; 930. cari_waktu2=handles.gui.cari_waktu2; 931. contents = get(handles.pilihandata,'String'); 932. pilihandatavalue = contents{get(handles.pilihandata,'Value')} 933. switch pilihandatavalue 934. case 'Suhu' 935. ds_suhu=(file(cari_waktu1:cari_waktu2,3)) 936. stem(handles.axes6,ds_suhu,'-ko'); 937. axis(handles.axes6,[0 20 0 50]); 938. 939. case 'Kel.Udara' 940. ds_keludara=(file(cari_waktu1:cari_waktu2,4)) 941. stem(handles.axes6,ds_keludara,'-ko'); 942. axis(handles.axes6,[0 20 0 100]); 943. 944. Otherwise 945. ds_keltanah=(file(cari_waktu1:cari_waktu2,5)) 946. stem(handles.axes6,ds_keltanah,'-ko'); 947. axis(handles.axes6,[0 20 0 10]); 948. end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI