PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas segala rahmatNya. 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.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 1
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 faktorfaktor 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
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].
4
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 Outdoor / luar ruangan
Hingga 300 ft. (90 m) 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 RF Data Rate Data Throughput Serial Interface Data Rate Sensitivitas Receiver Kebutuhan Daya Tegangan Input Arus ( transmit, output daya maksimum) Arus (Receive) Arus yang ada (Receiver off) Umum Operasi Frekuensi Band Ukuran Suhu Operasional Pilihan Antena Jaringan dan Keamanan Didukung Jaringan Topologi Jumlah Saluran Saluran Pilihan Alamat
63mW (+18 dBm) 250,000 bps Hingga 35000 bps 1200 bps - 1 Mbps -102 dBm 2.7 - 3.6 V 205mA hingga 220 mA 47 mA hingga 62 mA 15mA ISM 2.4 GHz 0.960 x 1.297 (2.438cm x 3.294cm) -40 sampai 85º C Integrated Whip Antenna, Embedded PCB Antenna, RPSMA atau U.FL Connector Point-to-point, Point-to-multipoint, Peerto-peer, and Mesh 15 Saluran 11 to 25 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 Fungsi
No
Nama
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 ACDC 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
Software Arduino
2.9
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 Fungsi Nama 1 Verify 2 3
Upload New
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. Mengirimkan kode mesin hasil kompilasi ke board arduino Membuat sketch baru
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
Tabel 2.3 (Lanjutan) Keterangan Tombol Pada Tampilan IDE Arduino No Tombol Fungsi Nama 4 5
Open Save
Membuka sketch yang sudah ada 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
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 22
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
Mulai
Inisialisasi Port Mikro
Aktifkan TX
Baca Waktu dan Tanggal
Subrutin Pengiriman Data
Subrutin Penerima Data
Tampilkan Data Dalam Tabel dan Grafik
Selesai Gambar 3.5 Diagram Alir Program Utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
Mulai
Inisialisasi Port Mikro
Aktifkan TX
Atur Waktu Pengiriman Data YA YA Data Waktu
Subrutin Pengiriman Data Waktu
Ulang TIDAK
YA YA Data Tanggal
Subrutin Pengiriman Data Tanggal
Ulang TIDAK
TIDAK YA YA Data Kontrol Status
Subrutin Pengiriman Data Kontrol Status
Ulang TIDAK
TIDAK YA YA Data Suhu
Subrutin Pengiriman Data Suhu
Ulang TIDAK
TIDAK YA Data Kelembaban Udara
YA
Subrutin Pengiriman Data Kelembaban Udara
Ulang TIDAK
TIDAK YA Data Kelembaban Tanah
YA
Subrutin Pengiriman Data Kelembaban Tanah
Ulang
TIDAK YA Kirim Paket Data
Subrutin Pengiriman Paket Data
TIDAK Selesai
Gambar 3.6 Diagram Alir Subrutin Pengiriman Data
TIDAK
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
TIDAK Data Masuk ? YA Ambil Paket Data
Tampilkan Dalam Bentuk Tabel dan grafik
Selesai
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 ?
TIDAK
YA Ambil dan Periksa Data
Format Data sesuai ?
TIDAK
YA Tampilkan Data Ke Tabel dan Grafik
Selesai 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 Jumlah Karakter
5
Kontrol Status
Suhu (oC)
Kelembaban Udara (%)
6
5
5
10
Kelembaban Tanah (%) 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
Terima Data Paket
Tidak Apakah Paket Data Sesuai ?
Ya Simpan Data Paket Dalam Bentuk M.File
Tampilkan Data Dalam Kolom Data Terbaru dan Kedalam Tabel
Ya Tampilkan Data Dalam Bentuk Grafik
Ya Ulang Tidak
SELESAI
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
oC
Suhu 25.5 25 24.5 24 23.5 23 22.5 0
5
10
15
Paket Data
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.
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.19 cek Seluruh konfigurasi XBee
Gambar 3.18 Router DH dan DL
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 2
E #
y T
P 3
z 3
# .
S 3
1 #
1
.
1 P
# 4
U 4
2 4
2 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
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.
39
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
Gambar 4.1 Bentuk Fisik Box Tampak Depan
Antena_XBee
Gambar 4.2 Bentuk Fisik Box Tampak Atas
Gambar 4.3 Bentuk Fisik Box Tampak Samping
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
Waktu
Tanggal
12:44:31 12:44:41 12:44:51 12:45:01 12:45:11 12:45:21 12:45:31 12:45:41 12:45:51 12:46:01 12:46:11
2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29
Tabel 4.1. Komunikasi Data Tanpa Error Air Pompa Suhu Kel. Udara Kel. Tanah Cooler Humidifier Air 32,23 32,25 32,28 32,23 32,30 32,31 32,20 32,32 32,29 32,32 32,31
86,19 86,27 85,53 86,68 86,72 86,12 86,43 86,38 86,02 86,44 86,31
5,00 5,00 5,00 5,00 5,00 5,00 5,00 5,00 5,00 5,00 5,00
1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
Waktu
Tanggal
14:10:09 14:10:19 14:10:29 14:10:39 14:10:59 14:11:09 14:11:29
2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29 2016-06-29
Waktu
Tanggal
14:03:29 14:03:39 14:04:19 14:04:39 14:04:49
016-06-29 016-06-29 016-06-29 2016-06-29 016-06-29
Tabel 4.2. Komunikasi Data Error Air Pompa Air Suhu Kel. Udara Kel. Tanah Cooler Humidifier 32,55 32,52 32,49 32,57 32,50 32,55 32,48
84,17 83,85 84,85 84,26 84,98 84,18 85,32
5,00 5,00 5,00 5,00 5,00 5,00 5,00
1 1 1 1 1 1 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Tabel 4.3 Tampilan Tanggal Error Air Pompa Air Suhu Kel. Udara Kel. Tanah Cooler Humidifier 32,54 32,51 32,50 32,48 32,51
84,00 84,93 84,43 85,25 84,22
5,00 5,00 5,00 5,00 5,00
Gambar 4.10 Penerimaan Data Error
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
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 01 02 03 04 05 06 07 08 09 10
Serial Monitor 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 Air Pompa Suhu Kel. Udara Kel. Tanah Cooler Humidifier Air
Waktu
Tanggal
15:51:07 15:51:17 15:51:27 15:51:37 15:51:47 15:51:57 15:52:07 15:52:17 15:52:27 15:52:37
2016-06-30 2016-06-30 2016-06-30 2016-06-30 2016-06-30 2016-06-30 2016-06-30 2016-06-30 2016-06-30 2016-06-30
33,68 33,88 33,89 33,88 33,85 33,89 33,86 33,83 33,85 33,83
76,08 76,31 76,32 76,37 76,43 76,51 76,43 76,42 76,45 76,45
0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
1 1 1 1 1 1 1 1 1 1
Gambar 4.11. Program Pembacaan Paket Data
Gambar 4.12. Program Menampilkan Data Dalam Tabel
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
Gambar 4.13. Program Simpan Data Tabel ke Excel
Tabel 4.7. Timer Saat Tombol Kontrol Box Ditekan Air
Pompa
Waktu
Tanggal
Suhu
Kel. Udara
Kel. Tanah
Cooler Humidifier
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
Air
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-mmDD#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 Jumlah Karakter
5
10
Kontrol Status
Suhu (oC)
Kelembaban Udara (%)
3
5
5
Kelembaban Tanah (level) 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
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.
57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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]
58
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L1
LAMPIRAN Diagram Alir Subrutin Pengiriman Data
START
Inisialisasi
Terima Data Paket
Tidak Apakah Karakter = “W” Ya
Data Waktu = W,data,#
Ya Ulang Tidak
SELESAI
Gambar L.1 Diagram Alir Subrutin Pengiriman Data Waktu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L2
START
Inisialisasi
Terima Data Paket
Tidak Apakah Karakter = “T” Ya
Data Tanggal = T,data,#
Ya Ulang Tidak
SELESAI
Gambar L.2 Diagram Alir Subrutin Pengiriman Data Tanggal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L3
START
Inisialisasi
Terima Data Paket
Tidak Apakah Karakter = “K” Ya Data Kontrol Status = Ax,By,Cz,#
Ya Tampilkan Data Kontrol Status Di LCD
Ya Ulang Tidak
SELESAI
Gambar L.3 Diagram Alir Subrutin Pengiriman Data Kontrol Status
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L4
START
Inisialisasi
Terima Data Paket
Tidak Apakah Karakter = “S” Ya Data Suhu = S,data,#
Ya Tampilkan Data Suhu Di LCD
Ya Ulang Tidak
SELESAI
Gambar L.4 Diagram Alir Subrutin Pengiriman Data Suhu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L5
START
Inisialisasi
Terima Data Paket
Tidak Apakah Karakter = “U” Ya Data Kelembaban Udara= U,data,#
Ya Tampilkan Data Kelembaban Udara Di LCD
Ya Ulang Tidak
SELESAI
Gambar L.5 Diagram Alir Subrutin Pengiriman Data Kelembaban Udara
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L6
START
Inisialisasi
Terima Data Paket
Tidak Apakah Karakter = “T” Ya Data Kelembaban Tanah= T,data,#
Ya Tampilkan Data Kelembaban Tanah Di LCD
Ya Ulang Tidak
SELESAI
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] Finished Transmission
IDLE Mode
16 bit network Address Known ?
Yes
Yes
Network Known ?
Transmit Data
New Transmision No
No
16 bit network Address Discovery
Network Discovery
Yes
16 bit network Address Discovered ?
No
Yes
Network Discovered ?
No
Data Discanded
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 = Mikrokontroler
[ nil i e
− nil i e en
nil i e
ny ]
�
%
Tabel L.1 Spesifikasi Arduino Mega [13] 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
8. #include 9. #include
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. 111.
void loop () { 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. 183.
// KENDALI KELEMBAPAN UDARA { 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. 202.
} } // KENDALI KELEMBAPAN TANAH { 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 Teknik Elektro Fakultas Sains dan Teknologi 7. % 8. % Universitas Sanata Dharma Yogyakarta 2016 9. % 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 singleton*.
14. 15. 16.
% % %
17. 18. 19.
% % %
20.
%
21. 22.
% %
23.
%
24.
%
25.
%
26.
%
27. 28.
% %
29. 30. 31.
% % % See also: GUIDE, GUIDATA, GUIHANDLES
H = EGA_TA returns the handle to a new EGA_TA or the handle to the existing singleton*. EGA_TA('CALLBACK',hObject,eventData,handles,...) calls the local function named CALLBACK in EGA_TA.M with the given input arguments. EGA_TA('Property','Value',...) creates a new EGA_TA or raises the existing singleton*. Starting from the left, property value pairs are applied to the GUI before EGA_TA_OpeningFcn gets called. An unrecognized property name or invalid value makes property application stop. All inputs are passed to EGA_TA_OpeningFcn via varargin. *See GUI Options on GUIDE's Tools menu. allows only one instance to run (singleton)".
Choose "GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L26
32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80.
% Edit the above text to modify the response to help EGA_TA % Last Modified by GUIDE v2.5 17-Jun-2016 09:22:12 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @EGA_TA_OpeningFcn, ... 'gui_OutputFcn', @EGA_TA_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end
if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
% --- Executes just before EGA_TA is made visible. function EGA_TA_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to EGA_TA (see VARARGIN) % Choose default command line output for EGA_TA handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes EGA_TA wait for user response (see UIRESUME) % uiwait(handles.figure1); delete(instrfindall); % reset port COM yang dipakai s = serial('COM3','BaudRate', 9600); set(s,'Terminator','LF'); set(s,'Timeout',0.2); fopen(s); % buka komunikasi serial
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L27
81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118.
handles.s = s; handles.timer = timer('Period',0.25, ... 'StartDelay',1, ... % 1 detik 'TasksToExecute',inf, ... 'ExecutionMode','fixedSpacing', ... 'TimerFcn',{@timerCallback,hObject}); ... handles.a = timer('Period',1, 'StartDelay',300, ... % 300 detik / 5 menit 'TasksToExecute',inf, ... 'ExecutionMode','fixedSpacing', ... 'TimerFcn',{@timerCallbacka,hObject}); disp('Connected.') guidata(hObject, handles); global ugrafik %Perhitungan jumlah grafik global barisn %Perhitungan jumlah update grafik ugrafik = 0; barisn = 0; % --- Outputs from this function are returned to the command line. function varargout = EGA_TA_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;
function waktu_Callback(hObject, eventdata, handles) % hObject handle to waktu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of waktu as text % str2double(get(hObject,'String')) returns contents of waktu as a double
119. 120. 121. % --- Executes during object creation, after setting all 122. 123. 124. 125.
properties. function waktu_CreateFcn(hObject, eventdata, handles) % hObject handle to waktu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function tanggal_Callback(hObject, eventdata, handles) % hObject handle to tanggal (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of tanggal as text % str2double(get(hObject,'String')) returns contents of tanggal as a double
142. 143. 144. % --- Executes during object creation, after setting all 145. 146. 147. 148.
properties. function tanggal_CreateFcn(hObject, eventdata, handles) % hObject handle to tanggal (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function air_cooler_Callback(hObject, eventdata, handles) % hObject handle to air_cooler (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of air_cooler as text % str2double(get(hObject,'String')) returns contents of air_cooler as a double
164. 165. 166. % --- Executes during object creation, after setting all 167. 168. 169. 170.
properties. function air_cooler_CreateFcn(hObject, eventdata, handles) % hObject handle to air_cooler (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function humidifier_Callback(hObject, eventdata, handles) % hObject handle to humidifier (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of humidifier as text % str2double(get(hObject,'String')) returns contents of humidifier as a double
186. 187. 188. % --- Executes during object creation, after setting all 189. 190. 191. 192.
properties. function humidifier_CreateFcn(hObject, eventdata, handles) % hObject handle to humidifier (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function pompa_air_Callback(hObject, eventdata, handles) % hObject handle to pompa_air (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of pompa_air as text % 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'), 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function suhu_Callback(hObject, eventdata, handles) % hObject handle to suhu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of suhu as text % str2double(get(hObject,'String')) returns contents of suhu as a double
230. 231. 232. % --- Executes during object creation, after setting all 233. 234. 235. 236.
properties. function suhu_CreateFcn(hObject, eventdata, handles) % hObject handle to suhu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
237. 238. % Hint: edit controls usually have a white background on Windows. See ISPC and COMPUTER. 239. % 240. if ispc && isequal(get(hObject,'BackgroundColor'), 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function kel_udara_Callback(hObject, eventdata, handles) % hObject handle to kel_udara (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of kel_udara as text % str2double(get(hObject,'String')) returns contents of kel_udara as a double
252. 253. 254. % --- Executes during object creation, after setting all 255. 256.
properties. function kel_udara_CreateFcn(hObject, eventdata, handles) % hObject handle to kel_udara (see GCBO)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L31
257. % eventdata 258. % handles
reserved - to be defined in a future version of MATLAB empty - handles not created until after all CreateFcns
called
259. 260. % Hint: edit controls usually have a white background on Windows. See ISPC and COMPUTER. 261. % 262. if ispc && isequal(get(hObject,'BackgroundColor'), 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function kel_tanah_Callback(hObject, eventdata, handles) % hObject handle to kel_tanah (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of kel_tanah as text % str2double(get(hObject,'String')) returns contents of kel_tanah as a double
274. 275. 276. % --- Executes during object creation, after setting all 277. 278. 279. 280.
properties. function kel_tanah_CreateFcn(hObject, eventdata, handles) % hObject handle to kel_tanah (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function jumlah_data_Callback(hObject, eventdata, handles) % hObject handle to jumlah_data (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of jumlah_data as text % 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. 300. 301. 302.
function jumlah_data_CreateFcn(hObject, eventdata, handles) % hObject handle to jumlah_data (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function max_suhu_Callback(hObject, eventdata, handles) % hObject handle to max_suhu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of max_suhu as text % str2double(get(hObject,'String')) returns contents of max_suhu as a double
318. 319. 320. % --- Executes during object creation, after setting all 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338.
properties. function max_suhu_CreateFcn(hObject, eventdata, handles) % hObject handle to max_suhu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function min_suhu_Callback(hObject, eventdata, handles) % hObject handle to min_suhu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of min_suhu as text % 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 344. % eventdata 345. % handles
handle to min_suhu (see GCBO) reserved - to be defined in a future version of MATLAB 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'), 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function mean_suhu_Callback(hObject, eventdata, handles) % hObject handle to mean_suhu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of mean_suhu as text % str2double(get(hObject,'String')) returns contents of mean_suhu as a double
361. 362. 363. % --- Executes during object creation, after setting all 364. 365. 366. 367.
properties. function mean_suhu_CreateFcn(hObject, eventdata, handles) % hObject handle to mean_suhu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function max_kudara_Callback(hObject, eventdata, handles) % hObject handle to max_kudara (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of max_kudara as text % 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
386. 387. 388. 389.
properties. function max_kudara_CreateFcn(hObject, eventdata, handles) % hObject handle to max_kudara (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
390. 391. % Hint: edit controls usually have a white background on Windows. See ISPC and COMPUTER. 392. % 393. if ispc && isequal(get(hObject,'BackgroundColor'), 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function min_kudara_Callback(hObject, eventdata, handles) % hObject handle to min_kudara (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of min_kudara as text % str2double(get(hObject,'String')) returns contents of min_kudara as a double
405. 406. 407. % --- Executes during object creation, after setting all 408. 409. 410. 411.
properties. function min_kudara_CreateFcn(hObject, eventdata, handles) % hObject handle to min_kudara (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function mean_kudara_Callback(hObject, eventdata, handles) % hObject handle to mean_kudara (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of mean_kudara as text % 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 430. 431. 432. 433.
properties. function mean_kudara_CreateFcn(hObject, eventdata, handles) % hObject handle to mean_kudara (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function max_ktanah_Callback(hObject, eventdata, handles) % hObject handle to max_ktanah (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of max_ktanah as text % str2double(get(hObject,'String')) returns contents of max_ktanah as a double
449. 450. 451. % --- Executes during object creation, after setting all 452. 453. 454. 455.
properties. function max_ktanah_CreateFcn(hObject, eventdata, handles) % hObject handle to max_ktanah (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 460. 461. 462. 463. 464. 465. 466. 467. 468. 469.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function min_ktanah_Callback(hObject, eventdata, handles) % hObject handle to min_ktanah (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % 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 474. 475. 476. 477.
properties. function min_ktanah_CreateFcn(hObject, eventdata, handles) % hObject handle to min_ktanah (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function mean_ktanah_Callback(hObject, eventdata, handles) % hObject handle to mean_ktanah (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of mean_ktanah as text % str2double(get(hObject,'String')) returns contents of mean_ktanah as a double
493. 494. 495. % --- Executes during object creation, after setting all 496. 497. 498. 499.
properties. function mean_ktanah_CreateFcn(hObject, eventdata, handles) % hObject handle to mean_ktanah (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 504. 505. 506. 507. 508. 509. 510. 511.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% ----------------------------------------------------------------function activex4_Click(hObject, eventdata, handles) % hObject handle to activex4 (see GCBO) % eventdata structure with parameters passed to COM event listener
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L37
512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546.
% handles
structure with handles and user data (see GUIDATA)
% ----------------------------------------------------------------function activex4_Slide(hObject, eventdata, handles) % hObject handle to activex4 (see GCBO) % eventdata structure with parameters passed to COM event listener % handles structure with handles and user data (see GUIDATA)
% ----------------------------------------------------------------function activex4_Change(hObject, eventdata, handles) % hObject handle to activex4 (see GCBO) % eventdata structure with parameters passed to COM event listener % handles structure with handles and user data (see GUIDATA)
% --- Executes during object creation, after setting all properties. function axes10_CreateFcn(hObject, eventdata, handles) % hObject handle to axes10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate axes10
% --- Executes when entered data in editable cell(s) in uitable1. function uitable1_CellEditCallback(hObject, eventdata, handles) % hObject handle to uitable1 (see GCBO) % eventdata structure with the following fields (see MATLAB.UI.CONTROL.TABLE) % Indices: row and column indices of the cell(s) edited % PreviousData: previous data for the cell(s) edited % EditData: string(s) entered by the user % NewData: EditData or its converted form set on the Data property. Empty if Data was not changed % Error: error string when failed to convert EditData to appropriate value for Data % handles structure with handles and user data (see GUIDATA)
547. 548. 549. 550. % --- Executes during object creation, after setting all 551. 552. 553. 554. 555. 556.
properties. function uitable1_CreateFcn(hObject, eventdata, handles) % hObject handle to uitable1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L38
557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568.
% --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes during object creation, after setting all properties. function suhu_grafik_CreateFcn(hObject, eventdata, handles) % hObject handle to suhu_grafik (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589.
properties. function ktanah_grafik_CreateFcn(hObject, eventdata, handles) % hObject handle to ktanah_grafik (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate ktanah_grafik
% --- Executes on selection change in menu_date. function menu_date_Callback(hObject, eventdata, handles) % hObject handle to menu_date (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns menu_date contents as cell array % contents{get(hObject,'Value')} returns selected item from menu_date
590. 591. 592. % --- Executes during object creation, after setting all 593. 594. 595. 596.
properties. function menu_date_CreateFcn(hObject, eventdata, handles) % hObject handle to menu_date (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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. See ISPC and COMPUTER. 602. % 603. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
604. 605. 606. 607. 608. % --- Executes during object creation, after setting all 609. 610. 611. 612.
properties. function namatanggal_CreateFcn(hObject, eventdata, handles) % hObject handle to namatanggal (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function datawaktu1_Callback(hObject, eventdata, handles) % hObject handle to datawaktu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of datawaktu1 as text % str2double(get(hObject,'String')) returns contents of datawaktu1 as a double
628. 629. 630. % --- Executes during object creation, after setting all 631. 632. 633. 634.
properties. function datawaktu1_CreateFcn(hObject, eventdata, handles) % hObject handle to datawaktu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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. 644. 645. 646. 647. 648. 649.
function datawaktu2_Callback(hObject, eventdata, handles) % hObject handle to datawaktu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of datawaktu2 as text % str2double(get(hObject,'String')) returns contents of datawaktu2 as a double
650. 651. 652. % --- Executes during object creation, after setting all 653. 654. 655. 656.
properties. function datawaktu2_CreateFcn(hObject, eventdata, handles) % hObject handle to datawaktu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % 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'), 661. 662. 663. 664. 665. 666. 667. 668. 669. 670. 671. 672. 673. 674. 675. 676. 677. 678. 679.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in ok. function ok_Callback(hObject, eventdata, handles) % hObject handle to ok (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes on selection change in pilihandata. function pilihandata_Callback(hObject, eventdata, handles) % hObject handle to pilihandata (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns pilihandata contents as cell array % 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. See ISPC and COMPUTER. 689. % 690. if ispc && isequal(get(hObject,'BackgroundColor'),
691. 692. 693. 694. 695. 696. 697. 698. 699. 700. 701. 702. 703. 704. 705. 706. 707. 708. 709. 710. 711. 712. 713. 714. 715. 716. 717. 718. 719. 720. 721. 722. 723. 724.
get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in mulai. function mulai_Callback(hObject, eventdata, handles) % hObject handle to mulai (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles = guidata(hObject); %start timer start(handles.timer); start(handles.a); %timer 5 menit set(handles.uitable1, 'Data',[]); %mengosongkan tabel set(handles.uitable1, 'Data', cell(size(get(handles.uitable1,'Data')))); %menampilkan nomor urut data yang masuk
function timerCallback(~,~,hObject) global ugrafik %Perhitungan jumlah grafik global barisn %Perhitungan jumlah update grafik
handles = guidata(hObject); if isfield(handles,'s') try readasync(handles.s); n = handles.s.BytesAvailable; if n > 0 warning('off','MATLAB:serial:fscanf:unsuccessfulRead'); idn = fscanf(handles.s); C = textscan(idn,'%s%s%d%d%d%f%f%f','Delimiter','#'); [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); 728.
kel.udara dengan 2 angka di belakang koma(,) dkel_tanah=sprintf('%.2f',Kel_tanah); kel.tanah dengan 2 angka di belakang koma(,)
%menetapkan data %menetapkan data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L42
729. 730. set(handles.waktu,'String',Waktu); 731. 732. 733. 734. 735. 736. 737. 738. 739. 740.
waktu ke tampilan data masukan tunggal set(handles.tanggal,'String',Tanggal); tanggal ke tampilan data masukan tunggal set(handles.air_cooler,'String',Air_cooler); air cooler ke tampilan data masukan tunggal set(handles.humidifier,'String',Humidifier); humidifier ke tampilan data masukan tunggal set(handles.pompa_air,'String',Pompa_air); pompa air ke tampilan data masukan tunggal set(handles.suhu,'String',dsuhu); suhu ke tampilan data masukan tunggal set(handles.kel_udara,'String',dkel_udara); kel.udara ke tampilan data masukan tunggal set(handles.kel_tanah,'String',dkel_tanah); kel.tanah ke tampilan data masukan tunggal set(handles.activex4,'Value',Suhu); suhu ke tampilan animasi set(handles.activex7,'NeedleValue',Kel_udara); kel.udara ke tampilan animasi set(handles.activex9,'NeedleValue',Kel_tanah); kel.tanah ke tampilan animasi
%menampilkan data %menampilkan data %menampilkan data %menampilkan data %menampilkan data %menampilkan data %menampilkan data %menampilkan data %menampilkan data %menampilkan data %menampilkan data
741. 742. 743. %Tabel : 744. d = [Waktu Tanggal dsuhu dkel_udara dkel_tanah Air_cooler Humidifier Pompa_air]; % data=get(handles.uitable1,'data'); data(end+1,:)=d; %menampilkan data berikutnya pada tabel set(handles.uitable1,'data',data); %menampilkan data dalam tabel
745. 746. 747. 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. 754. 755. 756. 757. 758. 759. 760. 761. 762. 763. 764. 765. 766. 767. 768.
%membaca dan mengambil data dari excel data_TA=date; namafile=[data_TA '.xls']; hasil=xlsread(namafile); %Menampilkan pada grafik datanum = str2double(get(handles.uitable1,'Data')); datastr = get(handles.uitable1,'Data'); ugrafik = ugrafik + 1; if (ugrafik < 10) %Nilai sumbu Y saat dibawah 10 awaktu = datastr(:,1); asuhu = datanum(:,3); akeludara = datanum(:,4); akeltanah = datanum(:,5);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L43
769. 770. 771. 772. 773. 774. 775. 776. 777. 778. 779. 780. 781. 782. 783. 784. 785. 786. 787. 788. 789. 790. 791. 792. 793. 794. 795. 796. 797. 798. 799. 800. 801. 802. 803. 804. 805. 806. 807. 808. 809. 810. 811. 812. 813. 814. 815. 816. 817.
if (ugrafik >= 1) %batas.a & batas.b x axis saat dibawah 10 nbatawaktu = datastr(1,1); batawaktu = datenum(datestr(nbatawaktu, 'HH:MM:SS'),'HH:MM:SS'); nbatbwaktu = datastr(end,1); batbwaktu = datenum(datestr(nbatbwaktu,'HH:MM:SS'),'HH:MM:SS'); handles.suhu_grafik.XLim = [batawaktu batbwaktu]; handles.kudara_grafik.XLim = [batawaktu batbwaktu] handles.ktanah_grafik.XLim = [batawaktu batbwaktu]; end else barisn = barisn + 1; %Nilai sumbu Y saat diatas 10 awaktu = datastr(barisn:1:end,1); asuhu = datanum(barisn:1:end,3); akeludara = datanum(barisn:1:end,4); akeltanah = datanum(barisn:1:end,5); % Tetapakan ba & bb x axis saat diatas 10 %Batas atas nbatawaktu = datastr(barisn,1); batawaktu = datenum(datestr(nbatawaktu, 'HH:MM:SS'),'HH:MM:SS'); %Batas bawah nbatbwaktu = datastr(end,1); batbwaktu = datenum(datestr(nbatbwaktu, 'HH:MM:SS'),'HH:MM:SS'); handles.suhu_grafik.XLim = [batawaktu batbwaktu]; handles.kudara_grafik.XLim = [batawaktu batbwaktu]; handles.ktanah_grafik.XLim = [batawaktu batbwaktu]; end swaktu = datenum(datestr(awaktu, 'HH:MM:SS'),'HH:MM:SS') %menampilkan 10 data suhu terakhir dalam grafik hold(handles.suhu_grafik, 'on'); stem(handles.suhu_grafik, swaktu, asuhu,'-ko'); datetick(handles.suhu_grafik, 'x', 'HH:MM','keeplimits'); %menampilkan 10 data kel.udara terakhir dalam grafik hold(handles.kudara_grafik, 'on'); stem(handles.kudara_grafik, swaktu, akeludara,'-ko'); datetick(handles.kudara_grafik, 'x', 'HH:MM','keeplimits'); % menampilkan 10 data kel.tanah terakhir dalam grafik hold(handles.ktanah_grafik, 'on'); stem(handles.ktanah_grafik, swaktu, akeltanah,'-ko'); datetick(handles.ktanah_grafik, 'x', 'HH:MM','keeplimits'); %menghitung nilai data suhu max, min dan mean dari seluruh data yang masuk ke excel suhu_max = max(hasil(:,3)); %max suhu dari kolom 1 pada excel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L44
818. suhu_min = min(hasil(:,3)); 819. size_suhu=size(hasil(:,3),1); 820. 821.
%min suhu dari kolom 1 pada excel %menghitung jumlah data suhu dari
kolom 1 pada excel suhu_rata = sum(hasil(:,3))/size_suhu; pada excel suhu_rerata=sprintf('%.2f',suhu_rata); dibelakang koma(,)
%mean suhu dari kolom 1 %mean suhu dengan 2 angka
822. 823. %menampilkan nilai data suhu max, min dan mean dari seluruh data 824. 825. 826. 827. 828.
yang masuk ke excel set(handles.max_suhu,'String',suhu_max); set(handles.min_suhu,'String',suhu_min); set(handles.mean_suhu,'String',suhu_rerata); %menghitung nilai data kel.udara max, min dan mean dari seluruh data yang masuk ke excel kudara_max = max(hasil(:,4)); kudara_min = min(hasil(:,4)); size_kudara=size(hasil(:,4),1); kudara_rata = sum(hasil(:,4))/size_kudara; kudara_rerata=sprintf('%.2f',kudara_rata);
829. 830. 831. 832. 833. 834. 835. %menampilkan nilai data kel.udara max, min dan mean dari seluruh 836. 837. 838. 839. 840.
data yang masuk ke excel set(handles.max_kudara,'String',kudara_max); set(handles.min_kudara,'String',kudara_min); set(handles.mean_kudara,'String',kudara_rerata); %menghitung nilai data kel.tanah max, min dan mean dari seluruh data yang masuk ke excel ktan_max = max(hasil(:,5)); ktanah_max=sprintf('%.2f',ktan_max); ktan_min = min(hasil(:,5)); ktanah_min=sprintf('%.2f',ktan_min); size_ktanah=size(hasil(:,5),1); ktanah_rata = sum(hasil(:,5))/size_ktanah; ktanah_rerata=sprintf('%.2f',ktanah_rata);
841. 842. 843. 844. 845. 846. 847. 848. 849. %menampilkan nilai data kel.tanah max, min dan mean dari seluruh 850. 851. 852. 853.
data yang masuk ke excel set(handles.max_ktanah,'String',ktanah_max); set(handles.min_ktanah,'String',ktanah_min); set(handles.mean_ktanah,'String',ktanah_rerata); set(handles.jumlah_data,'String',size_ktanah); dan menampilkan jumlah data yang masuk selama 1 hari
854. 855. End 856. catch 857. end 858. End 859. 860. function timerCallbacka(~,~,hObject)
%menghitung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L45
861. 862. 863. 864. 865. 866. 867. 868. 869. 870. 871. 872. 873. 874. 875. 876. 877. 878. 879. 880. 881. 882. 883. 884. 885. 886. 887. 888. 889. 890. 891. 892. 893. 894. 895. 896. 897. 898. 899. 900. 901. 902. 903. 904. 905. 906. 907. 908. 909. 910. 911.
handles = guidata(hObject); stop(handles.a); stop(handles.timer); msgbox('selesai'); % --- Executes on button press in selesai. function selesai_Callback(hObject, eventdata, handles) % hObject handle to selesai (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %stop timer dan stop program gui handles = guidata(hObject); stop(handles.timer); s=handles.s; fclose(s)
% --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Mencari file data excel [filename, pathname] = uigetfile('*.xls','Select your file'); [file] = xlsread([pathname filename]) handles.gui.file=file; fwaktu=(file(:,1)); filewaktu = datestr(fwaktu,'HH:MM:SS') handles.gui.filewaktu=filewaktu; guidata(hObject,handles);
function [cari_waktu] = waktuindex(waktu,filewaktu) %UNTITLED Summary of this function goes here % Detailed explanation goes here cari_waktu=1 [B] = size(filewaktu,1); for i=1:B; if strcmp(filewaktu(i,:),waktu); cari_waktu=i; end End % --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles) % hObject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L46
912. 913. 914. 915. 916. 917. 918. 919. 920. 921. 922. 923. 924. 925. 926. 927. 928. 929. 930. 931. 932. 933. 934. 935. 936. 937. 938. 939. 940. 941. 942. 943. 944. 945. 946. 947. 948.
% handles
structure with handles and user data (see GUIDATA)
% Cari waktu 1 filewaktu=handles.gui.filewaktu; filewaktu=num2str (filewaktu); waktu1=get(handles.datawaktu1,'String'); cari_waktu1 = waktuindex(waktu1,filewaktu) handles.gui.cari_waktu1=cari_waktu1; % Cari waktu 2 waktu2=get(handles.datawaktu2,'String'); cari_waktu2 = waktuindex(waktu2,filewaktu) handles.gui.cari_waktu2=cari_waktu2; % POP-UP menu file=handles.gui.file; filewaktu=handles.gui.filewaktu; cari_waktu1=handles.gui.cari_waktu1; cari_waktu2=handles.gui.cari_waktu2; contents = get(handles.pilihandata,'String'); pilihandatavalue = contents{get(handles.pilihandata,'Value')} switch pilihandatavalue case 'Suhu' ds_suhu=(file(cari_waktu1:cari_waktu2,3)) stem(handles.axes6,ds_suhu,'-ko'); axis(handles.axes6,[0 20 0 50]); case 'Kel.Udara' ds_keludara=(file(cari_waktu1:cari_waktu2,4)) stem(handles.axes6,ds_keludara,'-ko'); axis(handles.axes6,[0 20 0 100]); Otherwise ds_keltanah=(file(cari_waktu1:cari_waktu2,5)) stem(handles.axes6,ds_keltanah,'-ko'); axis(handles.axes6,[0 20 0 10]); end