Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
TUGAS AKHIR
SISTEM MONITOR JARAK JAUH
PADA KUMBUNG JAMUR TIRAM
BERBASIS RASPBERRY PI
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh:
ELISABET YUSTIA TRISNANI
NIM : 145114023
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
FINAL PROJECT
OYSTER MUSHROOM’S GREENHOUSE
REMOTE MONITORING SYSTEM
BASED ON RASPBERRY PI
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
ELISABET YUSTIA TRISNANI
NIM : 145114023
DEPARTEMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Pembimbing
LEMBAR PERSETUJUAI\I
TUGAS AKHIR
SISTEM MONITOR JARAK JAUH
PADA KUMBUNG JAMUR TIRAM
BERBASIS RASPBERRY PI
111
,@s* *S
RA!,!. l;,;S Yl_i-" \lr$lo'
(OYSTERMUSHR ,S GREENHOUSE
SYSTEM
Martanto, S.T., M.T. Tanggal: B0klober 2ol8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Kefua
Sekretaris
Anggota
LEMBAR PENGESAHAN
TUGAS AKHIR
SISTEM MOI{ITOR JARAK JAUHPADA KUMBUNG JAMUR TIRAM
BERBASIS RASPBBRRY PI(OYSTER MUSHROOM' S GREENHOUSE
REMOTE MONITORING SYSTEMBASED ON RASPBERRY PI)
disusun oleh :
ELISABET \TUSTIA TRISNANI
NIM z 145114423
Telah dipertahankan didepan tim pengujipada tanggal 3 Oktober 2018
dan dinyatakan mernenuhi syarat
Susunan Tim Penguji
Nama Lengkap
Ir. Th. Prima Ari Setiyani, M"T.
Martanto, S.T., M.T.
Petrus Setyo Prabowo, S.T., M.T.
Yogyakarta,{ Oktober 20 1 8
Fakultas Sains dan Teknologi
niversitas Sanata Dharma
ed^-&-,udi Mungkasi, S.Si., M.Math.Sc., Ph.D.
1V
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya
atau bagian karya orillg lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka
sebagaimana layaknya karya ilmiah.
Yogyakarta, 8 Oktober 2018
A n 0-'/Vmb-v/f-
Elisabet Yustia Trisnani
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
HALAMAN PERSEMBAHAN
(Reckless Love) (Songwriters: Caleb Culver / Cory Asbury / Ran Jackson)
Before I spoke a word, You were singing over me
You have been so, so good to me
Before I took a breath, You breathed Your life in me
You have been so, so kind to me
When I was Your foe, still Your love fought for me
You have been so, so good to me
When I felt no worth, You paid it all for me
You have been so, so kind to me
There's no shadow You won't light up
Mountain You won't climb up
Coming after me
There's no wall You won't kick down
Lie You won't tear down
Coming after me
Oh, the overwhelming, never-ending, reckless love of God
Oh, it chases me down, fights 'til I'm found, leaves the ninety-nine
I couldn't earn it, and I don't deserve it, still, You give Yourself away
Oh, the overwhelming, never-ending, reckless love of God
I would love to present this final project to:
My Mom and Dad
My sisters, Sintikhe and Ruth
My Other Half
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR PER}TYATAAN PARSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADAMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:
NaMa : ELISABET YUSTIA TRISNANI
Nomor Mahasiswa : 145n4A23
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas
Sanata Dharma karya ilmiah saya yang berjudul :
SISTBM MONITOR JARAK JAUH
PADA KUMBUNG JAMUR TIRAM
BERBASIS RASPBERRY PI
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk
media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas,
dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa
perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap
mencantumkan nama saya sebagai penulis.
Demikian pemyataan ini yang saya buat dengan sebenamya.
Yogyakarta 8 Oktober 2018
Elisabet Yustia Trisnani
vll
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Dalam sektor pertanian masih banyak petani jamur yang melakukan pembudidayaan
secara manual. Faktor lingkungan yang mempengaruhi pertumbuhan jamur tiram
diantaranya adalah suhu dan kelembaban. Terdapat penelitian yang menjaga suhu dan
kelembaban pada kumbung jamur tiram menggunakan Zelio Smart Relay. Zelio ini
mengontrol keluaran aktuator secara otomatis berdasar suhu dan kelembaban yang terjadi,
namun sistem kendali dalam penelitian tersebut masih bersifat lokal. Oleh karena itu pada
penelitian ini dibuat sistem yang dapat melakukan setting, monitoring dan logging secara
jarak jauh.
Sistem jarak jauh yang dibuat adalah pengembangan dari metode sistem kendali lokal
Zelio tersebut. Pengembangan ini adalah berbasis Raspberry Pi 3 melalui GUI. Sistem
memiliki empat menu yaitu menu utama, setting, monitoring dan logging. Menu utama untuk
membuka submenu. Dalam menu setting, terdapat pengaturan nilai setpoint suhu dan
kelembaban, kondisi on/off aktuator, pembacaan setpoint sistem lokal, dan tombol enable.
Menu monitoring akan menampilkan nilai suhu dan kelembaban, serta status aktuator
sekarang berdasar pada interval waktu. Dalam menu logging, terdapat pilihan interval
logging data, penyimpanan data secara otomatis dalam format csv, fasilitas untuk membuka
file csv, dan menampilkan plot dalam bentuk grafik.
Sistem jarak jauh ini telah berhasil diimplementasikan dan diuji. Komunikasi
pertukaran data secara jarak jauh antara Raspberry Pi dan Zelio menggunakan jaringan LAN
atau TCP/IP berhasil dilakukan. Dari pengujian, sistem berhasil menjalankan fitur dalam
menu setting yaitu dapat mengatur nilai setpoint suhu dan kelembaban, mengatur kondisi
on/off aktuator, menampilkan setpoint sistem lokal dan mengatur kondisi on/off tombol
enable dari GUI. Dimenu monitoring, sistem dapat menampilkan nilai suhu dan kelembaban,
serta status aktuator sekarang berdasar pada interval waktu 5, 10 dan 15 detik. Dimenu
logging, data berhasil disimpan dalam format csv berdasar pada interval logging 5, 15 dan
20 data. Penamaan file otomatis berdasar tanggal berhasil dilakukan, file csv berhasil dibuka,
dan berhasil menampilkan plot dalam grafik.
Kata Kunci: Setting, Monitoring, Logging, GUI, Raspberry Pi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
In the agricultural sector there are still many mushroom farmers who do manual
cultivation. Environmental factors that influence the growth of oyster mushrooms include
temperature and humidity. There is a research that maintain the temperature and humidity in
oyster mushrooms’ greenhouse based on Zelio Smart Relay. This Zelio automatically
controls the actuator output based on the temperature and humidity that occurred at that time,
but the control system in that research is still a local system. Therefore, this research created
a system that can do remote setting, monitoring and logging.
The remote system created was the development of Zelio's local control system
method. This development is based on Raspberry Pi 3 through a user-friendly GUI. The
system has four menus, namely the main menu, setting, monitoring and logging. The
function of main menu is to open the submenus. In the setting menu, there are some setting
that can be done, those are set point temperature and humidity setting, on/off actuator
condition setting, enable button setting so that the system can be set from the local/GUI, and
also local system set point reading. The monitoring menu will display temperature and
humidity values, as well as current actuator status based on time interval. In the logging
menu, data can be stored automatically in csv format based on interval logging data, there is
also a facility to open csv files, and to display plot in graphic.
This remote system has been successfully implemented and tested. Communication of
remote data exchange between Raspberry Pi and Zelio using LAN or TCP / IP networks was
successfully carried out. From the testing, the system managed to run the features in the
setting menu which is able to set the temperature and humidity set point values, set the on/off
condition of the actuator, display the local system set point and set the on/off condition of
the enable button in the GUI. In the monitoring menu, the system can display current
temperature and humidity values, and current actuator status based on 5, 10 and 15 seconds
time intervals. In the logging menu, the data were successfully saved in csv format based on
5, 15 and 20 data logging intervals. Automatic file naming based on date was successfully
done, the csv file was successfully opened, and data was successfully displayed in graphical
plot.
Keywords: Setting, Monitoring, Logging, GUI, Raspberry Pi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATAPENGANTAR
Puji syukur kepada Allah Tri Tunggal Maha Kudus atas segala anugerah, kemurahan
dan kekuatan yang telah diberikan kepada penulis, sehingga penulis bisa menyelesaikan
laporan Tugas Akhir ini dengan baik.
Dalam penulisan Tugas Akhir ini, penulis mendapatkan bantuan, bimbingan, dan
motivasi dari berbagai pihak. Oleh karena itu, penulis ingin mengucapkan terima kasih
kepada:
1. Petrus Setyo Prabowo S.T., M.T selaku Ketua Program Studi Teknik Elekfo,
Fakultas Sains dan Teknologi Universitas Sanata Dharma.
2. Marlanto, S.T, M.T selaku dosen pembimbing yang telah memberikan dorongan,
saran, kritik, ide, dan arahan dalam penyusunan laporan Tugas Akhir ini.
3. Seluruh dosen dan laboran Teknik Elektro yang telah membantu penulis dalam
menyelesaikan laporan Tugas Akhfu ini.
4. Teman-teman mahasiswa Teknik Elekho, khususnya angkatan 2014 atas canda
taw4 kebersamaan dan persahabatan selama menjalani studi.
Penulis menyadari bahwa laporan Tugas Akhir ini masih memiliki kekurangan. Oleh
karena itu, penulis menerima saran dan kritik yang membangun agar laporan ini menjadi
lebih baik. Semoga penelitian ini dapat dikembangkan dan bermanfaat bagi orang lain.
Yogyakarta, 8 Oklober 2018
Penulis,
Elisabet Yustia Trisnani
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
DAFTAR ISI
Halaman Sampul (Bahasa Indonesia) ..................................................................................... i
Halaman Sampul (Bahasa Inggris) ........................................................................................ ii
Halaman Persetujuan ............................................................................................................ iii
Halaman Pengesahan ............................................................................................................ iv
Pernyataan Keaslian Karya .................................................................................................... v
Halaman Persembahan ......................................................................................................... vi
Lembar Pernyataan Persetujuan Publikasi ........................................................................... vi
Intisari ................................................................................................................................. viii
Abstrak ................................................................................................................................. ix
Kata Pengantar ....................................................................................................................... x
Daftar Isi ............................................................................................................................... xi
Daftar Gambar .................................................................................................................... xiv
Daftar Tabel ...................................................................................................................... xviii
BAB I PENDAHULUAN ..................................................................................................... 1
1.1.Latar Belakang ............................................................................................................. 1
1.2.Tujuan dan Manfaat ..................................................................................................... 2
1.3.Batasan Masalah .......................................................................................................... 3
1.4.Metodologi Penelitian .................................................................................................. 3
BAB II DASAR TEORI ........................................................................................................ 6
2.1. Jamur Tiram ................................................................................................................ 6
2.1.1. Klasifikasi Jamur Tiram ....................................................................................... 6
2.1.2. Syarat Tumbuh Kembang Jamur Tiram ............................................................... 7
2.2. Raspberry Pi ................................................................................................................ 7
2.2.1. Arsitekture Hardware Raspberry Pi ..................................................................... 7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
2.2.2. Sistem Operasi di Raspberry ................................................................................ 9
2.2.3. Pemrograman Raspberry Pi 3............................................................................... 9
2.2.4. GUI Raspberry Pi 3 .............................................................................................. 9
2.3. Zelio Smart Relay ..................................................................................................... 10
2.3.1 Function Logic Diagram ..................................................................................... 11
2.3.2. Input/Output Data Words Exchange .................................................................. 15
2.3.3. Modbus TCP/IP .................................................................................................. 16
2.4. Network Switch ........................................................................................................ 17
2.5. Kabel HDMI to VGA ............................................................................................... 18
2.6. Monitor ..................................................................................................................... 18
2.7. Keyboard ................................................................................................................... 19
2.8. Mouse ........................................................................................................................ 19
2.9 Persamaan Perhitungan Rata-Rata ............................................................................. 20
BAB III RANCANGAN PENELITIAN ............................................................................. 21
3.1. Model Sistem ............................................................................................................ 22
3.2. Kebutuhan Perangkat ................................................................................................ 22
3.2.1. Kebutuhan Perangkat Keras ............................................................................... 23
3.2.2. Kebutuhan Perangkat Lunak .............................................................................. 23
3.3. Perancangan Perangkat Keras ................................................................................... 24
3.4. Perancangan Perangkat Lunak .................................................................................. 24
3.4.1. Perancangan Data Antarmuka ............................................................................ 24
3.4.2. Perancangan GUI Tkinter .................................................................................. 30
3.4.3. Perancangan Menu Utama ................................................................................. 30
3.4.4. Perancangan Menu Setting ................................................................................. 33
3.4.5. Perancangan Menu Monitoring .......................................................................... 37
3.4.6. Perancangan Menu Loging ................................................................................ 41
BAB IV HASIL DAN PEMBAHASAN ............................................................................. 44
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
4.1. Implementasi Sistem ................................................................................................ 44
4.1.1. Perubahan Sensor ............................................................................................... 44
4.1.2. Implementasi Plant Sistem ................................................................................. 45
4.1.3. Implementasi GUI Tkinter ................................................................................. 46
4.2. Pengujian dan Analisis Data Sistem ......................................................................... 49
4.2.1. Pengujian dan Analisis Menu Utama ................................................................. 49
4.2.2. Pengujian dan Analisis Menu Setting ................................................................ 50
4.2.3. Pengujian dan Analisis Menu Monitoring ......................................................... 64
4.2.4. Pengujian dan Analisis Menu Logging .............................................................. 70
4.3. Pembahasan Perangkat Lunak .................................................................................. 82
4.3.1. Pembahasan Program di Zelio Soft .................................................................... 82
4.3.2. Pembahasan Rancangan IP Address .................................................................. 84
4.3.3. Pembahasan pyModbus TCP ............................................................................. 86
4.3.4. Pembahasan Program Perangkat Lunak ............................................................. 87
BAB V KESIMPULAN .................................................................................................... 105
5.1. Kesimpulan ............................................................................................................. 105
5.2. Saran ....................................................................................................................... 106
DAFTAR PUSTAKA ........................................................................................................ 107
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
DAFTAR GAMBAR
Halaman
Gambar 1.1 Diagram Perancangan Sistem ........................................................................... 4
Gambar 2.1 Bentuk Fisik Jamur Tiram ................................................................................. 6
Gambar 2.2 Raspberry Pi 3 ................................................................................................... 8
Gambar 2.3 GPIO Raspberry Pi 3 ......................................................................................... 8
Gambar 2.4 Logo Python ...................................................................................................... 9
Gambar 2.5 Zelio Smart Relay ............................................................................................ 10
Gambar 2.6 Tipe Discrete Input .......................................................................................... 11
Gambar 2.7 Tipe Analog Input ............................................................................................ 12
Gambar 2.8 Tipe Input Integer ............................................................................................ 12
Gambar 2.9 Tipe Output Integer ........................................................................................ 12
Gambar 2.10 Discrete Output ............................................................................................. 12
Gambar 2.11 Logic Functions ............................................................................................. 13
Gambar 2.12 Word to Bit Conversion ................................................................................. 13
Gambar 2.13 Bit to Word Conversion ................................................................................. 14
Gambar 2.14 Multiplexing .................................................................................................. 14
Gambar 2.15 Up/Down Counter .......................................................................................... 14
Gambar 2.16 Window Edit .................................................................................................. 15
Gambar 2.17 Input/Output Extension Modul Komunikasi Zelio ........................................ 16
Gambar 2.18 Modul Modbus TCP Zelio ............................................................................. 17
Gambar 2.19 Network Switch dan Pengiriman data ........................................................... 17
Gambar 2.20 Kabel HDMI to VGA .................................................................................... 18
Gambar 2.21 Monitor .......................................................................................................... 18
Gambar 2.22 Keyboard........................................................................................................ 19
Gambar 2.23 Mouse ............................................................................................................ 19
Gambar 3.1 Plant Sistem Monitoring Kumbung Jamur ..................................................... 21
Gambar 3.2 Model Sistem Monitor dan Kontrol Kumbung Jamur Tiram .......................... 22
Gambar 3.3 Diagram Data Read Antarmuka ...................................................................... 28
Gambar 3.4 Diagram Data Write Antarmuka ..................................................................... 29
Gambar 3.5 Fitur Tkinter GUI ............................................................................................ 30
Gambar 3.6 Halaman Menu Utama .................................................................................... 31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
Gambar 3.7 Diagram Alir Utama ............................................................................................ 32
Gambar 3.8 Halaman Menu Setting ................................................................................... 33
Gambar 3.9 Subrutin Proses Setpoint Suhu Dan Kelembaban ........................................... 35
Gambar 3.10 Subrutin Proses Pembacaan Setpoint Suhu Dan Kelembaban ..................... 35
Gambar 3.11 Subrutin Proses Set Aktuator ......................................................................... 36
Gambar 3.12 Subrutin Proses Pengaturan Tombol Enable ................................................ 37
Gambar 3.13 Halaman Menu Monitor ............................................................................... 38
Gambar 3.14 Subrutin Proses Monitor Suhu ...................................................................... 39
Gambar 3.15 Subrutin Proses Monitor Kelembaban ........................................................... 39
Gambar 3.16 Subrutin Proses Status Aktuator ................................................................... 40
Gambar 3.17 Subrutin Proses Interval Monitor Data ......................................................... 41
Gambar 3.18 Halaman Menu Logging ............................................................................... 42
Gambar 3.19 Subrutin Proses Data Logging ....................................................................... 43
Gambar 4.1 Potensiometer ................................................................................................. 44
Gambar 4.2 Plant Sistem .................................................................................................... 45
Gambar 4.3 Menu Utama ................................................................................................... 47
Gambar 4.4 Menu Setting ................................................................................................... 47
Gambar 4.5 Menu Monitor ................................................................................................. 48
Gambar 4.6 Menu Logging ................................................................................................ 48
Gambar 4.7 LED Tombol Enable ....................................................................................... 64
Gambar 4.8 LED dan Tombol ............................................................................................ 64
Gambar 4.9 Interval Waktu 5 detik ................................................................................... 67
Gambar 4.10 Interval Waktu 10 detik ................................................................................ 68
Gambar 4.11 Interval Waktu 15 detik ................................................................................ 69
Gambar 4.12 Pemilihan Interval Waktu ............................................................................. 70
Gambar 4.13 Penyimpanan Nama File Otomatis ............................................................... 71
Gambar 4.14 Interval 5 Data 5 Detik ................................................................................. 72
Gambar 4.15 Interval 15 Data 5 Detik .............................................................................. 72
Gambar 4.16 Interval 20 Data 5 Detik .............................................................................. 73
Gambar 4.17 Interval 5 Data 10 Detik .............................................................................. 73
Gambar 4.18 Interval 5 Data 15 Detik .............................................................................. 74
Gambar 4.19 Interval 15 Data 10 Detik ............................................................................ 75
Gambar 4.20 Interval 15 Data 15 Detik ............................................................................ 75
Gambar 4.21 Interval 20 Data 10 Detik ............................................................................. 76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
Gambar 4.22 Interval 20 Data 15 Detik 10 ........................................................................ 76
Gambar 4.23 Perubahan Pemilihan Data Turun .................................................................. 77
Gambar 4.24 Dialog Window Open File ........................................................................... 78
Gambar 4.25 Open File CSV .............................................................................................. 79
Gambar 4.26 Dialog Window Tampilkan Plot ................................................................... 79
Gambar 4.27 Tampilan Plot Dalam Grafik ........................................................................ 80
Gambar 4.28 Tampilan Hasil Entry Data Plot .................................................................... 81
Gambar 4.29 Tampilan Hasil Tombol Kanan Plot ............................................................ 81
Gambar 4.30 Tampilan Hasil Tombol Kiri Plot ................................................................. 82
Gambar 4.31 Program Sistem Jarak Jauh di Zelio .............................................................. 83
Gambar 4.32 Program Sistem Lokal di Zelio ..................................................................... 83
Gambar 4.34 Konfigurasi IP Address Raspberry Pi ........................................................... 85
Gambar 4.35 IP Address Statis Raspberry Pi ..................................................................... 85
Gambar 4.36 Konfigurasi IP Address di Zelio ................................................................... 85
Gambar 4.37 Init Pemrograman Modbus TCP ................................................................... 86
Gambar 4.38 Pemanggilan Modul Modbus TCP ............................................................... 86
Gambar 4.39 Pemanggilan Modul Program ....................................................................... 87
Gambar 4.40 Pemanggilan Fungsi Untuk Frame ................................................................ 87
Gambar 4.41 Pemanggilan Fungsi Setpoint Suhu .............................................................. 88
Gambar 4.42 Pemanggilan Fungsi Setpoint Kelembaban .................................................. 89
Gambar 4.43 Pemanggilan Fungsi Tombol Enable ............................................................ 89
Gambar 4.44 Pemanggilan Fungsi Set Pemanas ................................................................ 90
Gambar 4.45 Pemanggilan Fungsi Set Pompa ................................................................... 90
Gambar 4.46 Pemanggilan Fungsi Kondisi On/Off Aktuator ............................................ 91
Gambar 4.47 Init Variable Monitoring ............................................................................... 91
Gambar 4.48 Pemanggilan Fungsi Pemilihan Interval Waktu ........................................... 92
Gambar 4.49 Pemangilan Fungsi Menampilkan File ......................................................... 92
Gambar 4.50 Pemanggilan Fungsi Menampilkan Plot ....................................................... 93
Gambar 4.51 Pemanggilan Fungsi Nilai Plot ..................................................................... 93
Gambar 4.52 Pemanggilan Fungsi Plot Kanan dan Kiri .................................................... 93
Gambar 4.53 Init Variable Logging ................................................................................... 94
Gambar 4.54 Pemanggilan Fungsi Interval Logging .......................................................... 94
Gambar 4.55 Init Waktu ..................................................................................................... 95
Gambar 4.56 Program Penyimpanan Berdasar Tanggal .................................................... 95
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
Gambar 4.57 Program Pembacaan Setpoint Suhu dan Kelembaban Lokal ....................... 96
Gambar 4.58 Program Interval Waktu Nilai Suhu dan Kelembaban ................................. 96
Gambar 4.59 Program Interval Waktu Status Aktuator ..................................................... 97
Gambar 4.60 Program Interval Logging dan Perhitungan Rataan ..................................... 98
Gambar 4.61 Program Penyimpanan Data ......................................................................... 98
Gambar 4.62 Tampilan GUI Menu Utama ......................................................................... 99
Gambar 4.63 Program GUI Menu Utama ........................................................................... 99
Gambar 4.64 Tampilan GUI Setting ................................................................................. 100
Gambar 4.65 Program GUI Menu Setting ........................................................................ 101
Gambar 4.66 Program Button Menu Setting .................................................................... 101
Gambar 4.67 Tampilan GUI Menu Monitoring ............................................................... 102
Gambar 4.68 Program GUI Menu Monitoring ................................................................. 102
Gambar 4.69 Program Radiobutton Monitoring ............................................................... 103
Gambar 4.70 Tampilan GUI Menu Logging .................................................................... 103
Gambar 4.71 Tampilan Window Plot ............................................................................... 104
Gambar 4.72 Program GUI Menu Logging ..................................................................... 104
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
DAFTAR TABEL
Halaman
Tabel 2.1 Tabel model Raspberry Pi .................................................................................... 7
Tabel 2.2 Input/Output Zelio dan Modbus Register ........................................................... 16
Tabel 3.1 Tabel Read/Write Data Antarmuka ..................................................................... 25
Tabel 3.2 Modbus Register Input ....................................................................................... 25
Tabel 3.3 Perancangan Write Data Register 18 ................................................................... 25
Tabel 3.4 Tabel 3.4 Modbus Register Output ..................................................................... 26
Tabel 3.5 Tabel 3.5 Perancangan Write Data Register 16................................................... 26
Tabel 3.6 Perancangan Write Data Register 17 .................................................................. 27
Tabel 4.1 Keterangan Plant Sistem ..................................................................................... 45
Tabel 4.2 Hasil Pengujian Menu Utama ............................................................................. 49
Tabel 4.3 Data Pengujian Setpoint Suhu ................................................................................ 50
Tabel 4.4 Hasil Pengujian Setpoint Suhu ........................................................................... 51
Tabel 4.5 Pengujian Setpoint Kelembaban ......................................................................... 52
Tabel 4.6 Hasil Uji Setpoint Kelembaban .......................................................................... 53
Tabel 4.7 Data Pengujian Pembacaan Setpoint Suhu ........................................................ 55
Tabel 4.8 Hasil Uji Pembacaan Setpoint Suhu dan Kelembaban ....................................... 55
Tabel 4.9 Data Pengujian Pembacaan Setpoint Kelembaban ............................................. 56
Tabel 4.10 Set Pemanas Kondisi Awal On ........................................................................ 57
Tabel 4.11 Set Pemanas Kondisi Awal Off ........................................................................ 57
Tabel 4.12 Hasil Uji Set Pemanas Kondisi Awal 1 ............................................................. 58
Tabel 4.13 Hasil Uji Set Pemanas Kondisi Awal 0 ............................................................ 58
Tabel 4.14 Set Pompa Kondisi On ..................................................................................... 60
Tabel 4.15 Set Pompa Kondisi Off ..................................................................................... 61
Tabel 4.16 Hasil Uji Set Pompa Kondisi Awal 1 ............................................................... 61
Tabel 4.17 Hasil Uji Set Pompa Kondisi Awal 0 ............................................................... 61
Tabel 4.18 Pengujian Bagian Tombol Enable .................................................................... 63
Tabel 4.19 Perancangan FBD .............................................................................................. 65
Tabel 4.20 Hasil Uji Monitoring ........................................................................................ 65
Tabel 4.21 Hasil Uji Monitoring di GUI ............................................................................ 66
Tabel 4.22 Data 29-08-2018.csv ........................................................................................ 71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Teknologi turut berperan penting dalam perkembangan peradaban manusia.
Teknologi adalah keseluruhan sarana untuk menyediakan barang-barang yang diperlukan
bagi kelangsungan dan kenyamanan hidup manusia [1]. Manusia menciptakan dan
mengembangkan teknologi untuk membuat kehidupan manusia menjadi lebih baik.
Dengan kehadiran teknologi yang semakin modern, manusia bisa bertukar informasi
dalam hitungan detik. Bandingkan dengan media yang diperlukan untuk bertukar informasi
seperti surat, yang bisa memakan waktu berhari-hari, bahkan berminggu-minggu untuk
bisa diterima. Hal ini menunjukkan bahwa semakin berkembang teknologi, maka hidup
manusia semakin mendapat kemudahan.
Dengan semakin tingginya laju mobilitas manusia, maka perlu diimbangi dengan
teknologi yang bisa mengiringinya. Teknologi jarak jauh menjadi salah satu jawabannya,
yaitu teknologi yang memungkinkan manusia untuk selalu terhubung dengan yang lainnya,
kapanpun dan dimanapun berada. Teknologi jarak jauh ini telah diterapkan dalam berbagai
bidang, yaitu baik dalam bidang pertahanan, keamanan, ekonomi, industri, maupun
pertanian.
Dalam bidang pertanian secara khususnya, teknologi ini telah dipakai untuk
memonitor dan mengontrol irigasi, pengendalian proses manufaktur pupuk, serta
pengendalian dan pemantauan sistem dalam manufaktur tepung [2]. Bidang pertanian
menghasilkan produk-produk yang menjadi konsumsi utama manusia, contohnya padi,
kedelai, gandum, jamur. Secara khusus untuk produk jamur, peminatan masyarakat
terhadap produk pertanian ini meningkat dari tahun ketahun. Banyaknya orang yang telah
terjun ke dalam dunia budidaya jamur ternyata tetap belum bisa mengimbangi permintaan
pasar yang tinggi terhadap produk jamur. Hal ini dikarenakan masih banyak petani jamur
yang melakukan pembudidayaan jamur dengan pemeliharaan secara manual [3].
Dalam pembudidayaan jamur, khususnya pada jamur tiram, pemeliharaannya
memerlukan perlakukan yang khusus. Ada beberapa faktor lingkungan yang
mempengaruhi tumbuh kembang jamur tiram, diantaranya adalah suhu dan kelembaban.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Pemeliharaan yang tidak maksimal terhadap jamur tiram akan menyebabkan jamur tiram
tidak bertumbuh dan berkembang dengan maksimal, dan hal ini dapat mengakibatkan
turunnya kualitas dan kuantitas produksi jamur. Pemeliharaan dengan cara manual adalah
kurang efektif, karena petani harus sering mengecek kondisi suhu dan kelembaban,
kemudian melakukan penanganan manual terhadap kondisi yang terjadi tersebut, yaitu
menghidupkan aktuator secara manual. Hal ini tentu saja akan membuang waktu, dan
tenaga.
Pada penelitian sebelumnya, telah ada penelitian yang menjaga suhu dan kelembaban
pada kumbung jamur tiram menggunakan Zelio Smart Relay. Zelio ini kemudian akan
mengontrol keluaran aktuator secara otomatis berdasarkan suhu dan kelembaban yang
terjadi [4]. Namun sistem kendali dalam penelitian tersebut masih bersifat lokal, yaitu
belum bisa dimonitor dan diatur dari jarak jauh. Sistem lokal ini masih menggunakan
tombol-tombol yang harus ditekan dari jarak dekat, dan belum memiliki tampilan yang
user friendly untuk mengetahui kondisi-kondisi yang sedang terjadi dalam kumbung jamur
tiram.
Raspberry Pi adalah suatu teknologi berukuran mini yang memiliki fungsi utama
sebagai komputer, namun juga bisa dipakai sebagai mikrokontroler. Didalam Raspberry Pi
ini terdapat layanan-layanan untuk membuat program berbasis grafis, termasuk didalamnya
pembuatan Graphical User Interface (GUI). GUI ini kemudian dapat dipakai oleh user
untuk mengoperasikan sistem dari jarak jauh.
Dari permasalahan diatas, maka dirancanglah pengembangan dari metode sistem
kendali lokal Zelio tersebut. Pengembangan ini adalah sebuah sistem berbasis Raspberry Pi
3 yang dapat memonitor dan termasuk didalamnya dapat melakukan pengaturan terhadap
nilai setpoint suhu dan kelembaban serta aktuator dalam kumbung jamur tiram dan dapat
melakukan logging. Dengan adanya sistem monitor ini, suhu dan kelembaban serta
aktuator dapat dimonitor dan diseting dan dilogging dari jarak jauh.
1.2. Tujuan dan Manfaat
Tujuan dari penelitian ini adalah menciptakan alat untuk memonitor sistem secara
jarak jauh pada kumbung jamur tiram dengan menggunakan Raspberry Pi 3. Manfaat yang
ingin dicapai dari penelitian ini yaitu:
1. Memudahkan petani jamur tiram untuk memonitor kondisi suhu, kelembaban dan
status aktuator pada kumbung jamur tiram.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
2. Memudahkan petani jamur untuk melakukan pengaturan terhadap nilai setpoint suhu
dan kelembaban, serta aktuator pada kumbung jamur tiram
3. Memudahkan petani jamur untuk melakukan logging data dan melihat data dalam plot
grafik.
4. Mengembangkan penelitian tentang sistem monitor pada kumbung jamur tiram yang
sudah ada.
1.3. Batasan Masalah
Pembatasan masalah perlu dilakukan agar tugas akhir ini tetap mengarah pada tujuan,
dan menghindari kompleksnya permasalahan-permasalahan lain yang muncul. Batasan
masalah tersebut adalah sebagai berikut:
1. Sistem kendali lokal kumbung jamur yang digunakan memiliki jangkauan pengukuran
batas atas dan batas bawah suhu 00C - 400C dan kelembaban 0% - 100% [4].
2. Prototipe kumbung jamur akan menggunakan prototipe yang sudah ada.
3. Menggunakan Zelio Smart Relay untuk mengendalikan sistem lokal kumbung jamur
4. Menggunakan Modbus TCP/IP sebagai protokol komunikasi antara Raspberry Pi
dengan Zelio.
5. Perancangan GUI untuk memonitor dan melakukan penyetingan adalah berbasis
Raspberry Pi 3.
6. Monitoring akan mencakup pemantauan terhadap nilai suhu, nilai kelembaban dan
status aktuator.
7. Penyetingan akan mencakup pengaturan nilai suhu batas atas (ba) dan batas bawah (bb)
pada suhu dan kelembaban, pengaturan perintah on/off aktuator dari GUI, pembacaan
ba dan bb sistem lokal Zelio, serta pengaturan on/off tombol enable dari GUI.
8. Logging data dapat disimpan dalam bentuk file dan dapat ditampilkan dalam bentuk
plot grafik
1.4. Metodologi Penelitian
Pengerjaan tugas akhir ini terbagi menjadi beberapa tahap sebagai berikut:
1. Studi Literatur
Studi literatur dilakukan untuk mencari dan mengumpulkan bahan-bahan referensi
sebagai acuan dalam melakukan penelitian. Referensi yang dikumpulkan adalah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
mengenai pemrograman menggunakan Raspberry Pi 3, Modbus TCP, GUI dan Zelio
Smart Relay, perangkat komputer, serta tentang kumbung jamur tiram.
2. Perancangan Sistem
Perancangan sistem dilakukan untuk mencari bentuk model yang optimal sesuai
dengan batasan masalah agar konsep yang dibuat menjadi semakin jelas.
Gambar 1.1 Diagram Perancangan Sistem
Diagram yang berada didalam kotak putus-putus adalah diagram dari sistem kendali
lokal kumbung jamur berbasis Zelio Smart Relay, sedangkan diagram yang berada di
Raspberry PI
Mouse
Keyboard Monitor
Kabel HDMI
Network Switch
Modul Modbus TCP
ZELIO
Smart Relay
Pompa Air
Pemanas
Sensor Suhu
Sensor Kelembaban
Sistem Kendali Lokal
Sistem Monitor Jarak Jauh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
kotak biru adalah pengembangannya sistemnya, yaitu sistem monitor jarak jauh
berbasis Raspberry Pi 3 pada kumbung jamur tiram, yang dapat memonitor dan
melakukan beberapa pengaturan secara jarak jauh.
Perancangan sistem ini meliputi perancangan perangkat lunak dan perangkat keras.
Pada perancangan perangkat ini, akan dilakukan perancangan terhadap kebutuhan
perangkat yang mendukung sistem yang akan dibuat.
3. Implementasi
Pada tahap ini, akan dilakukan implementasi terhadap rancangan-rancangan yang
dibuat, baik itu rancangan perangkat lunak maupun rancangan hardware. Rancangan-
rancangan ini akan diintegrasikan untuk membentuk sistem secara keseluruhan.
4. Uji Coba dan Pengambilan Data
Setelah tahap implementasi, kemudian akan dilakukan proses uji coba dan
pengambilan data. Pengujian ini akan dilakukan pada proses pengiriman data dan
penerimaan data dari Raspberry Pi 3 dan Zelio Smart Relay. Pengujian proses
monitoring dapat dilakukan dengan membaca data yang dikirimkan dari Zelio ke
Raspberry Pi yang akan ditampilkan di GUI Raspberry Pi. Pada logging data, akan
dilihat visualisasi data yang disimpan dan ditampilkan dalam bentuk file dan plot di
Raspberry Pi.
Pada pengujian proses seting/pengaturan dapat dilakukan dengan mengirim suatu
perintah dari GUI Raspberry Pi 3 ke Zelio, kemudian dilihat kesesuaian data yang
dikirimkan dengan data yang diterima. Selanjutnya, dilakukan pengambilan data
sebagai suatu acuan keberhasilan dari sistem yang telah dibuat.
5. Analisa Data dan Pengambilan Kesimpulan
Data-data yang didapatkan dari pengujian sistem kemudian akan dianalisis sebagai
acuan dan pembanding untuk melihat seberapa besar error pada sistem yang dibuat.
Hasil analisis ini akan digunakan untuk menulis kesimpulan akhir dari sistem yang
telah dibuat.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
BAB II
DASAR TEORI
2.1. Jamur Tiram
Jamur tiram (Pleurotus ostreatus) adalah jamur pangan dari kelompok Basidiomycota
dan termasuk kelas Homobasidiomycetes dengan ciri-ciri umum tubuh buah berwarna putih
hingga krem dan tudungnya berbentuk setengah lingkaran mirip cangkang tiram dengan
bagian tengah agak cekung [5]. Bagian tudung dari jamur tersebut berubah warna dari hitam,
abu-abu, coklat, hingga putih, dengan permukaan yang hampir licin, diameter 5-20 cm yang
bertepi tudung mulus sedikit berlekuk. Selain itu, jamur tiram juga memiliki spora (bibitnya)
berbentuk batang serta miselia berwarna putih yang bisa tumbuh dengan cepat [6]. Gambar
2.1 menunjukkan bentuk fisik dari Jamur Tiram.
Gambar 2.1 Bentuk Fisik Jamur Tiram [6]
2.1.1 Klasifikasi Jamur Tiram
Klasifikasi dari jamur tiram adalah sebagai berikut [7]:
1. Kingdom: Fungi
2. Filum: Basidiomycota
3. Kelas: Homobasidiomycetes
4. Ordo: Agaricales
5. Family: Tricholomatacea
6. Genus: Pleurotus
7. Spesies: P. ostreatus
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
2.1.2 Syarat Tumbuh Kembang Jamur Tiram
Pertumbuhan Jamur Tiram dipengaruhi oleh beberapa faktor. Syarat lingkungan
untuk pertumbuhan dan perkembangan yang dibutuhkan oleh jamur tiram antara lain air,
suhu, kelembaban, cahaya, serta tingkat keasaman. Secara khusus untuk suhu dan
kelembaban, agar pertumbuhan jamur menjadi optimal maka diperlukan suhu ruangan dalam
kumbung 22 - 28°C dan kelembaban sebesar 60-80% pada saat inkubasi. Sedangkan suhu
pada pembentukan tubuh buah sampai panen berkisar antara 16-22 °C dengan kelembaban
80-90%. Apabila kelembaban kurang, maka substrat tanaman akan mengering [5].
2.2 Raspberry Pi 3
Raspberry Pi adalah komputer papan tunggal yang berukuran kecil. The Raspberry Pi
is a credit-card-sized computer that plugs into your TV and a keyboard. It is a capable little
computer which can be used in electronics projects, and for many of the things that your
desktop PC does, like spreadsheets, word processing, browsing the internet, and playing
games. It also plays high-definition video [9].
Model-model dari Raspberry Pi diperlihatkan pada tabel 2.1.
Tabel 2.1 Tabel model Raspberry Pi [9]
2.2.1 Arsitektur Hardware Raspberry Pi 3
Raspberry Pi 3 Model B yang akan digunakan dalam penelitian ini akan menggunakan
SOC BCM2837. SOC/System On Chip adalah metode menempatkan seluruh perangkat-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
perangkat elektronik untuk menjalankan sebuah komputer dalam satu single chip. Gambar
2.2 memperlihatkan mengenai bentuk fisik Raspberry Pi 3.
Didalam chip BCM2837 terdapat Quad-core Arm Cortex-A53 CPU yang memiliki
kecepatan 1.2Ghz dan RAM sebesar 1GB. Raspberry Pi 3 Model B memiliki empat port
USB, port Ethernet dan telah mendukung Bluetooth/wireless LAN.
GPU/Graphics Porcessing Unit adalah hardware yang menangani masalah grafis.
GPU dari Raspberry Pi 3 telah memiliki kemampuan grafis yang tinggi. GPU ini mampu
memutar video dengan format blue-ray.
Gambar 2.2 Raspberry Pi 3 [10]
Gambar 2.3 GPIO Raspberry Pi 3 [11]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
Gambar 2.3 menunjukkan GPIO Raspberry Pi 3. GPIO/General Purpose Input Output
adalah pin-pin yang dapat diprogram untuk melakukan berbagai tugas. Misalnya jika
Raspberry digunakan sebagai mikrokontroler untuk menyalakan LED, maka LED ini akan
dihubungkan ke pin GPIO tersebut. Raspberry Pi 3 memiliki 40 buah pin GPIO.
2.2.2 Sistem Operasi di Raspberry
Sistem Operasi (OS) yang bisa digunakan di Raspberry Pi 3 antara lain adalah
Windows 10 IoT Core, RISC OS Pi, Raspbian OS. Raspbian OS ini adalah sistem operasi
resmi dari Raspberry Pi Foundation. OS ini berbasis Debian Linux dan dioptimisasi khusus
untuk hardware Raspberry Pi [12]. Didalam Raspbian OS terdapat software yang sudah
diinstal seperti Python, Java, Sratch, dan telah mendukung GUI.
2.2.3 Pemrograman Raspberry Pi 3
Raspberry Pi memiliki beberapa bahasa pemrograman, diantaranya adalah bahasa
C/C++, Python, Java, Scratch, dan Ruby. Pemrograman Raspberry Pi yang digunakan dalam
penelitian ini adalah Python. Python adalah bahasa pemrograman tingkat tinggi dengan
semantic dinamis yang berorientasi pada obyek. Python juga adalah bahasa pemrograman
interpreter multiguna [13]. Gambar 2.4 memperlihatkan logo Python.
Gambar 2.4 Logo Python [13]
2.2.4 GUI Raspberry Pi 3
GUI adalah singkatan dari Graphical User Interface. GUI adalah antarmuka pada
sistem operasi yang menggunakan menu grafis atau tampilan dengan maksud memudahkan
pengguna (user) dalam menggunakan/mengoperasikan sistem operasi tersebut [14]. Dengan
GUI, user dapat berinteraksi dengan menggunakan text boxes, check boxes, buttons, dan
widget user interface lainnya. Beberapa GUI yang bisa digunakan di Raspberry Pi adalah
easyGUI, Wxphyton, Qt, dan Tkinter. Tkinter adalah GUI standar dari python interface.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
2.3 Zelio Smart Relay
Smart relay menggantikan logika dan pengerjaan sirkuit kontrol relay yang merupakan
instalasi langsung pada aplikasi sistem otomasi sederhana. Dengan smart relay rangkaian
kontrol cukup dibuat secara software [15]. Zelio adalah Smart Relay yang dibuat oleh
Schneider Telemecanique.
Zelio Smart Relay memiliki dua model yaitu model Compact dan model Modular.
Model ini diperlihatkan pada gambar 2.5 (a) model dengan display atau Modular dan (b)
model tanpa display atau Compact. Pada model Modular, jika diperlukan dapat ditambahkan
modul I/O tambahan (expansion I/O modules), baik I/O diskrit maupun I/O analog. Salah
satu modul yang dapat ditambahkan adalah modul komunikasi Modbus.
Gambar 2.5 Zelio Smart Relay
Keterangan :
1. Dua lubang dudukan pengikat.
2. Dua terminal power suplay.
3. Koneksi terminal input.
4. Layar display LCD untuk mengontrol dan memonitor.
5. Slot untuk koneksi interface ke PC.
6. Enam tombol untuk memrogram dan memasukan parameter.
7. Koneksi terminal output.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
Pemrograman pada Zelio Smart Relay dapat dilakukan dengan dua cara, yaitu
menggunakan programming console (disediakan layar dan tombol program yang terintegrasi
pada perangkat Zelio) atau menggunakan bantuan PC (personal computer) [15].
2.3.1 Function Logic Diagram
Pembuatan dan pernacangan program di Zelio Smart Relay dapat dilakukan dengan
dua cara, yaitu melalui Ladder Diagram (LD) atau Function Block Diagram (FBD). Berikut
adalah beberapa fitur dalam pemrograman FBD [16]:
1. Discrete Input
Tipe discrete input ini dapat dipilih dari window Parameters. Discrete input
mengenali kondisi input 1 untuk on dan 0 untuk off. Gambar 2.6 menunjukkan tipe
Discrete Input di FBD.
Gambar 2.6 Tipe Discrete Input [16]
2. Analog Input dan Integer Input
Tegangan input analog (0 sampai 10V) dikonversikan kedalam nilai digital integer
dengan 8 bit analog/digital konverter. Nilai outputnya adalah 0 sampai 255. Tipe
Analog Input di FBD diperlihatkan dalam gambar 2.7.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
Gambar 2.8 memperlihatkan tipe Input Integer di FBD. Input Integer memiliki
nilai (16 bit) antara -32768 and +32767.
Gambar 2.7 Tipe Analog Input [16]
Gambar 2.8 Tipe Input Integer [16]
3. Discrete Output dan Integer Output
Gambar 2.9 memperlihatkan tipe ouput Integer di FBD. Input Integer memiliki
nilai (16 bit) antara -32768 and +32767.
Gambar 2.9 Tipe Output Integer
Gambar 2.10 Discrete Output
Gambar 2.10 menunjukkan mengenai discrete output. Output yang dihasilkan dari
tipe discrete ini adalah kondisi 1 dan 0.
4. Logic Functions
Dalam FBD terdapat beberapa fungsi logic yang dapat diakses di window Logic.
Gambar 2.11 menunjukkan Logic Functions di FBD.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Gambar 2.11 Logic Functions [16]
5. Word to Bit dan Bit to Word Conversion
Word to Bit Conversion dapat memecah input tipe integer (16 bit) menjadi output
tipe 16 bit. Gambar 2.12 memperlihatkan mengenai Word to Bit Conversion di
FBD.
Gambar 2.12 Word to Bit Conversion [16]
Bit to Word Conversion seperti yang ditunjukkan dalam gambar 2.13 memiliki
fungsi untuk menghasilkan output bertipe integer (16 bit) dari input tipe 16 bit.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
Gambar 2.13 Bit to Word Conversion [16]
6. Multiplexing (MUX)
Multiplexing ditunjukkan dalam Gambar 2.14. Multiplexing memiliki satu
selektor dan dua saluran input dengan satu output. Input MUX ini memiliki jenis
tipe data integer.
Gambar 2.14 Multiplexing [16]
7. Up/Down Counter
Up/Down Counter dapat melakukan penghitungan naik maupun turun. Pada preset
forcing, jika diisi dengan kondisi 1 maka nilai input counter yang berlaku adalah
yang tersedia dari preset value. Gambar 2.15 memperlihatkan mengenai Up/Down
Counter.
Gambar 2.15 Up/Down Counter [16]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
8. FBD Program Edit Window
Gambar 2.16 memperlihatkan tentang Program Edit Window di FBD.
Gambar 2.16 Window Edit [16]
2.3.2 Inputs/Outputs Data Words Exchange
Zelio Smart Relay memiliki empat buah register yang dapat digunakan untuk mode
write/read dan empat buah register untuk mode read. Register write/read ini dimulai dari
register enam belas sampai sembilan belas, sedangkan register read dimulai dari register dua
puluh sampai dua puluh tiga. Register yang dapat digunakan untuk write/read ini berfungsi
sebagai input yang berada pada J1XT1 sampai J4XT1, sedangkan Register read-only yang
berfungsi sebagai output berada pada O1XT1 sampai O4XT1. Input dan Output ini dapat
diakses jika menggunakan mode extension dengan modul komunikasi. Tabel 2.2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
menunjukkan alamat input/output dan Modbus Register Zelio. Gambar 2.17 menunjukkan
input/output ekstensi dari Modul Komunikasi Ethernet Zelio.
Tabel 2.2 Input/Output Zelio dan Modbus Register [17]
Request Modbus Modbus Registers Input/Output Zelio
Read/Write 4 words
(16bits) Zelio
Word 16 J1XT1
Word 17 J2XT1
Word 18 J3XT1
Word 19 J4XT1
Read 4 words (16 bits)
Zelio
Word 20 O1XT1
Word 21 O2XT1
Word 22 O3XT1
Word 23 O4XT1
Gambar 2.17 Input/Output Extension Modul Komunikasi Zelio [17]
2.3.3 Modbus TCP/IP
Modbus memungkinkan adanya komunikasi dua-jalur antar perangkat yang terhubung
ke jaringan yang sama, misalnya suatu sistem yang mengukur suhu dan kelembaban dan
mengkomunikasikan hasilnya ke komputer (HMI) [18]. Modbus TCP/IP atau Modbus TCP
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
hanya bisa digunakan untuk komunikasi melalui jaringan TCP/IP atau umumnya dikenal
dengan jaringan LAN.
Zelio Modular Smart Relay terhubung dengan jaringan ethernet melalui modul
komunikasi server ethernet. Modul komunikasi dengan tipe SR3NET01BD ini
memungkinkan komunikasi terjadi pada jaringan ethernet dibawah protokol modbus TCP.
Modul Modbus TCP Zelio ditunjukkan dalam gambar 2.18
Gambar 2.18 Modul Modbus TCP Zelio [19]
2.4 Network Switch
Network Switch adalah sebuah perangkat jaringan pada komputer yang
menghubungkan perangkat pada sebuah jaringan komputer dengan menggunakan
pertukaran paket untuk menerima, memproses dan meneruskan data ke perangkat yang
dituju [20].
Switch berfungsi untuk mengirimkan data ke lokasi yang dituju. Switch memiliki
beberapa port yang digunakan untuk menguhubungkan computer, diantaranya yaitu 8 port,
16 port, atau 24 port. Gambar 2.19 menunjukkan mengenai Network Switch dan pengiriman
datanya.
Gambar 2.19 Network Switch Dan Pengiriman Data [20]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
2.5 Kabel HDMI to VGA
Kabel VGA adalah kabel yang berfungi sebagai konektor yang membawa sinyal video
analog hasil pengolahan data komputer ke monitor. Sedangkan kabel HDMI adalah kabel
konektor yang sering digunkan pada HDTV, Apple TV, dan komputer [21].
Kabel Konverter adalah salah satu kabel yang berfungsi untuk menghubungkan input
dan output pada port yang berbeda. Tidak semua perangkat komputer mendukung atau
memiliki jenis port yang sama. Oleh karena itu, dalam hal ini diperlukan kabel konverter
HDMI to VGA. Kabel konverter tersebut ditunjukkan dalam gambar 2.20.
Gambar 2.20 Kabel HDMI to VGA [21]
2.6 Monitor
Fungsi dari Monitor adalah untuk menampilkan video dan informasi grafis yang
dihasilkan dari komputer melalui alat yang disebut kartu grafis ( VGA Card ). Bentuk fisik
dari monitor hampir sama dengan televisi. Gambar 2.21 menunjukan bentuk fisik dari
Monitor.
Gambar 2.21 Monitor [22]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
2.7 Keyboard
Keyboard dapat diartikan sebagai salah satu perangkat input komputer yang berisi
susunan huruf, angka, dan fungsi kontrol yang lain. Meskipun bukan satu-satunya perangkat
input pada komputer, peran keyboard sangatlah penting, karena sebagian perintah yang
berupa teks dan komando lain yang dimasukkan ke dalam sistem komputer adalah melalui
keyboard [23]. Gambar 2.22 menunjukkan bentuk fisik dari Keyboard.
Gambar 2.22 Keyboard [23]
2.8 Mouse
Mouse adalah perangkat keras yang dihubungkan dengan komputer yang fungsinya
sebagai penggerak kursor yang memberikan sebuah perintah pada sistem komputer. Gambar
2.23 menunjukkan bentuk fisik dari Mouse.
Gambar 2.23 Mouse [24]
Mouse adalah salah satu hardware komputer yang menerima input berupa gerakan,
tekanan tombol (click), dan penggulungan (scroll) yang dapat digunakan untuk memilih teks,
ikon, file, dan folder [24].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
2.9 Persamaan Perhitungan Rata-Rata
𝑅𝑎𝑡𝑎𝑎𝑛 = 𝑋1+𝑋2+𝑋3+⋯+𝑋𝑛
𝑛 [25] (2.1)
Rumus yang ditampilkan pada persamaan 2.1 diatas adalah rumus untuk menghitung
rata-rata suatu variable. Nilai n adalah berdasar pada banyaknya data. Nilai rataan adalah
penjumlahan total semua nilai dari X1 sampai Xn yang dibagi dengan n.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
BAB III
RANCANGAN PENELITIAN
Secara umum, plant dari sistem monitoring kumbung jamur tiram ditunjukkan dalam
gambar dibawah ini. Gambar 3.1 menunjukkan Plant Sistem Monitoring Kumbung Jamur
secara keseluruhan. Plant dalam kotak biru adalah sistem kendali lokal berbasis Zelio Smart
Relay, sedangkan Plant dalam kotak merah adalah sistem monitor jarak jauh berbasis
Raspberry Pi.
Gambar 3.1 Plant Sistem Monitoring Kumbung Jamur
Sistem Kendali Lokal
Sistem Monitor Jarak Jauh
[Zelio Smart Relay dan
Modul Komunikasi] [Kumbung Jamur Tiram]
[Network Switch]
[Mouse]
[Keyboard] [Monitor]
[Kabel HDMI to VGA]
[Raspberry Pi 3]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
3.1. Model Sistem
Secara umum model dari sistem monitoring kumbung jamur tiram ditunjukkan dalam
gambar blok dibawah ini.
Gambar 3.2 Model Sistem Monitor dan Kontrol Kumbung Jamur Tiram
Model sistem pada gambar 3.2 adalah mengenai sistem kumbung jamur lokal dan
sistem monitor jarak jauh. Pada sistem kumbung jamur lokal yang telah dibuat ini, sistem
sepenuhnya dikendalikan oleh Zelio Smart Relay. User dapat mengubah nilai setpoint untuk
suhu dan kelembaban dengan menggunakan beberapa tombol push button yang disediakan,
1. Sensor Suhu
2. Sensor Kelembaban
3. Tombol Pilih
4. Tombol Naik
5. Tombol Turun
6. Tombol Enable
1. Setting ba/bb suhu
2. Setting ba/bb
kelembaban
3. Pengaturan on/off
Aktuator melalui
GUI
4. Pengaturan tombol
enable melalui GUI
5. Menampilkan ba/bb
sistem lokal
-Kumbung Jamur
Tiram
1. Pompa Air (Sprayer)
2. Pemanas (kompor
listrik)
1. Menampilkan
nilai suhu
2. Menampilkan
nilai kelembaban
3. Menampilkan
status aktuator
1. Penyimpanan
data
2. Menampilkan
plot dalam
bentuk grafik
Raspberry Pi 3
User GUI
Input Output
Monitor Menu Seting Logging
Network Switch
Modul Modbus TCP
Zelio Smart Relay
Sistem Kendali Lokal
Sistem Monitor Jarak Jauh
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
seperti tombol pilih, tombol naik, tombol turun dan tombol enable. Tombol pilih digunakan
untuk memilih pengaturan jenis setpoint yaitu suhu atau kelembaban, dan memilih
pengaturan setpoint batas atas dan batas bawah yang akan digunakan. Tombol naik dan turun
digunakan untuk menaikkan dan menurunkan nilai setpoint. Sedangkan tombol enable
digunakan untuk mengaktifkan kerja dari tombol-tombol pengaturan yang telah disebutkan
sebelumnya. Jika tombol enable tidak aktif, maka tombol-tombol lain tidak akan berkerja.
Keluaran yang dikendalikan dari sistem lokal ini adalah berupa pemanas dan pompa air.
Pada sistem jarak jauh, sistemnya akan berbasis Raspberry Pi 3. Untuk dapat
melakukan monitoring jarak jauh pada sistem lokal, maka Zelio akan dihubungkan ke
Raspberry Pi 3 dengan modbus TCP. Fungsi dari Raspberry Pi 3 disini adalah sebagai
komputer yang menyediakan perangkat lunak untuk membuat sistem monitor jarak jauh,
yang akan ditampilkan oleh GUI. User kemudian dapat melakukan pengawasan,
penyetingan variable-variable, dan logging dari GUI seperti yang ditunjukkan dalam model
sistem pada gambar 3.2
3.2. Kebutuhan Perangkat
Pada penelitian ini dibutuhkan beberapa perangkat yang untuk mendukung pembuatan
sistem. Perangkat-perangkat tersebut berbentuk perangkat keras dan perangkat lunak.
3.2.1. Kebutuhan Perangkat Keras
Perangkat keras yang dibutuhkan dalam penelitian ini yaitu:
1. Monitor
2. Raspberry Pi 3
3. Zelio Smart Relay
4. Modul Modbus TCP
5. Network Switch
6. Keyboard
7. Mouse
8. Kabel HDMI to VGA
3.2.2. Kebutuhan Perangkat Lunak
Perangkat lunak ini diperlukan untuk menuliskan program. Perangkat lunak tersebut
yaitu:
1. Python sebagai bahasa pemrograman di Raspberry Pi 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
2. Tkinter untuk merancang GUI
3.3. Perancangan Perangkat Keras
Pada perancangan perangkat keras ini, Raspberry Pi 3 akan dihubungkan ke monitor
untuk menampilkan GUI dengan kabel HDMI to VGA. Port Ethernet dari Raspberry Pi 3
akan dihubungkan ke Switch. Modul Modbus TCP dari Zelio Smart Relay juga akan
dihubungkan ke Network Switch untuk komunikasi antara Raspberry Pi 3 dan Zelio.
Keyboard dan Mouse akan dihubungkan ke Raspberry Pi 3. Perancangan perangkat keras ini
dapat dilihat dalam gambar 3.1 dikotak merah.
3.4. Perancangan Perangkat Lunak
3.4.1. Perancangan Data Antarmuka
IP (Internet Protocol) address adalah alamat yang digunakan untuk menghubungkan
satu perangkat ke perangkat lainnya. Dalam hal ini, IP address diperlukan untuk
menghubungkan Raspberry ke Zelio. Pada komunikasi melalui protokol TCP/IP ini, IP yang
akan digunakan adalah IP statis. IP statis ini bersifat tetap atau tidak berubah-ubah. Pada
Zelio dan Raspberry, IP statis ini akan dikonfigurasi dan ditetapkan secara manual.
Konfigurasi jaringan network statis ini meliputi pengaturan terhadap IP address dan Subnet
mask address. Perancangan IP address untuk Zelio adalah pada alamat 192.168.1.10, dengan
subnet mask pada alamat 255.255.255.0, sedangkan pada Raspberry Pi, alamat IP akan
dirancang pada alamat 192.168.1.20, dengan subnet mask pada alamat 255.255.255.0.
Switch kemudian akan dengan mudah mengenali IP address yang bersifat tetap tersebut.
Dalam mode Function Block Diagram di Zelio, modul Modbus TCP menggunakan
tipe SR3NET01 dengan input extension dari J1XT1 sampai J4XT1, dan output extension
dari O1XT1 sampai O4XT1. Setiap input atau output extension ini adalah dalam bentuk 16
bit Modbus word. Modbus TCP register untuk input J1XT1 adalah dari register 16 sampai
register 19, register ini akan digunakan untuk menulis data, sedangkan register untuk O1XT1
sampai O4XT1 adalah dari register 20 sampai register 23, register ini akan digunakan untuk
membaca data. Variable-variable yang akan dimonitor dan diseting akan ditentukan terlebih
dahulu alamat registernya. Tabel 3.1 menunjukkan data antarmuka yang akan di tulis/write
dan baca/read.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Tabel 3.1 Tabel Read/Write Data Antarmuka
Nama Variable WRITE READ
Nilai suhu Nilai batas atas suhu Nilai suhu yang baru
Nilai batas bawah suhu Nilai batas atas suhu sistem lokal
Nilai bb suhu sistem lokal
Nilai Kelembaban Nilai batas atas kelembaban Nilai kelembaban yang baru
Nilai batas bawah
kelembaban
Nilai ba kelembaban sistem lokal
Nilai bb kelembaban sistem lokal
Aktuator Perintah on/off pemanas Status pemanas
Perintah on/off pompa Status pompa
Data logging Interval Logging Data Data log ditampilkan
Tabel 3.2 Modbus Register Input
Tabel 3.3 Perancangan Write Data Register 18
Fungsi Register Input
Selektor 16 J1XT1
Data, Forcing Aktuator 17 J2XT1
Pulsa untuk preset 18 J3XT1
Set Aktuator 19 J4XT1
Write Command
Pulsa Ba suhu 01
Pulsa Bb suhu 02
Pulsa Ba kelembaban 04
Pulsa Bb kelembaban 08
Mux Selektor 16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Tabel 3.4 Modbus Register Output
Tabel 3.5 Perancangan Write Data Register 16
Fungsi Register Output
Read suhu 20 O1XT1
Read Ba suhu sistem lokal
Read Bb kelembaban sistem lokal
Read kelembaban 21 O2XT1
Read Ba kelembaban sistem lokal
Read bb suhu sistem lokal
Read pemanas 22 O3XT1
Read pompa 23 O4XT1
Write Command
Kembali Ke Kondisi Semula 00
Ba suhu 01
Bb suhu 02
Ba kelembaban 04
Bb kelembaban 08
Tombol enable on 64
Mux Selektor 128
Tombol enable off 256
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Tabel 3.6 Perancangan Write Data Register 17
Tabel 3.2 menunjukkan tabel Modbus register input. Register 16 akan digunakan
sebagai selektor perintah (command). Tabel 3.5 menunjukkan perancangan perintah write
data, dan alamat command tersebut akan dimasukkan kedalam register 16. Tabel 3.6
menunjukkan bahwa Register 17 akan digunakan untuk memasukkan data yaitu nilai
setpoint suhu dan kelembaban, dan input selektor mux set akutator. Tabel 3.3 menunjukkan
bahwa Register 18 akan digunakan sebagai pulsa preset, yaitu untuk memasukkan data ke
register counter, agar data dapat dieksekusi, serta sebagai mux selektor. Tabel 3.4
menunjukkan tabel Modbus register output. Register 20 sampai 23 akan digunakan untuk
membaca data-data.
Gambar 3.4 menunjukan diagram data antarmuka. Register 16 akan dihubungkan ke
Word Bit Conversion, bit 01 sampai bit 08 digunakan untuk seting setpoint ba dan bb suhu
dan kelembaban. Bit 64 akan digunakan untuk memberi kondisi on pada tombol enable
sehingga sistem dapat diatur dari kendali lokal dan GUI, bit 256 akan digunakan untuk
memberi kondisi off pada tombol enable sehingga sistem hanya bisa diatur dari GUI. Bit ini
akan dihubungkan ke Set Reset Switching. Bit 128 akan digunakan untuk input selektor mux
untuk membaca nilai suhu, kelembaban serta setpoint dari sistem lokal.
Register 18 akan dihubungkan ke Word Bit Conversion, bit 01 sampai bit 08
digunakan sebagai pulsa untuk mengeksekusi input data setpoint suhu dan kelembaban,
kemudian output ini akan masuk ke gerbang AND. Bit 16 akan digunakan untuk input mux
Write Command
Input Data 00
Input Data 01
Input Data 02
Input Data 04
Input Data 08
Input Data 64
Set Pemanas 128
Set Pompa 256
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
selektor untuk membaca nilai suhu, kelembaban serta ba dan bb suhu dan kelembaban dari
sistem lokal. Tabel 3.3 menunjukkan perintah write data untuk register 18. Output dari bit
01 sampai 04 dari Register 16 dan Output bit 01 sampai 08 dari Register 18 akan
dihubungkan ke preset forcing pada up/down counter.
Register 17 akan dihubungkan ke Word Bit Conversion, bit 01 sampai 64 sebagai input
data akan dihubungkan ke preset value pada up/down counter. Bit 128 dan 256 akan
digunakan untuk input mux selektor pada aktuator. Register 19 akan dihubungkan ke Word
Bit Conversion, bit 01 akan digunakan untuk set aktuator pemanas dan bit 02 untuk pompa
dari GUI. Output bit 01 dan 02 kemudian akan dihubungkan ke Bit Word Conversion.
Output dari Bit Word Conversion lalu akan dihubungkan ke MUX chanel B. Jika selektor
tidak aktif atau kondisi 0, maka chanel A akan aktif, sedangkan jika selektor dalam kondisi
1, maka chanel B akan aktif. Untuk mengembalikan pengaturan set aktuator ke keadaan
semula, maka register 16 akan diisi 0.
Gambar 3.3 menunjukkan mengenai diagram data read antarmuka. Nilai suhu sekarang,
nilai ba suhu dan nilai bb kelembaban akan dibaca dalam register 20. Nilai kelembaban
sekarang, nilai ba kelembaban dan nilai bb suhu akan dibaca dalam register 21. Nilai
pemanas yang berasal dari output MUX akan dibaca pada register 22. Nilai pompa yang
berasal dari output MUX akan dibaca pada register 23.
Gambar 3.3 Diagram Data Read Antarmuka
20
Register
21
Register
22
Register
23
Register
Nilai Suhu Sekarang
Nilai ba suhu sistem lokal
Nilai bb kelembaban sistem
lokal
Nilai Kelembaban Sekarang
Nilai ba kelembaban sistem lokal
Nilai bb suhu sistem lokal
Output MUX
Pemanas
Output MUX pompa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Gambar 3.4 Diagram Write Data Antarmuka
-Selection -Chanel A -Chanel B
Bit01- Bit02- Bit03- Bit04- Bit07- Bit08- Bit09-
-Preset forcing -Preset value
-Selection -Chanel A -Chanel B
Up/Down Counter
Word Bit Conversion
Bit01- Bit02- Bit03- Bit04- Bit05-
Word Bit Conversion
16
Register
17
Register
18
Register
19
Register
-Preset forcing -Preset value
-Preset forcing -Preset value
-Preset forcing -Preset value
-Pemanas -Nilai Suhu
-NIlai ba suhu
-Nilai bb kel
-Pompa air -Nilai Kel -Nilai ba
kel -Nilai bb
suhu
Ba suhu
Bb suhu
Ba Kelembaban
Bb Kelembaban
Lokal (……)
Bit01- Bit02-
MUX
Lokal
Lokal
Word Bit Conversion
-Bit01
Bit Word Conversion
-Bit01
Bit01- Bit02- Bit03- Bit04- Bit05- Bit06- Bit07- Bit08-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3.4.2. Perancangan GUI Tkinter
Pada penelitian ini, akan dibuat suatu user interface menggunakan Tkinter. User
Interface ini akan terdiri dari tiga menu utama, yaitu menu setting, untuk memudahkan user
ketika melakukan pengaturan, menu monitoring ketika akan melakukan pemantauan, dan
menu logging untuk melihat data-data dan grafik.
Pada perancangan ini, menu-menu utama dan menu-menu sub akan dirancang dari
pemrograman Tkinter. Perancangan ini meliputi perancangan terhadap widget seperti frame,
label, entry, menu bars, font, colour, size, button, dan layout menu. Gambar 3.5
menunjukkan fitur-fitur menu yang akan dibuat pada user interface Tkinter
Gambar 3.5 Fitur Tkinter GUI
3.4.3. Perancangan Menu Utama
Pada halaman menu utama ini, terdapat label judul sistem, dan tiga tombol virtual yang
mewakili masing-masing fitur yang terdapat pada GUI Tkinter. Menu-menu utama tersebut
yaitu menu setting, menu monitor dan menu logging.
Untuk melakukan akses terhadap menu setting, maka user dapat menekan tombol
virtual menu setting dihalaman GUI, dan kemudian user akan dialihkan ke halaman menu
setting. Demikian juga jika user ingin mengakses menu monitor dan menu logging, maka
GUI
TKINTER SETTING
LOGGING
Suhu
Kelembaban
Aktuator
Open Data Plot
Kelembaban
Aktuator
Tombol
Enable
Suhu MONITORING
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
user dapat menekan tombol menu monitor dan logging, dan user akan diarahkan ke halaman
menu monitor dan menu logging. Gambar 3.6 menunjukkan halaman menu utama yang
tersedia pada user interface.
Gambar 3.6 Halaman Menu Utama
Gambar 3.7 menunjukkan diagram alir utama program. Dari diagram ini dapat dilihat
bahwa dalam alir menu utama, user akan melakukan pemilihan terhadap menu sub. Jika
pilihan menu sesuai yang diinginkan maka akan mengalir ke subrutin proses masing-masing
menu sub.
SETTING
MONITORING
LOGGING
MENU UTAMA
JUDUL
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Gambar 3.7 Diagram Alir Utama
Mulai
Selesai
Menu utama
Baca perintah user
Menu
Monitoring Menu
Setting
Menu
Logging
g
Subrutin
proses monitoring
Subrutin
proses setting
Subrutin
proses logging
Tidak
Tidak Tidak
Ya Ya Ya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
3.4.4. Perancangan Menu Setting
Menu setting ini dirancang agar user dapat mengatur variable-variable kondisi yang
terpasang di kumbung jamur. Dalam menu setting ini, terdapat menu pengaturan set point
suhu, set point kelembaban, dan memaksakan kondisi on-off pada aktuator yaitu pompa air
dan pemanas. Gambar 3.8 menunjukkan perancangan Halaman Menu Setting.
Gambar 3.8 Halaman Menu Setting
SETTING
MONITORING
LOGGING
MENU UTAMA
JUDUL
MENU SETTING
SUHU (0 - 40C)
Set BA Set BB ok
Set BA Set BB ok
KELEMBABAN (0 – 100%)
Set Pompa
on off Set Pemanas
on off
on off Tombol Enable
16C/22C 22C/28C
60 /80% 80/90 %
BACK
LOKAL
BA SUHU BB SUHU
BA KEL BB KEL
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Langkah-langkah untuk melakukan pengaturan melalui GUI adalah sebagai berikut.
Pertama-tama user menekan tombol menu setting pada halaman menu utama, kemudian user
akan diarahkan pada halaman menu setting. Di halaman menu setting ini, jika user ingin
mengubah nilai setpoint suhu dan kelembaban, maka user dapat memasukan nilai batas atas
dan batas bawah suhu dan kelembaban seperti yang sudah dicantumkan di GUI. Dalam masa
inkubasi jamur, user dapat memasukan nilai batas atas suhu 22 dan nilai batas bawah 28,
serta nilai batas atas kelembaban 60 dan nilai batas bawah 80, sedangkan pada masa
pembentukan tubuh jamur, user dapat memasukkan nilai batas atas suhu 16 dan nilai batas
bawah 22, serta nilai batas atas kelembaban 80 dan nilai batas bawah 90. Setelah itu user
menekan tombol ok untuk mengirimkan data tersebut ke Zelio.
Untuk memberikan perintah pemaksaan on/off dari GUI untuk pompa air atau
pemanas, user dapat menekan tombol virtual set pemanas dan set pompa serta tombol on
atau off pada user interface. Ketika user menekan set pemanas maka, data aktuator yang
terjadi pada saat itu akan dikirimkan dan akan dibaca dalam kondisi on/off. Jika kondisi
aktuator off pada saat itu, maka tombol virtual off akan berwarna biru, sehingga user
mengetahui bahwa tombol yang aktif adalah tombol virtual on, tombol on ini akan berwarna
hijau, demikian sebaliknya.
Untuk melakukan prioritas pengaturan sistem, maka user dapat menekan tombol on/off
disebelah label tombol enable. Secara default, prioritas pengaturan adalah dari GUI. Jika
user menekan tombol on, maka prioritas pengaturan adalah dari GUI dan kendali lokal.
Sebagai contoh user memasukan nilai ba dan bb suhu dan kelembaban dari tombol panel
kendali lokal, maka di halaman menu setting bagian lokal, nilai ba dan bb suhu dan
kelembaban akan berubah sesuai dengan nilai yang dimasukan dari tombol panel kendali
lokal. Untuk mengembalikan prioritas pengaturan ke GUI, maka user dapat menekan tombol
virtual off. Untuk kembali ke menu utama, maka user dapat menekan tombol back pada user
interface.
Gambar 3.9 dan gambar 3.10 menunjukkan subrutin proses setpoint suhu dan
kelembaban serta proses pembacaan set point suhu dan kelembaban dari menu setting.
Proses alir dari setpoint ini adalah memasukkan nilai batas atas dan batas bawah kelembaban.
Input nilai setpoint suhu dan kelembaban ini adalah dari register 17. Data akan dikirim atau
dieksekusi oleh register 18. Data nilai setpoint ini kemudian akan dibaca dan diproses di
Zelio. Pembacaan nilai setpoint suhu dan kelembaban sistem loka diambil dari register 20
dan 21.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Gambar 3.9 Subrutin proses setpoint suhu dan kelembaban
Gambar 3.10 Subrutin proses pembacaan setpoint suhu dan kelembaban
Meminta nilai batas atas
dan batas bawah suhu dan
kelembaban
Kirimkan data ba dan
bb
Masukan nilai batas atas
dan batas bawah suhu dan
kelembaban
Kirimkan data ba dan
bb
Mulai
Kembali
Mulai
Kembali
Data nilai ba dan bb dibaca
Data nilai ba dan bb dibaca
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Gambar 3.11 Subrutin proses set aktuator
Gambar 3.11 menunjukkan subrutin proses set pompa dan set pemanas dari menu
setting. Proses alir dari set aktuator ini adalah memasukkan kondisi aktuator yang diinginkan
yaitu on/off. Masukan kondisi aktuator adalah dari Register 19 bit 01 untuk pemanas dan bit
02 untuk pompa, kemudian data akan dikirim ke Zelio.
Gambar 3.12 menunjukkan subrutin proses pengaturan tombol enable. Proses alir
adalah memasukkan kondisi tombol enable yang diinginkan. Masukan kondisi tombol
enable ini adalah dari register 16 bit 07.
Masukan kondisi
Aktuator
Kirimkan data
Mulai
Kembali
Data kondisi aktuator dibaca
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Gambar 3.12 Subrutin Proses Pengaturan Tombol Enable
3.4.5. Perancangan Menu Monitoring
Menu monitoring ini dirancang agar user dapat melakukan pemantauan atau
pengawasan pada sistem lokal kumbung jamur. Melalui menu ini, user dapat melihat nilai
suhu dan kelembaban serta status dari pemanas dan pompa air. Gambar 3.13 menunjukkan
Halaman Menu Monitoring yang akan dibuat.
Langkah untuk melakukan monitoring adalah sebagai berikut. Pada halaman menu
utama, user menekan tombol menu monitor, kemudian user akan diarahkan ke halaman
menu monitor. Pada halaman menu monitor ini, user dapat melihat nilai suhu dan nilai
kelembaban yang terjadi pada beberapa interval waktu yaitu 5 detik, 10 detik atau 15 detik.
Untuk status pompa dan pemanas, user dapat melihat indikator warna pada status, dan
di interface akan menampilkan lampu indikator warna untuk memberitahu user mengenai
Masukan kondisi tombol
enable
Kirimkan data
Mulai
Kembali
Data kondisi tombol enable dibaca
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
status akuator dalam keadaan on atau off. Untuk kembali ke menu utama, maka user dapat
menekan tombol back pada user interface.
Gambar 3.13 Halaman Menu Monitor
MENU MONITORING
Nilai Suhu
Status Pompa
Status Pemanas
Nilai Kelembaban
5 detik
10 detik
15 detik
SETTING
LOGGING
MENU UTAMA
JUDUL
MONITORING
BACK
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Gambar 3.14 Subrutin proses monitor suhu
Gambar 3.15 Subrutin proses monitor kelembaban
Gambar 3.14 dan gambar 3.15 menunjukkan mengenai diagram alir subrutin proses
monitor suhu dan kelembaban. Data yang dikirimkan dari Zelio akan dibaca di register 20
untuk suhu dan register 21 untuk kelembaban, data kemudian akan ditampilkan dalam
halaman menu monitor.
Mulai
Kembali
Read data nilai kelembaban
Tampilkan data nilai kelembaban
Mulai
Kembali
Read data nilai suhu
Tampilkan data nilai suhu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Gambar 3.16 Subrutin proses status Aktuator
Gambar 3.16 menunjukkan mengenai diagram alir subrutin proses status aktuator dari
halaman menu monitor. Dalam diagram alir ini, terdapat pembacaan terhadap data aktuator.
Data aktuator dibaca di register 22 untuk pemanas dan 23 untuk pompa. Jika kondisi aktuator
bernilai 1 maka kondisi yang akan ditampilkan adalah indikator ON, sebaliknya jika kondisi
0, maka kondisi aktuator yang akan ditampilkan adalah indikator OFF.
Gambar 3.17 menunjukkan diagram alir subrutin proses interval monitoring data. Data
diakses dari register 20 sampai register 23 dan kemudian membaca perintah user yaitu lama
interval monitor data yang ingin dilihat dan mengirim data yang sudah diakses kemudian
data akan ditampilkan di GUI.
Nilai 1 Tidak
Ya
Mulai
Kembali
Tampilkan kondisi ON
Tampilkan kondisi OFF
Read Data Aktuator
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Gambar 3.17 Subrutin proses interval monitor data
3.4.6. Perancangan Menu Logging
Menu Logging ini dirancang agar user dapat mengetahui perubahan nilai suhu dan
kelembaban dan status aktuator yang terjadi pada pada rentang data yang ditentukan oleh
user, dan user juga dapat melihat perubahan yang terjadi dalam bentuk grafik agar
memudahkan untuk melakukan pembacaan.
Gambar 3.18 menunjukkan halaman menu logging yang akan dibuat. Langkah untuk
melakukan logging adalah pada halaman menu utama, user menekan tombol menu logging,
kemudian user akan diarahkan ke halaman menu logging. Di halaman menu logging ini, user
dapat memasukan interval logging data yaitu 10 data, 15 data dan 20 data.
Jika user ingin melihat data, maka user dapat menekan tombol open file. Jika user
ingin melihat tampilan dalam bentuk grafik, maka user dapat menekan tombol virtual
tampilkan plot dan memilih file yang akan ditampilkan.
Kirim data yang
dimonitoring
Akses data yang
dimonitoring
Baca perintah user
Mulai
Kembali
Tampilkan data di GUI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Gambar 3.18 Halaman Menu Logging
Data akan disimpan dalam format csv (comma separated values) yaitu format tabel.
Data ini akan disimpan per interval logging data yang dirata-rata. Sebagai contoh interval
logging yang dipilih adalah 10 data, dan interval waktu yang dipilih adalah 5 detik (lihat
gambar 3.12 pada Halaman Menu Monitoring), maka tiap 5 detik, data akan dikumpulkan
hingga berjumlah 10 data, kemudian 10 data tersebut akan dirata-rata, dan waktu akan
bergantung pada selesainya proses pengumpulan 10 data yang dirata-rata. Data ini akan
disimpan perhari dengan format yyyymmdd.csv
SETTING
LOGGING
MENU UTAMA
JUDUL
MENU LOGGING
Tampilkan Plot
Interval Logging Data
10 data
15 data
20 data
Open File
MONITORING
BACK
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Gambar 3.19 Subrutin Proses Data Logging
Gambar 3.19 menunjukkan subrutin proses data logging dari halaman menu logging.
Dalam proses alir ini, user memasukkan interval data logging yang diinginkan. Data akan
diakses dari register 20 sampai register 23. Data kemudian akan dikirimkan dan akan
disimpan. Setelah data disimpan, user dapan membuka file dalam format csv atau
menampilkan plot.
Masukan interval logging
data
Kirimkan data interval
logging
Akses data suhu dan
kelembaban
Mulai
Kembali
Tampilkan plot
Open file
Simpan Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
BAB IV
HASIL DAN PEMBAHASAN
Bab ini berisi mengenai implementasi sistem, pengujian dan analisis data sistem
terhadap menu utama, menu setting, monitoring dan logging, serta pembahasan perangkat
lunak yang meliputi pembahasan pyModbus TCP, program di Zelio Soft, implementasi
alamat IP, program di python dan pembahasan program GUI Tkinter.
4.1. Implementasi Sistem
4.1.1. Perubahan Sensor
Rangkaian sensor suhu dan kelembaban pada sistem lokal yang telah dibuat kurang
dapat bekerja dengan baik, sehingga hal ini akan berdampak pada pengambilan data. Oleh
karena itu pada penelitian ini, sensor suhu dan kelembaban diganti menggunakan dua
potensiometer. Kedua potensiometer ini berfungsi untuk memberikan nilai suhu dan
kelembaban yang terjadi pada saat sekarang. Dengan adanya potensiometer ini, pengujian
suhu dan kelembaban dapat dilakukan dari skala terendah sampai pada skala tertinggi, yaitu
nilai 0 sampai 40 untuk suhu, dan nilai 0 sampai 100 untuk kelembaban. Hal lainnya adalah
untuk melihat sensitifitas perubahan nilai suhu dan kelembaban dimenu monitor sesuai
dengan waktu yang telah ditentukan. DC Power Supply 10V diperlukan untuk tegangan
masukan potensiometer, dengan tegangan 0V dikonversikan kedalam nilai digital integer 0
untuk mewakili 0oC dan 0%, serta 10V dikonversikan kedalam nilai digital integer 255 untuk
mewakili 40oC dan 100%. Gambar 4.1 menunjukkan implementasi dua potensiometer
sebagai masukan suhu dan kelembaban sekarang.
Gambar 4.1 Potensiometer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
4.1.2. Implementasi Plant Sistem
Implementasi dari sistem monitor jarak jauh pada kumbung jamur tiram berbasis
Raspberry Pi ini dapat dilihat dari gambar 4.2
Gambar 4.2 Plant Sistem
Tabel 4.1 Keterangan Plant Sistem
No Keterangan
1 Monitor
2 Keyboard
3 Mouse
4 Kabel HDMI to VGA
5 Raspberry Pi 3
6 Network Switch
7 Zelio Smart Relay dan Modul Komunikasi
8 Tombol Push Button
9 Potensiometer Suhu dan Kelembaban
10 DC Power Supply
11 LED 3mm
12 Kabel LAN
13 Kumbung
14 Pemanas
15 Pompa
Tabel 4.1 menunjukkan keterangan gambar pada perangkat keras sistem monitor jarak
jauh dan kendali lokal. Pada sistem kendali lokal, dua potensiometer dan tombol-tombol
push button dihubungkan ke pin input Zelio Smart Relay. Potensiometer ini menerima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
tegangan dari Power Supply 10V. Tombol-tombol push button tersebut adalah tombol pilih
yang berfungsi untuk memilih jenis pengaturan setpoint suhu dan kelembaban, tombol up
dan down untuk menaikkan dan menurunkan nilai setpoint, serta tombol enable yang
berfungsi untuk mengaktifkan kerja dari semua tombol push button. LED adalah sebagai
indikator dari tombol enable, dan jenis pengaturan setpoint yang dipilih, yaitu batas atas (ba)
dan batas bawah (bb) suhu, serta batas atas dan bawah kelembaban. Kelima LED ini
dihubungkan ke pin output Zelio. Keluaran yang dikendalikan dari sistem lokal adalah
berupa pemanas dan pompa air. Pemanas dan pompa air ini dihubungkan ke pin output Zelio.
Pada sistem monitor jarak jauh, Keyboard, Mouse, kabel LAN dan kabel HDMI to
VGA dihubungkan ke Raspberry Pi. Keyboard berfungsi untuk mengetik nilai-nilai setpoint,
Mouse berfungsi untuk menggerakan kursor dan melakukan pemilihan di window menu.
Kabel HDMI to VGA juga dihubungkan ke monitor, kabel ini membuat grafis tertampil di
layar monitor. Raspberry Pi berkomunikasi dengan Zelio dengan modul komunikasi
Ethernet. Hal ini dilakukan dengan cara menghubungkan kabel LAN dari Raspberry Pi ke
Network Switch, dan juga menghubungkan kabel LAN dari Modul Komunikasi Zelio ke
Network Switch.
4.1.3. Implementasi GUI Tkinter
Hasil implementasi dari perancangan GUI Tkinter dapat dilihat pada gambar 4.3
sampai gambar 4.6. Gambar 4.3 menunjukkan implementasi untuk menu utama. Dalam
menu utama ini, user dapat masuk ke subbab menu setting, menu monitor, dan menu logging
dengan menekan masing-masing tombol subbab menu. User kemudian akan diarahkan ke
window subbab menu yang telah dipilih tersebut.
Gambar 4.4 memperlihatkan implementasi untuk menu setting dilayar monitor. Dalam
menu setting ini, user dapat memasukkan nilai setpoint ba dan bb suhu dengan jangkauan 0-
40oC, serta batas atas dan batas bawah kelembaban dengan jangkauan 0-100% pada kolom
entry, setelah itu user menekan tombol ok. Dibawah nilai setpoint suhu dan kelembaban
terdapat tulisan nilai setpoint default, yaitu 16C/22C dibawah set bb suhu, dan 22C/28C
dibawah set ba suhu, serta 60/80% dibawah set bb kelembaban dan 80/90% dibawah set ba
kelembaban. Hal ini mengacu pada BAB II subbab 2.1.2 mengenai suhu dan kelembaban
untuk tumbuh kembang jamur, yaitu secara khusus untuk suhu dan kelembaban, agar
pertumbuhan jamur menjadi optimal maka diperlukan suhu ruangan dalam kumbung 22 -
28°C dan kelembaban sebesar 60-80% pada saat inkubasi. Sedangkan suhu pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
pembentukan tubuh buah sampai panen berkisar antara 16-22 °C dengan kelembaban 80-
90%. Untuk melakukan pemaksaan kondisi on atau off pada aktuator, user dapat menekan
tombol set pemanas dan set pompa. Untuk melihat nilai setpoint suhu dan kelembaban sistem
lokal, user dapat melihatnya dibagian lokal. Untuk tombol enable, jika user menekan tombol
on, maka sistem dapat diatur dari GUI dan lokal, namun juka user menekan tombol off, maka
sistem hanya bisa diatur dari GUI. Tombol back berfungsi untuk mengembalikan window
ke menu utama.
Gambar 4.3 Menu Utama
Gambar 4.4 Menu Setting
Implementasi dari menu monitor dapat dilihat di gambar 4.5. Dalam menu ini, terdapat
entry yang menampilkan nilai suhu dan kelembaban yang terjadi pada saat sekarang. Status
aktuator ditampilkan dalam kanvas warna merah atau hijau. Terdapat tombol pilihan waktu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
5 detik, 10 detik, dan 15 detik untuk menampilkan nilai suhu dan kelembaban, serta status
aktuator sesuai dengan lama waktu monitoring yang dikehendaki. Tombol back adalah untuk
kembali ke menu utama.
Gambar 4.5 Menu Monitor
Gambar 4.6 menunjukkan implementasi rancangan menu logging. Dalam menu
logging, terdapat interval logging data yaitu 5 data, 15 data, dan 20 data. Tombol open file
akan membawa user ke window dialog untuk memilih file yang ingin dibuka. Tombol plot
juga akan membawa user ke window dialog untuk memilih file csv yang ingin ditampilkan
dalam plot. Tombol go to plot adalah untuk membawa user ke window plot.
Gambar 4.6 Menu Logging
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
4.2. Pengujian dan Analisis Data Sistem
Pengujian dan analisis terhadap sistem monitor jarak jauh ini dibagi menjadi empat,
yaitu pengujian dan analisis terhadap menu utama, menu setting, menu monitor, dan menu
logging.
4.2.1. Pengujian dan Analisis Menu Utama
Pada menu utama, pengujian dilakukan dengan menekan tombol submenu. Ketika
menekan tombol menu setting, maka window menu setting yang terbuka. Ketika menekan
tombol menu monitor, maka window menu monitor yang terbuka. Ketika menekan tombol
tombol menu logging, maka window menu logging yang terbuka. Jika tombol back ditekan
pada masing-masing submenu, maka window akan kembali ke window menu utama.
Mengacu pada tabel 4.2, maka hasil pada menu utama sudah sesuai dengan yang dirancang
sebelumnya.
Tabel 4.2 Hasil Pengujian Menu Utama
Menu Utama Submenu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
4.2.2. Pengujian dan Analisis Data Menu Setting
Pengujian pada menu setting dilakukan dengan menguji entry ba dan bb suhu dan
kelembaban, tombol set pemanas, tombol set pompa, tombol on dan off, entry ba dan bb
suhu dan kelembaan sistem lokal serta menguji tombol on dan off untuk enable.
Tabel 4.3 Data Pengujian Setpoint Suhu
No Pengujian Data
GUI
Hasil
Pengujian Data
Zelio
Keterangan
BB BA BB BA
1 0 1 0 1 Nilai Terkirim
2 5 10 5 10 Nilai Terkirim
3 15 20 15 20 Nilai Terkirim
4 16 22 16 22 Nilai Terkirim
5 17 23 17 23 Nilai Terkirim
6 19 24 19 24 Nilai Terkirim
7 20 25 20 25 Nilai Terkirim
8 21 26 21 26 Nilai Terkirim
9 22 28 22 28 Nilai Terkirim
10 23 29 23 29 Nilai Terkirim
11 24 30 24 30 Nilai Terkirim
12 25 31 25 31 Nilai Terkirim
13 26 32 26 32 Nilai Terkirim
14 27 33 27 33 Nilai Terkirim
15 28 34 28 34 Nilai Terkirim
16 29 35 29 35 Nilai Terkirim
17 30 36 30 36 Nilai Terkirim
18 39 40 39 40 Nilai Terkirim
19 20 15 22 28 Warning: Error Value
20 22 16 22 28 Warning: Error Value
21 24 42 22 28 Warning: Error Value
22 28 22 22 28 Warning: Error Value
23 15 15 22 28 Warning: Error Value
24 16 16 22 28 Warning: Error Value
25 0 0 22 28 Warning: Error Value
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Tabel 4.4 Hasil Pengujian Setpoint Suhu
No Pengujian Nilai SetPoint Suhu GUI Hasil Data Uji Zelio
1
2
3
4
5
Tabel 4.3 adalah pengujian data terhadap menu setting pada bagian entry batas atas
dan batas bawah suhu. Sesuai dengan jangkauan pengukuran suhu yaitu 0o sampai 40oC,
maka nilai-nilai pada nomor 1 sampai 18 yang digunakan dalam data uji ini adalah untuk
menguji kemampuan mengirim dari 0 sampai 40.
Pengujian data dilakukan dengan memasukan nilai setpoint di GUI yaitu memasukan
nilai ba ke entry ba dan nilai bb ke entry bb suhu, kemudian tombol ok ditekan. Nilai-nilai
yang telah dimasukan tersebut berhasil dikirimkan ke Zelio. Hasil ini dapat dilihat pada tabel
4.4. Nomor 1 pada tabel ini menunjukkan kondisi ketika entry belum diberi masukan, dan di
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Zelio nilai setpoint suhu juga masih 0. Di Zelio tersebut, Tb (Temperature bawah)
meunjukkan bb suhu, Ta (Temperature atas) menunjukkan ba suhu, Hb (Humidity bawah)
menunjukkan bb kelembaban, Ha (Humidity atas) menunjukkan ba kelembaban. Nomor 2
menunjukkan ketika nilai ba dan bb dimasukan kedalam entry GUI, yaitu sebagai contoh
nilai bb adalah 22, dan nilai ba adalah 28. Dalam Zelio dapat dilihat bahwa nilai Tb dan Ta
sudah berubah menjadi Tb adalah 22 dan Ta adalah 28. Hal ini menujukkan bawah nilai yang
dimasukan dalam entry GUI tersebut berhasil dikirim ke Zelio.
Data yang dihasilkan pada tabel 4.3, nomor 19 sampai 25 menunjukkan adanya
warning, hal ini karena adanya pembatasan pada nilai ba dan bb suhu, yaitu pada
pemrograman nilai ba harus lebih kecil dari nilai 41 dan harus lebih besar dari bb. Jadi ketika
nilai ba lebih kecil atau ba sama dengan bb atau ba lebih besar dari nilai 40, akan ada dialog
warning yang menunjukan nilai yang dimasukan error (warning: error value). Hal ini berarti
nilai yang telah dimasukan tersebut tidak akan dikirim ke Zelio dan nilai ba dan bb akan
tetap sama seperti nilai yang berhasil dikirim sebelumnya. Pengujian ini dapat dilihat dalam
tabel 4.4 nomor 3 dan 5. Pada nomor 3, ketika nilai 20 dimasukan ke entry bb, dan nilai 15
dimasukan ke entry ba suhu, maka dialog warning akan muncul. Pada nomor 4, ketika nilai
15 dimasukan ke entry bb dan nilai 15 dimasukan ke entry ba, maka dialog warning juga
akan muncul. Pada nomor 5, ketika nilai 24 dimasukan ke entry bb, dan nilai 42 dimasukan
ke entry ba, maka dialog warning akan muncul. Pada Zelio, nilai yang dimasukan tersebut
tidak akan dikirim, dan nilai Tb dan Ta akan tetap sama seperti nilai sebelumnya yaitu Tb
dengan nilai 22 dan Ta dengan nilai 28.
Tabel 4.5 Pengujian Setpoint Kelembaban
No Pengujian Data
GUI
Hasil
Pengujian Data
Zelio
Keterangan
BB BA BB BA
1 0 1 0 1 Nilai Terkirim
2 15 25 15 25 Nilai Terkirim
3 30 40 30 40 Nilai Terkirim
4 35 45 35 45 Nilai Terkirim
5 40 50 40 50 Nilai Terkirim
6 45 55 45 55 Nilai Terkirim
7 50 60 50 60 Nilai Terkirim
8 55 70 55 70 Nilai Terkirim
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Tabel 4.5 (Lanjutan) Pengujian Setpoint Kelembaban
No Pengujian Data
GUI
Hasil
Pengujian Data
Zelio
Keterangan
BB BA BB BA
9 60 80 60 80 Nilai Terkirim
10 65 82 65 82 Nilai Terkirim
11 70 83 70 83 Nilai Terkirim
12 75 87 75 87 Nilai Terkirim
13 80 90 80 90 Nilai Terkirim
14 85 92 85 92 Nilai Terkirim
15 90 94 90 94 Nilai Terkirim
16 92 96 92 96 Nilai Terkirim
17 95 98 95 98 Nilai Terkirim
18 99 100 99 100 Nilai Terkirim
19 40 30 60 80 Warning: Error Value
20 70 50 60 80 Warning: Error Value
21 80 60 60 80 Warning: Error Value
22 92 102 60 80 Warning: Error Value
23 60 60 60 80 Warning: Error Value
24 30 30 60 80 Warning: Error Value
25 0 0 60 80 Warning: Error Value
Tabel 4.6 Hasil Uji Setpoint Kelembaban
No Pengujian Nilai
SetPoint Kelembaban GUI
Hasil Data Uji Zelio
1
2
3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Tabel 4.6 (Lanjutan) Hasil Uji Setpoint Kelembaban
No Pengujian Nilai
SetPoint Kelembaban GUI
Hasil Data Uji Zelio
4
5
Tabel 4.5 adalah pengujian data terhadap menu setting pada bagian entry batas atas
dan batas bawah kelembaban. Sesuai dengan jangkauan pengukuran suhu yaitu 0% sampai
100%, maka nilai-nilai pada nomor 1 sampai 18 yang digunakan dalam data uji ini adalah
untuk menguji kemampuan mengirim dari 0 sampai 100.
Pengujian data dilakukan dengan memasukan nilai setpoint di GUI yaitu memasukan
nilai ba ke entry ba dan nilai bb ke entry bb kelembaban, kemudian tombol ok ditekan. Nilai-
nilai yang telah dimasukan tersebut berhasil dikirimkan ke Zelio. Hasil ini dapat dilihat pada
tabel 4.6. Nomor 1 pada tabel ini menunjukkan kondisi ketika entry belum diberi masukan,
dan di Zelio nilai setpoint suhu juga masih 0. Nomor 2 menunjukkan ketika nilai ba dan bb
dimasukan kedalam entry GUI, yaitu sebagai contoh nilai bb adalah 60, dan nilai ba adalah
80. Dalam Zelio dapat dilihat bahwa nilai Tb dan Ta sudah berubah menjadi Tb adalah 60
dan Ta adalah 80. Hal ini menujukkan bawah nilai yang dimasukan dalam entry GUI tersebut
berhasil dikirim ke Zelio.
Data yang dihasilkan pada tabel 4.5, nomor 19 sampai 25 menunjukkan adanya
warning, hal ini karena adanya pembatasan pada nilai ba dan bb kelembaban, yaitu pada
pemrograman nilai ba harus lebih kecil dari nilai 101 dan harus lebih besar dari bb. Jadi
ketika nilai ba lebih kecil atau ba sama dengan bb atau ba lebih besar dari nilai 100, akan
ada dialog warning yang menunjukan nilai yang dimasukan error (warning: error value).
Hal ini berarti nilai yang telah dimasukan tersebut tidak akan dikirim ke Zelio dan nilai ba
dan bb akan tetap sama seperti nilai yang berhasil dikirim sebelumnya. Pengujian ini dapat
dilihat dalam tabel 4.6 nomor 3 dan 5. Pada nomor 3, ketika nilai 40 dimasukan ke entry bb,
dan nilai 30 dimasukan ke entry ba kelembaban, maka dialog warning akan muncul. Pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
nomor 4, ketika nilai 60 dimasukan ke entry bb dan nilai 60 dimasukan ke entry ba, maka
dialog warning juga akan muncul. Pada nomor 5, ketika nilai 92 dimasukan ke entry bb dan
nilai 102 dimasukan ke entry ba, maka dialog warning juga akan muncul. Pada Zelio, nilai
yang dimasukan tersebut tidak akan dikirim, dan nilai Tb dan Ta akan tetap sama seperti
nilai sebelumnya yaitu Tb dengan nilai 60 dan Ta dengan nilai 80.
Tabel 4.7 Data Pengujian Pembacaan Setpoint Suhu
No Pengujian Data
Sistem Lokal
Zelio
Hasil Pengujian
GUI
Keterangan
BB BA BB BA
1 23 29 23 29 Nilai Terkirim
2 28 35 28 35 Nilai Terkirim
3 30 37 30 37 Nilai Terkirim
4 16 22 16 22 Nilai Terkirim
5 19 25 19 25 Nilai Terkirim
6 21 27 21 27 Nilai Terkirim
7 23 29 23 29 Nilai Terkirim
8 25 30 25 30 Nilai Terkirim
9 24 29 24 29 Nilai Terkirim
10 21 31 21 31 Nilai Terkirim
11 20 32 20 32 Nilai Terkirim
12 23 33 23 33 Nilai Terkirim
13 24 34 24 34 Nilai Terkirim
14 25 35 25 35 Nilai Terkirim
15 19 32 19 32 Nilai Terkirim
Tabel 4.8 Hasil Uji Pembacaan Setpoint Suhu dan Kelembaban
No Pengujian
Pembacaan Nilai
SetPoint Suhu dan
Kelembaban GUI
Hasil Data Uji GUI
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Tabel 4.8 (Lanjutan) Hasil Uji Pembacaan Setpoint Suhu dan Kelembaban
No Pengujian
Pembacaan Nilai
SetPoint Suhu dan
Kelembaban GUI
Hasil Data Uji GUI
2
3
4
Tabel 4.9 Data Pengujian Pembacaan Setpoint Kelembaban
No Pengujian Data
Sistem Lokal
Zelio
Hasil Pengujian
GUI
Keterangan
BB BA BB BA
1 63 83 63 83 Nilai Terkirim
2 68 88 68 88 Nilai Terkirim
3 70 90 70 90 Nilai Terkirim
4 80 90 80 90 Nilai Terkirim
5 77 87 77 87 Nilai Terkirim
6 75 85 75 85 Nilai Terkirim
7 78 84 78 84 Nilai Terkirim
8 74 83 74 83 Nilai Terkirim
9 71 82 71 82 Nilai Terkirim
10 67 81 67 81 Nilai Terkirim
11 66 80 66 80 Nilai Terkirim
12 67 84 67 84 Nilai Terkirim
13 68 85 68 85 Nilai Terkirim
14 69 86 69 86 Nilai Terkirim
15 60 84 60 84 Nilai Terkirim
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Tabel 4.7 dan tabel 4.8 adalah pengujian data terhadap menu setting pada bagian
pembacaan nilai batas atas dan batas bawah suhu dan kelembaban sistem lokal. Pengujian
data dilakukan dengan memasukan nilai setpoint dari sistem lokal Zelio. Nilai-nilai yang
telah dimasukan tersebut berhasil dikirimkan ke GUI. Hasil ini dapat dilihat pada tabel 4.8.
Nomor 1 pada tabel 4.8 ini menunjukkan nilai ba dan bb suhu dan kelembaban yang diatur
dari sistem lokal Zelio. Di Zelio tersebut, Tb bernilai 16, Ta bernilai 22, Hb bernilai 80, dan
Ha bernilai 90. Nilai yang dibaca di GUI juga menunjukkan nilai yang sama, yaitu bb suhu
bernilai 16, ba suhu bernilai 22, bb kelembaban bernilai 80 dan ba kelembaban berniali 90.
Hal ini menujukkan bawah nilai yang dimasukan dari sistem lokal Zelio berhasil dikirim dan
dibaca di GUI.
Tabel 4.10 Set Pemanas Kondisi Awal On
Tombol
Set
Pemanas
Kondisi Keadaan
Pemanas
Indikator
Tombol On Tombol Off
0 Awal 1 Relief/Biru Relief/Biru
1 Awal 1 Sunken/Hijau Relief/Biru
1 Tombol
Off
0 Relief/Biru Sunken/Hijau
1 Tombol
On
1 Sunken/Hijau Relief/Biru
Keterangan:
= Relief/Biru = Sunken/Hijau
Tabel 4.11 Set Pemanas Kondisi Awal Off
Tombol
Set
Pemanas
Kondisi Keadaan
Pemanas
Indikator
Tombol On Tombol Off
0 Awal 0 Relief/Biru Relief/Biru
1 Awal 0 Relief/Biru Sunken/Hijau
1 Tombol
On
1 Sunken/Hijau Relief/Biru
1 Tombol
Off
0 Relief/Biru Sunken/Hijau
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Tabel 4.12 Hasil Uji Set Pemanas Kondisi Awal 1
No Pengujian Tombol Set
Pemanas
Hasil Uji Zelio
1 Kondisi Awal Pemanas: 1
2
3
4
Tabel 4.13 Hasil Uji Set Pemanas Kondisi Awal 0
No Pengujian Tombol Set
Pemanas
Hasil Uji Zelio
1
Kondisi Awal Pemanas: 0
2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Tabel 4.13 (Lanjutan) Hasil Uji Set Pemanas Kondisi Awal 0
No Pengujian Tombol Set
Pemanas
Hasil Uji Zelio
3
4
Tabel 4.10 memperlihatkan mengenai set pemanas dalam keadaan awal pemanas
adalah on atau kondisi 1. Pengujian set pemanas dilakukan terhadap tombol set pemanas,
dan tombol on dan off, dengan kondisi Tb bernilai 22, Ta bernilai 28, Hb bernilai 60 dan Ha
bernilai 80, nilai suhu sekarang adalah 17 dan nilai kelembaban sekarang adalah 76. Nilai
suhu sekarang adalah kurang dari nilai setpoint, sedangkan nilai kelembaban berada diantara
nilai setpoint, hal ini membuat kondisi aktuator pemanas bernilai 1 atau on.
Ketika tombol set pemanas tidak ditekan atau kondisi 0, maka tombol on dan off tidak
akan bisa mengirimkan perintah ke Zelio. Hasil ini dapat dilihat pada tabel 4.12, nomor 1.
Di GUI, indikator dari tombol on dan off adalah relief atau berwarna biru, ini menandakan
bahwa ketika tombol ini ditekan, tidak akan ada aksi yang terjadi. Hasil di Zelio adalah tetap
sama seperti sebelumnya, yaitu kondisi pemanas (Hetr) adalah 1.
Ketika tombol set pemanas ditekan, maka tombol on dan off dapat beroperasi. Kondisi
awal pemanas adalah 1, maka tombol on menjadi sunken atau berwana hijau, sedangkan
tombol off tetap relief atau berwarna biru. Hasil ini dapat dilihat di tabel 4.12, nomor 2.
Ketika kondisi pemanas awal 1 atau on ini dipaksa menjadi 0 atau off, maka tombol off
ditekan atau diberi kondisi 1. Tombol off kemudian berubah menjadi berwarna hijau atau
menjadi sunken, sedangkan tombol on akan menjadi relief/berwarna biru karena kondisi 0.
Hasil uji ini dapat dilihat pada nomor 2 dan 3. Hetr atau pemanas di Zelio nilainya dari
kondisi awal 1 berhasil dipaksa menjadi kondisi 0. Ketika kondisi pemanas awal 1, dan
tombol on ditekan, maka kondisi pemanas akan tetap bernilai 1. Hal ini dapat dilihat pada
nomor 2 dan nomor 4, yaitu kondisi Hetr tetap bernilai 1. Hasil data uji tabel 4.12 ini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
menunjukkan bahwa rancangan indikator tombol relief/sunken dan perintah pemaksaan
aktuator pemanas berhasil dilakukan.
Tabel 4.11 memperlihatkan mengenai set pemanas dalam keadaan awal pemanas
adalah off atau kondisi 0. Pengujian set pemanas ini dengan kondisi Tb bernilai 22, dan Ta
bernilai 28, dan Hb bernilai 60 dan Ha bernilai 80, nilai suhu sekarang adalah 25 dan nilai
kelembaban sekarang adalah 75. Nilai suhu sekarang dan nilai kelembaban sekarang berada
diantara nilai setpoint, hal ini membuat kondisi aktuator pemanas bernilai 0 atau off.
Ketika tombol set pemanas tidak ditekan atau kondisi 0, maka tombol on dan off tidak
akan bisa mengirimkan perintah ke Zelio. Hasil ini dapat dilihat pada tabel 4.13, nomor 1.
Di GUI, indikator dari tombol on dan off adalah relief atau berwarna biru, ini menandakan
bahwa ketika tombol ini ditekan, tidak akan ada aksi yang terjadi. Hasil di Zelio adalah tetap
sama seperti sebelumnya, yaitu kondisi pemanas (Hetr) adalah 0.
Ketika tombol set pemanas ditekan, maka tombol on dan off dapat beroperasi. Kondisi
awal pemanas adalah 0, maka tombol off menjadi sunken atau berwana hijau, sedangkan
tombol on tetap relief atau berwarna biru. Hasil ini dapat dilihat di tabel 4.13, nomor 2.
Ketika kondisi pemanas awal 0 atau off ini dipaksa menjadi 1 atau on, maka tombol on
ditekan atau diberi kondisi 1. Tombol on kemudian berubah menjadi warna hijau atau
menjadi sunken, sedangkan tombol off akan menjadi relief/berwarna biru karena kondisi 0.
Hasil uji ini dapat dilihat pada nomor 2 dan 3. Hetr atau pemanas di Zelio nilainya dari
kondisi awal 0 berhasil dipaksa menjadi kondisi 1. Ketika kondisi pemanas awal 0, dan
tombol off ditekan, maka kondisi pemanas akan tetap bernilai 0. Hal ini dapat dilihat pada
nomor 2 dan nomor 4, yaitu kondisi Hetr tetap bernilai 0. Hasil data uji tabel 4.13 ini
menunjukkan bahwa rancangan indikator tombol relief/sunken dan perintah pemaksaan
aktuator pemanas berhasil dilakukan.
Tabel 4.14 Set Pompa Kondisi On
Tombol Set
Pompa
Kondisi Keadaan
Pompa
Indikator
Tombol
On
Tombol
Off
0 Awal 1 Relief Relief
1 Awal 1 Sunken Relief
1 Tombol Off 0 Relief Sunken
1 Tombol On 1 Sunken Relief
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Tabel 4.15 Set Pompa Kondisi Off
Tombol Set
Pompa
Kondisi Keadaan
Pompa
Indikator
Tombol
On
Tombol
Off
0 Awal 0 Relief Relief
1 Awal 0 Relief Sunken
1 Tombol On 1 Sunken Relief
1 Tombol Off 0 Relief Sunken
Tabel 4.16 Hasil Uji Set Pompa Kondisi Awal 1
No Tombol Set Pompa Hasil Uji Zelio
1
Kondisi Awal Pompa: 1
2
3
4
Tabel 4.17 Hasil Uji Set Pompa Kondisi Awal 0
No Tombol Set Pompa Hasil Uji Zelio
1 Kondisi Awal Pompa: 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Tabel 4.17 (Lanjutan) Hasil Uji Set Pompa Kondisi Awal 0
No Tombol Set Pompa Hasil Uji Zelio
2
3
4
Tabel 4.14 memperlihatkan mengenai set pompa dalam keadaan awal pompa adalah
on atau kondisi 1. Pengujian set pemanas dilakukan terhadap tombol set pemanas, dan
tombol on dan off, dengan kondisi Tb bernilai 22, dan Ta bernilai 28, dan Hb bernilai 60 dan
Ha bernilai 80, nilai suhu sekarang adalah 24 dan nilai kelembaban sekarang adalah 58. Nilai
suhu sekarang adalah berada diantara nilai setpoint, sedangkan nilai kelembaban sekarang
adalah kurang dari nilai setpoint, hal ini membuat kondisi aktuator pompa bernilai 1 atau on.
Ketika tombol set pompa tidak ditekan atau kondisi 0, maka tombol on dan off tidak
akan bisa mengirimkan perintah ke Zelio. Hasil ini dapat dilihat pada tabel 4.16, nomor 1.
Di GUI, indikator dari tombol on dan off adalah relief atau berwarna biru, ini menandakan
bahwa ketika tombol ini ditekan, tidak akan ada aksi yang terjadi. Hasil di Zelio adalah tetap
sama seperti sebelumnya, yaitu kondisi pompa (Pomp) adalah 1.
Ketika tombol set pompa ditekan, maka tombol on dan off dapat beroperasi. Kondisi
awal pemanas adalah 1, maka tombol on menjadi sunken atau berwana hijau, sedangkan
tombol off tetap relief atau berwarna biru. Hasil ini dapat dilihat di tabel 4.16, nomor 2.
Ketika kondisi pemanas awal 1 atau on ini dipaksa menjadi 0 atau off, maka tombol off
ditekan atau diberi kondisi 1. Tombol off kemudian berubah berwarna hijau atau menjadi
sunken, sedangkan tombol on akan menjadi relief/berwarna biru karena kondisi 0. Hasil uji
ini dapat dilihat pada nomor 2 dan 3. Pomp atau pompa di Zelio nilainya dari kondisi awal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
1 berhasil dipaksa menjadi kondisi 0. Ketika kondisi pemanas awal 1, dan tombol on ditekan,
maka kondisi pemanas akan tetap bernilai 1. Hal ini dapat dilihat pada nomor 2 dan nomor
4, yaitu kondisi Pomp tetap bernilai 1. Hasil data uji tabel 4.16 ini menunjukkan bahwa
rancangan indikator tombol relief/sunken dan perintah pemaksaan aktuator pompa berhasil
dilakukan.
Tabel 4.15 memperlihatkan mengenai set pompa dalam keadaan awal pompa adalah
off atau kondisi 0. Pengujian set pompa ini dengan kondisi Tb bernilai 22, dan Ta bernilai
28, dan Hb bernilai 60 dan Ha bernilai 80, nilai suhu sekarang adalah 25 dan nilai
kelembaban sekarang adalah 75. Nilai suhu sekarang dan nilai kelembaban sekarang berada
diantara nilai setpoint, hal ini membuat kondisi aktuator pompa bernilai 0 atau off.
Ketika tombol set pompa tidak ditekan atau kondisi 0, maka tombol on dan off tidak
akan bisa mengirimkan perintah ke Zelio. Hasil ini dapat dilihat pada tabel 4.17, nomor 1.
Di GUI, indikator dari tombol on dan off adalah relief atau berwarna biru, ini menandakan
bahwa ketika tombol ini ditekan, tidak akan ada aksi yang terjadi. Hasil di Zelio adalah tetap
sama seperti sebelumnya, yaitu kondisi pompa (Pomp) adalah 0.
Ketika tombol set pompa ditekan, maka tombol on dan off dapat beroperasi. Kondisi
awal pemanas adalah 0, maka tombol off menjadi sunken atau berwana hijau, sedangkan
tombol on tetap relief atau berwarna biru. Hasil ini dapat dilihat di tabel 4.17, nomor 2.
Ketika kondisi pompa awal 0 atau off ini dipaksa menjadi 1 atau on, maka tombol on ditekan
atau diberi kondisi 1. Tombol on kemudian berubah menjadi warna hijau atau menjadi
sunken, sedangkan tombol off akan menjadi relief/berwarna biru karena kondisi 0. Hasil uji
ini dapat dilihat pada nomor 2 dan 3. Pomp di Zelio nilainya dari kondisi awal 0 berhasil
dipaksa menjadi kondisi 1. Ketika kondisi pompa awal 0, dan tombol off ditekan, maka
kondisi pemanas akan tetap bernilai 0. Hal ini dapat dilihat pada nomor 2 dan nomor 4, yaitu
kondisi Pomp tetap bernilai 0. Hasil data uji tabel 4.17 ini menunjukkan bahwa rancangan
indikator tombol relief/sunken dan perintah pemaksaan aktuator pompa berhasil dilakukan.
Tabel 4.18 Pengujian Bagian Tombol Enable
Tombol
On
Tombol
Off
Lokal GUI
0 1 0 1
1 0 1 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
Gambar 4.7 LED Tombol Enable
Gambar 4.8 LED dan Tombol
Pengujian pada bagian tombol enable ditunjukkan pada tabel 4.18. Jika tombol on di
GUI tidak ditekan, maka sistem monitor jarak jauh hanya bisa diatur dari GUI saja. Hal ini
ditunjukkan pada gambar 4.7, meskipun push button enable ditekan dengan indikator led
menyala, namun ketika push button yang lain ditekan, tetap tidak bisa dioperasikan dari
lokal. Jika tombol on di GUI ditekan, maka sistem bisa diatur dari GUI dan dari lokal. Hal
ini ditunjukkan pada gambar 4.8, tombol enable ditekan terlebih dahulu, dan led enable
menyala, kemudian push button yang lain dapat dioperasikan. Dapat dilihat pada contoh
gambar 4.8, ketika push button pilih ditekan, maka indicator led pilih dapat menyala, dan
ketika tombol up ditekan, maka indicator led up menyala. Hasil ini sesuai dengan yang telah
dirancangankan sebelumnya.
4.2.3. Pengujian dan Analisis Data Menu Monitoring
Pengujian pada menu monitoring meliputi pengujian terhadap tiga kondisi high,
normal dan low pada suhu dan kelembaban serta status aktuator yang dihasilkan berdasar
setpoint tertentu, pengujian tampilan data-data di menu monitoring, serta pengujian terhadap
interval waktu.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Tabel 4.19 Perancangan FBD [4]
Suhu Kelembaban Status Aktuator
High Normal Low High Normal Low Pemanas Pompa
1 0 0 1 0 0 0 0
1 0 0 0 1 0 0 1
1 0 0 0 0 1 0 1
0 1 0 1 0 0 1 0
0 1 0 0 1 0 0 0
0 1 0 0 0 1 0 1
0 0 1 1 0 0 1 0
0 0 1 0 1 0 1 0
0 0 1 0 0 1 1 1
Tabel 4.20 Hasil Uji Monitoring
Suhu Kelembaban Status Aktuator
H N L H N L Pemanas Pompa
30 0 0 94 0 0 0 0
31 0 0 0 65 0 0 1
38 0 0 0 0 50 0 1
0 23 0 87 0 0 1 0
0 24 0 0 70 0 0 0
0 25 0 0 0 52 0 1
0 0 20 90 0 0 1 0
0 0 18 0 72 0 1 0
0 0 16 0 0 49 1 1
Keterangan:
*kondisi 0: warna merah
*kondisi 1: warna hijau
Tabel 4.19 adalah tabel perancangan kondisi suhu dan kelembaban, serta status
aktuator sesuai dengan suhu dan kelembaban yang terjadi tersebut. Pada suhu dan
kelembaban, nilai high adalah jika suhu dan kelembaban sekarang lebih besar dari nilai
setpoint yang telah ditentukan, nilai normal jika suhu dan kelembaban berada diantara nilai
setpoint, dan nilai low jika suhu dan kelembaban sekarang kurang dari nilai setpoint yang
telah ditentukan.
Tabel 4.20 berisi hasil uji atau hasil implementasi dari tabel 4.19 dengan nilai setpoint
suhu yaitu bb bernilai 22, dan ba bernilai 28, serta nilai setpoint kelembaban yaitu bb bernilai
60 dan ba bernilai 80. Berdasarkan tabel 4.20 ini, maka hasil implementasi adalah sesuai
dengan yang dirancang seperti pada tabel 4.19
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
Tabel 4.21 memperlihatkan hasil uji pertukaran data yang terjadi dari Zelio ke GUI
Raspberry Pi. Dalam monitoring ini, dapat dilihat pada nomor 1 bahwa di Zelio nilai suhu
sekarang adalah 25, kelembaban sekarang 74, status pemanas adalah 0, dan status pompa
adalah 0. Data dari Zelio ini dikirimkan ke GUI dan di menu monitoring tersebut tertampil
nilai suhu adalah 25, nilai kelembaban adalah 74, status pemanas adalah berwarna merah
atau kondisi 0, dan status pompa adalah berwarna merah atau kondisi 0. Tabel 4.21, nomor
2 dan 4 juga telah menunjukkan kesesuaian antara data-data yang dikirim dari Zelio ke GUI
Raspberry Pi. Melalui tabel 4.21 dapat dilihat bahwa pengiriman data dari Zelio ke
Raspberry GUI telah berhasil dilakukan.
Tabel 4.21 Hasil Uji Monitoring di GUI
No Data Dari Zelio Hasil Data Tampil Di GUI
1
2
3
4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Gambar 4.9 Interval Waktu 5 detik
Pengujian selanjutnya adalah pada interval waktu monitoring yaitu 5 detik, 10 detik
dan 15 detik. Data-data dari Zelio yang dikirimkan akan tertampil di GUI sesuai dengan
interval waktu yang telah dipilih tersebut. Gambar 4.9 menunjukkan data yang tertampil
setiap 5 detik, gambar 4.10 menunjukkan data yang tertampil setiap 10 detik, dan gambar
4.11 menunjukkan data yang tertampil setiap 15 detik. Dari gambar-gambar tersebut dapat
dilihat bahwa meskipun nilai suhu dan kelembaban serta status aktuator berubah-ubah,
namun data-data yang akan tertampil adalah data yang berada tepat pada interval waktu
tersebut. Jika yang diambil adalah interval waktu 5 detik, dan data pada detik 1 adalah
suhu=25, kelembaban=95, status pemanas=1, status pompa=0, lalu pada detik ke-4 ada
perubahan data, yaitu suhu=23, kelembaban=95, status pemanas=1, dan status pompa=0,
kemudian pada detik ke-5 terdapat perubahan data lagi, yaitu suhu=20, kelembaban=95,
status pemanas=1, dan status pompa=0, maka data yang tertampil adalah data pada detik ke-
5 tersebut (entry dd=5), yaitu suhu=20, kelembaban=95, status pemanas=1, dan status
pompa=0. Demikian juga pada interval waktu 10 detik dan 15 detik, data tertampil adalah
data yang tepat pada interval waktu tersebut. Hasil ini menunjukkan bahwa interval data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
telah sesuai dengan yang dirancangkan sebelumnya, yaitu data hanya akan tertampil sesuai
dengan waktu yang telah dipilih tersebut.
Gambar 4.10 Interval Waktu 10 detik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Gambar 4.11 Interval Waktu 15 detik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Gambar 4.12 Pemilihan Interval Waktu
Gambar 4.12 menunjukkan hal yang terjadi jika interval waktu dipilih dari nilai waktu
yang besar ke nilai yang kecil, sebagai contoh pilihan awal interval waktu adalah 10 detik,
kemudian diganti menjadi interval waktu 5 detik. Dapat dilihat digambar bahwa perhitungan
detik dihentikan pada detik ke-8 atau tidak akan dilanjutkan sampai detik ke-10, karena jika
terus dilanjutkan sampai detik ke-10 atau tidak dihentikan, maka perhitungan detik akan
berlanjut dan tidak bisa reset ke detik pertama kembali, sehingga dalam kasus ini, data
monitoring yang tertampil adalah data pada detik ke-8. Setelah itu perhitungan reset kembali
ke interval waktu 5 detik. Hal ini telah sesuai dengan yang dirancangkan dalam program.
4.2.4. Pengujian dan Analisis Data Menu Logging
Pengujian dalam menu logging ini meliputi pengujian terhadap penyimpanan data
sesuai dengan interval waktu logging, membuka dan menampilkan file, penyimpanan
otomatis nama file sesuai dengan tanggal, serta membuka dan menampilkan plot. Data-data
yang dilogging ini berdasarkan pada nilai bb suhu yaitu 22, ba suhu yaitu 28, bb kelembaban
yaitu 60 dan ba kelembaban yaitu 80.
Gambar 4.13 menunjukkan bahwa penyimpanan otomatis nama file sesuai dengan
tanggal berhasil dilakukan. Data-data yang dihasilkan dapat dilihat dalam lampiran 1, data-
data-data ini adalah hasil dari kombinasi interval waktu 5 detik, 10 detik dan 15 detik dengan
interval logging data 5 data, 15 data dan 20 data. Total data yang disimpan tersebut adalah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
2545 data. Data-data ini diambil selama 27 jam dari tanggal 10-08-2018 jam 13:48:46
sampai tanggal 11-08-2018 jam 17:11:38, dapat dilihat bahwa setelah jam 24.00 tanggal 10-
08-2018, data-data masuk dalam file baru dengan nama file 11-08-2018 berhasil disimpan.
Ukuran maksimum file csv yang disimpan adalah 68kb dengan interval 5 detik dan 5 data,
dengan total data dalam 24 jam yaitu 3456 data. Kapasitas memory Raspberry Pi yang
digunakan yaitu 32GB, dengan sisa kapasitas 16.7GB setelah memory yang lain digunakan
untuk sistem. Dengan sisa kapasistas 16.7GB ini, maka kemampuan untuk menyimpan file
csv 68kb adalah sejumlah 245588 file. Dari hal tersebut, jika 1 file disimpan perhari, maka
Raspberry Pi disimpulkan memiliki kapasitas menyimpan file csv hingga 672 tahun.
Gambar 4.13 Penyimpanan Nama File Otomatis
Tabel 4.22 Data 29-08-2018.csv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
Gambar 4.14 Interval 5 Data 5 Detik
Pengujian ini dilakukan terhadap interval logging data dengan pilihan 5 data dan
interval waktu 5 detik. Gambar 4.14 menunjukkan bahwa dalam setiap 5 detik, data berhasil
dikumpulkan hingga berjumlah 5 data, kemudian 5 data tersebut dirata-rata, dan waktu
selesai proses pengumpulan 5 data yang dirata-rata tersebut adalah 14:47:08. Mengacu pada
persamaan 2.9 pada Bab II, maka hasil rata-rata suhu=36, rata kelembaban=96, rata
pemanas=0, dan rata pompa=0. Sesuai perancangan pada tabel 4.19, yaitu ketika nilai suhu
adalah high dan nilai kelembaban adalah high, maka status pemanas adalah 0, dan status
pompa adalah 0. Hal ini berarti hasil telah sesuai dengan yang dirancangkan. Data-data ini
berhasil dilogging atau disimpan dalam file berformat csv. Hasil logging data ini dapat
dilihat dalam tabel 4.22
Gambar 4.15 Interval 15 Data 5 Detik
Pengujian ini dilakukan terhadap interval logging data dengan pilihan 15 data dan
interval waktu 5 detik. Gambar 4.15 menunjukkan bahwa dalam setiap 5 detik, data berhasil
dikumpulkan hingga berjumlah 15 data, kemudian 15 data tersebut dirata-rata, dan waktu
selesai proses pengumpulan 15 data yang dirata-rata tersebut adalah 14:50:28. Mengacu
pada persamaan 2.9 pada Bab II, maka hasil rata-rata suhu=26.53333, rata
kelembaban=48.8, rata pemanas=0, dan rata pompa=1. Hasil logging data ini dapat dilihat
dalam tabel 4.22. Dalam tabel tersebut, rata suhu adalah 27, dan rata kelembaban adalah 49,
hal ini karena dalam pemrograman dibuat adanya pembulatan. Jika nilai lebih atau sama
dengan 0.5, maka nilai akan mengalami pembulatan keatas menjadi 1, namun jika nilai
kurang dari 0.5 maka nilai akan mengalami pembualatan kebawah menjadi 0, sehingga rata
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
suhu=26.53333 menjadi 27 dan rata kelembaban=48.8 menjadi 49. Sesuai perancangan pada
tabel 4.19, yaitu ketika nilai suhu adalah normal dan nilai kelembaban adalah low, maka
status pemanas adalah 0, dan status pompa adalah 1. Hal ini berarti hasil telah sesuai dengan
yang dirancangkan. Data-data ini berhasil dilogging atau disimpan dalam file berformat csv.
Gambar 4.16 Interval 20 Data 5 Detik
Pengujian ini dilakukan terhadap interval logging data dengan pilihan 20 data dan
interval waktu 5 detik. Gambar 4.16 menunjukkan bahwa dalam setiap 5 detik, data berhasil
dikumpulkan hingga berjumlah 20 data, kemudian 20 data tersebut dirata-rata, dan waktu
selesai proses pengumpulan 20 data yang dirata-rata tersebut adalah 14:52:13. Mengacu
pada persamaan 2.9 pada Bab II, maka hasil rata-rata suhu=24.3, rata kelembaban=69.8, rata
pemanas=0, dan rata pompa=0. Hasil logging data ini dapat dilihat dalam tabel 4.22. Dalam
tabel tersebut, rata suhu adalah 24, dan rata kelembaban adalah 70, hal ini karena dalam
pemrograman dibuat adanya pembulatan. Jika nilai lebih atau sama dengan 0.5, maka nilai
akan mengalami pembulatan keatas menjadi 1, namun jika nilai kurang dari 0.5 maka nilai
akan mengalami pembualatan kebawah menjadi 0, sehingga rata suhu=24.3 menjadi 24 dan
rata kelembaban=69.8 menjadi 70. Sesuai perancangan pada tabel 4.19, yaitu ketika nilai
suhu adalah normal dan nilai kelembaban adalah normal, maka status pemanas adalah 0, dan
status pompa adalah 0. Hal ini berarti hasil telah sesuai dengan yang dirancangkan. Data-
data ini berhasil dilogging atau disimpan dalam file berformat csv.
Gambar 4.17 Interval 5 Data 10 Detik
Pengujian ini dilakukan terhadap interval logging data dengan pilihan 5 data dan
interval waktu 10 detik. Gambar 4.17 menunjukkan bahwa dalam setiap 10 detik, data
berhasil dikumpulkan hingga berjumlah 5 data, kemudian 5 data tersebut akan dirata-rata,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
dan waktu selesai proses pengumpulan 5 data yang dirata-rata tersebut adalah 14:47:58.
Mengacu pada persamaan 2.9 pada Bab II, maka hasil rata-rata suhu=38, rata
kelembaban=73.8, rata pemanas=0, dan rata pompa=0.8. Hasil logging data ini dapat dilihat
dalam tabel 4.22. Dalam tabel tersebut, rata kelembaban memiliki nilai 74 dan rata pompa=1,
hal ini karena dalam pemrograman dibuat adanya pembulatan. Jika nilai lebih atau sama
dengan 0.5, maka nilai akan mengalami pembulatan keatas menjadi 1, namun jika nilai
kurang dari 0.5 maka nilai akan mengalami pembualatan kebawah menjadi 0, sehingga rata
kelembaban=73.8 menjadi 74, dan rata pompa=0.8 menjadi 1. Sesuai perancangan pada
tabel 4.19, yaitu ketika nilai suhu adalah high dan nilai kelembaban adalah normal, maka
status pemanas adalah 0, dan status pompa adalah 1. Hal ini berarti hasil telah sesuai dengan
yang dirancangkan. Data-data ini berhasil dilogging atau disimpan dalam file berformat csv.
Gambar 4.18 Interval 5 Data 15 Detik
Pengujian ini dilakukan terhadap interval logging data dengan pilihan 5 data dan
interval waktu 15 detik. Gambar 4.18 menunjukkan bahwa dalam setiap 15 detik, data
berhasil dikumpulkan hingga berjumlah 5 data, kemudian 5 data tersebut akan dirata-rata,
dan waktu selesai proses pengumpulan 5 data yang dirata-rata tersebut adalah 14:49:13.
Mengacu pada persamaan 2.9 pada Bab II, maka hasil rata-rata suhu=31, rata
kelembaban=47.4, rata pemanas=0, dan rata pompa=1. Hasil logging data ini dapat dilihat
dalam tabel 4.22. Dalam tabel tersebut, rata kelembaban memiliki nilai 47, hal ini karena
dalam pemrograman dibuat adanya pembulatan. Jika nilai lebih atau sama dengan 0.5, maka
nilai akan mengalami pembulatan keatas menjadi 1, namun jika nilai kurang dari 0.5 maka
nilai akan mengalami pembualatan kebawah menjadi 0, sehingga rata kelembaban 47.4
menjadi 47. Sesuai perancangan pada tabel 4.19, yaitu ketika nilai suhu adalah high dan nilai
kelembaban adalah low, maka status pemanas adalah 0, dan status pompa adalah 1. Hal ini
berarti hasil telah sesuai dengan yang dirancangkan. Data-data ini berhasil dilogging atau
disimpan dalam file berformat csv.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
Gambar 4.19 Interval 15 Data 10 Detik
Pengujian ini dilakukan terhadap interval logging data dengan pilihan 15 data dan
interval waktu 10 detik. Gambar 4.19 menunjukkan bahwa dalam setiap 10 detik, data
berhasil dikumpulkan hingga berjumlah 15 data, kemudian 15 data tersebut akan dirata-rata,
dan waktu selesai proses pengumpulan 15 data yang dirata-rata tersebut adalah 14:54:43.
Mengacu pada persamaan 2.9 pada Bab II, maka hasil rata-rata suhu=24.8, rata
kelembaban=94, rata pemanas=0.93333, dan rata pompa=0. Hasil logging data ini dapat
dilihat dalam tabel 4.22. Dalam tabel tersebut, rata suhu=25 dan rata pemanas=1, hal ini
karena dalam pemrograman dibuat adanya pembulatan. Jika nilai lebih atau sama dengan
0.5, maka nilai akan mengalami pembulatan keatas menjadi 1, namun jika nilai kurang dari
0.5 maka nilai akan mengalami pembualatan kebawah menjadi 0, sehingga rata suhu=24.8
menjadi 25, dan rata pemanas=0.93333 menjadi 1. Sesuai perancangan pada tabel 4.19, yaitu
ketika nilai suhu adalah low dan nilai kelembaban adalah high, maka status pemanas adalah
1, dan status pompa adalah 0. Hal ini berarti hasil telah sesuai dengan yang dirancangkan.
Data-data ini berhasil dilogging atau disimpan dalam file berformat csv.
Gambar 4.20 Interval 15 Data 15 Detik
Pengujian ini dilakukan terhadap interval logging data dengan pilihan 15 data dan
interval waktu 15 detik. Gambar 4.20 menunjukkan bahwa dalam setiap 15 detik, data
berhasil dikumpulkan hingga berjumlah 15 data, kemudian 15 data tersebut akan dirata-rata,
dan waktu selesai proses pengumpulan 15 data yang dirata-rata tersebut adalah 15:01:49.
Mengacu pada persamaan 2.9 pada Bab II, maka hasil rata-rata suhu=17.06, rata
kelembaban=69, rata pemanas=1, dan rata pompa=0. Hasil logging data ini dapat dilihat
dalam tabel 4.22. Dalam tabel tersebut, rata suhu adalah 17, hal ini karena dalam
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
pemrograman dibuat adanya pembulatan. Jika nilai lebih atau sama dengan 0.5, maka nilai
akan mengalami pembulatan keatas menjadi 1, namun jika nilai kurang dari 0.5 maka nilai
akan mengalami pembualatan kebawah menjadi 0, sehingga rata suhu=17.06 menjadi 17.
Sesuai perancangan pada tabel 4.19, yaitu ketika nilai suhu adalah high dan nilai kelembaban
adalah normal, maka status pemanas adalah 1, dan status pompa adalah 0. Hal ini berarti
hasil telah sesuai dengan yang dirancangkan. Data-data ini berhasil dilogging atau disimpan
dalam file berformat csv.
Gambar 4.21 Interval 20 Data 10 Detik
Pengujian ini dilakukan terhadap interval logging data dengan pilihan 20 data dan
interval waktu 10 detik. Gambar 4.21 menunjukkan bahwa dalam setiap 10 detik, data
berhasil dikumpulkan hingga berjumlah 20 data, kemudian 20 data tersebut akan dirata-rata,
dan waktu selesai proses pengumpulan 20 data yang dirata-rata tersebut adalah 14:58:04.
Mengacu pada persamaan 2.9 pada Bab II, maka hasil rata-rata suhu=17.05, rata
kelembaban=91, rata pemanas=1, dan rata pompa=0. Hasil logging data ini dapat dilihat
dalam tabel 4.22. Dalam tabel tersebut, rata suhu=17, hal ini karena dalam pemrograman
dibuat adanya pembulatan. Jika nilai lebih atau sama dengan 0.5, maka nilai akan mengalami
pembulatan keatas menjadi 1, namun jika nilai kurang dari 0.5 maka nilai akan mengalami
pembualatan kebawah menjadi 0, sehingga rata suhu=17.05 menjadi 17. Sesuai perancangan
pada tabel 4.19, yaitu ketika nilai suhu adalah low dan nilai kelembaban adalah high, maka
status pemanas adalah 1, dan status pompa adalah 0. Hal ini berarti hasil telah sesuai dengan
yang dirancangkan. Data-data ini berhasil dilogging atau disimpan dalam file berformat csv.
Gambar 4.22 Interval 20 Data 15 Detik 10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
Pengujian ini dilakukan terhadap interval logging data dengan pilihan 20 data dan
interval waktu 15 detik. Gambar 4.22 menunjukkan bahwa dalam setiap 15 detik, data
berhasil dikumpulkan hingga berjumlah 20 data, kemudian 20 data tersebut akan dirata-rata,
dan waktu selesai proses pengumpulan 20 data yang dirata-rata tersebut adalah 15:06:48.
Mengacu pada persamaan 2.9 pada Bab II, maka hasil rata-rata suhu=17.1, rata
kelembaban=53.95, rata pemanas=1, dan rata pompa=1. Hasil logging data ini dapat dilihat
dalam tabel 4.22. Dalam tabel tersebut, rata suhu adalah 17 dan rata kelembaban adalah 54,
hal ini karena dalam pemrograman dibuat adanya pembulatan. Jika nilai lebih atau sama
dengan 0.5, maka nilai akan mengalami pembulatan keatas menjadi 1, namun jika nilai
kurang dari 0.5 maka nilai akan mengalami pembualatan kebawah menjadi 0, sehingga rata
suhu=17.1 menjadi 17, rata kelembaban=53.95 menjadi 54. Sesuai perancangan pada tabel
4.19, yaitu ketika nilai suhu adalah low dan nilai kelembaban adalah low, maka status
pemanas adalah 1, dan status pompa adalah 1. Hal ini berarti hasil telah sesuai dengan yang
dirancangkan. Data-data ini berhasil dilogging atau disimpan dalam file berformat csv.
Gambar 4.22 Perubahan Pemilihan Data Naik
Ketika terjadi perubahan pemilihan interval data naik ataupun turun, maka data yang
telah terkumpul sebelumnya akan direset dan kembali mengumpulkan dari awal. Gambar
4.22 menunjukkan mengenai perubahan pilihan data dari 5 data ke 15 data. Pengumpulan
data direset pada data ke-2, kemudian mulai lagi mengumpulkan dari data ke-1 untuk 15
data. Gambar 4.23 menunjukkan mengenai perubahan pilihan data dari 20 data ke 5 data.
Pengumpulan data direset pada data ke-9, kemudian mulai mengumpulkan lagi dari data ke-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
1 untuk 5 data. Hal ini telah sesuai dengan yang dirancang sebelumnya, yaitu membuat
logging waktu bergantung pada selesainya pengumpulan data dan yang dirata-rata, namun
hal ini juga menjadi kekurangan sistem. Kekurangan ini adalah karena sistem belum bisa
menyimpan dan melakukan rata-rata nilai yang telah dikumpulkan sebelum perubahan
pemilihan interval data.
Gambar 4.23 Perubahan Pemilihan Data Turun
Gambar 4.24 Dialog Window Open File
Gambar 4.24 menunjukkan mengenai dialog window open file. Dalam window open
file ini, user dapat memilih file csv yang ingin dibuka. Gambar 4.25 adalah tampilan dari file
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
csv yang telah dibuka. File csv ini ditampilkan dalam bentuk text. Hasil ini telah sesuai yang
diharapkan, yaitu open file berhasil membuka file csv.
Gambar 4.25 Open File CSV
Gambar 4.26 Dialog Window Tampilkan Plot
Ketika dialog window plot atau dialog window open file dibuka, sistem akan
freeze/berhenti sesaat untuk interupsi karena program dialog berada pada root yang berbeda,
setelah file dipilih dan terbuka, sistem akan running kembali. Dialog Window Plot
ditunjukkan dalam gambar 4.26. Dalam window plot ini, user dapat memilih file csv yang
ingin ditampilkan plotnya. Plot akan ditampilkan melalui tombol Go to Plot, kemudian user
akan diarahkan ke window plot. Plot tidak bisa langsung ditampilkan setelah memilih file
yang akan ditampilkan plotnya, namun tombol Go to Plot perlu ditekan untuk diarahkan ke
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
window plot. Hal ini karena semua windows menu dibuat dalam bentuk multiframe, dan
menu logging ada dalam frame 3, sehingga window plot tidak bisa diletakkan di plot 3,
namun diletakkan di frame baru yaitu frame 4. Hasil dari tampilan plot ini dapat dilihat dalam
gambar 4.27.
Gambar 4.27 Tampilan Plot Dalam Grafik
Tampilan plot pada gambar 4.27 ini adalah tampilan dari file 2018-08-10.csv, dapat
dilihat bahwa file csv telah berhasil ditampilkan plotnya dalam bentuk grafik, akan tetapi
karena data terlalu banyak atau berjumlah 1246 data maka plot tidak dapat dibaca dengan
baik dan jelas. Oleh karena itu, pada window plot dibuat penambahan tombol dan fungsi
agar plot dapat dibaca dengan baik. Penambahan ini ditunjukan oleh gambar 4.28.
Penambahan pada tampilan plot ini berupa entry untuk memasukan jumlah data yang
ingin ditampilkan, tombol ok untuk mengeksekusi nilai entry tersebut, serta tombol kanan
untuk memindahkan data tampilan plot kekanan dan tombol kiri untuk memindahkan data
tampilan plot kekiri. Dapat dilihat pada gambar 4.28 ini, nilai entry yang dimasukan adalah
20, oleh karena itu plot yang ditampilkan adalah dari data 1 sampai data 20. Implementasi
ini telah sesuai dengan yang rancangan penambahan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
Gambar 4.28 Tampilan Hasil Entry Data Plot
Gambar 4.29 Tampilan Hasil Tombol Kanan Plot
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
Gambar 4.30 Tampilan Hasil Tombol Kiri Plot
Pergeseran data kekanan dan kiri adalah 10 data, hal ini adalah sesuai dengan
pemrograman di python, dapat dilihat di gambar 4.52. Gambar 4.29 menunjukkan mengenai
hasil dari implementasi tombol kanan. Plot yang ditampilkan adalah dari data 1 sampai data
20, ketika tombol kanan ditekan, maka plot yang ditampilkan adalah berasal dari data 11
sampai 30. Hasil ini telah sesuai dengan yang diharapkan.
Gambar 4.30 menunjukkan mengenai hasil dari implementasi tombol kiri. Plot yang
ditampilkan sebelumya adalah dari data 11 sampai 30, maka ketika tombol kiri ditekan, plot
yang ditampilkan adalah dari data 1 sampai 20. Hasil ini telah sesuai dengan yang
diharapkan.
4.3. Pembahasan Perangkat Lunak
4.3.1. Pembahasan Program di Zelio Soft
Diagram data write dan read antarmuka diimplementasikan kedalam program Zelio
Soft. Gambar 4.31 dan 4.32 menunjukkan hasil pemrograman diagram data antarmuka
tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
Gambar 4.31 Program Sistem Jarak Jauh di Zelio
Gambar 4.32 Program Sistem Lokal di Zelio [4]
Gambar 4.31 dan gambar 4.32 menunjukkan bahwa register 16 digunakan untuk
selektor data, register 17 untuk input nilai data dan input selektor mux set aktuator, register
18 untuk pulsa preset dan input mux selektor, serta register 19 untuk set aktuator. Register
16 tersebut dihubungkan ke Word Bit Conversion sehingga nilai integer bisa dipecah
kedalam bit-bit integer. Bit 01 dipakai untuk selektor batas atas suhu, bit 02 untuk selektor
batas bawah suhu, bit 03 untuk batas atas kelembaban, bit 04 untuk batas bawah kelembaban,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
bit 07 untuk mengaktifkan tombol enable, bit 08 sebagai input selektor mux untuk membaca
nilai suhu dan kelembaban serta ba dan bb suhu dan kelembaban. Bit 09 untuk
menonaktifkan tombol enable. Jika bit 07 ini aktif atau kondisi 1, maka sistem dapat diatur
dari kendali lokal dan dari GUI, namun jika bit 09 bernilai 1, maka sistem hanya bisa diatur
dari GUI.
Register 18 dihubungkan ke Word Bit Conversion, kemudian bit 01 sampai bit 04 dari
Register 18 dan bit 05 serta bit 06 dari Register 16 dihubungkan ke gerbang AND. Keluaran
dari gerbang AND digunakan untuk memberikan pulsa preset bernilai 1 pada batas atas dan
batas bawah suhu, serta batas atas dan batas bawah kelembaban. Bit 05 digunakan sebagai
input selektor mux untuk membaca nilai suhu dan kelembaban serta ba dan bb suhu dan
kelembaban
Bit 01 sampai bit 07 dari Register 17 dihubungkan ke preset value pada up/down
counter seperti pada gambar 4.31 untuk memberi masukan nilai data setpoint berupa batas
atas suhu dan kelembaban, dan batas bawah suhu dan kelembaban. Preset value akan aktif
jika nilai pulsa preset pada register 18 aktif atau saat kondisi 1. Bit 08 untuk selektor MUX
pemanas, bit 09 untuk selektor MUX pompa.
Register 19 dihubungkan ke Bit Word Conversion, bit 01 digunakan untuk input
channel B MUX pemanas, bit 02 digunakan untuk input channel B MUX pompa. Channel
A pada MUX pemanas dan pompa dihubungkan ke output aktuator lokal. Jika selektor MUX
aktuator bernilai 1, maka channel B menjadi aktif, sebaliknya jika bernilai 0, maka channel
A menjadi aktif, dan output MUX bergantung pada kondisi channel yang aktif.
Register 20 digunakan untuk ouput dari suhu, nilai ba suhu dan nilai bb kelembaban,
register 21 digunakan untuk output dari kelembaban, ba kelembaban dan bb suhu. Output
dari MUX pemanas dihubungkan ke output integer register 22, dan output MUX pompa
dihubungkan ke output integer register 23.
4.3.2. Pembahasan Konfigurasi IP Address
IP yang digunakan dalam penelitian ini adalah IP statis. Konfigurasi IP ini dilakukan
terhadap Zelio dan Raspberry Pi. Pada Raspberry Pi, IP dapat dikonfigurasi dari
file:/etc/dhcpcd.conf. Gambar 4.34 menunjukkan konfigurasi alamat IP statis di Raspberry
Pi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
Gambar 4.34 Konfigurasi IP Address di Raspberry Pi
Gambar 4.35 IP Address Statis Raspberry Pi
Gambar 4.35 menunjukkan hasil dari konfigurasi IP address statis pada Raspberry Pi.
Hasil ini dapat dilihat dengan membuka LXTerminal Raspberry Pi dengan mengetikan
perintah ifconfig. Serangkaian informasi akan muncul di halaman terminal tersebut,
termasuk didalamnya IP Raspberry yang telah berubah ke statis menjadi alamat
192.168.1.20 dengan network ID 192.168.1.0 dan host ID 0.0.0.20, dan subnet mask default
dari jaringan kelas C adalah 255.255.255.0. Hal ini telah sesuai dengan perancangan IP statis
terhadap Raspberry Pi.
Gambar 4.36 Konfigurasi IP Address di Zelio
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
Pada Zelio, pengaturan IP address dilakukan pada halaman Program Konfigurasi di
aplikasi Zelio Soft. Hal ini dapat dilihat digambar 4.36. IP address yang dipilih adalah jenis
static address, kemudian IP address yang dimasukan adalah 192.168.1.10 dan subnetwork
masknya adalah 255.255.255.0. Hal ini telah sesuai dengan perancangan IP statis terhadap
Zelio. Zelio dan Raspberry Pi memiliki network ID dan subnet mask yang sama, yang berarti
kedua perangkat ini berada dalam satu jaringan yang sama.
4.3.3. Pembahasan pyModbusTCP
Pertukaran data antara Raspberry Pi dan Zelio dapat terjadi dengan menggunakan
Modbus TCP. Gambar 4.37 dan gambar 4.38 menunjukkan listing init pemrograman
Modbus TCP atau dalam python disebut pyModbusTCP.
Gambar 4.37 Init Pemrograman Modbus TCP
Gambar 4.38 Pemanggilan Modul Modbus TCP
ModbusClient dipanggil dari paket library modul pyModbusTCP. ModbusClient ini adalah
perangkat yang bertindak sebagai client, dalam hal ini adalah Zelio. Initialisasi dari
ModbusClient dilakukan dengan fungsi host/port return None if error, atau fungsi yang
mengembalikan nilai none jika tidak sesuai dengan host/port yang telah ditentukan. IP
address Zelio yang sudah ditetapkan kemudian dimasukkan dalam syntax fungsi tersebut,
yaitu 192.168.1.10, dan port default untuk ModbusTCP yaitu 502. Gambar 4.37
menunjukkan pemrograman untuk membuat sambungan dari TCP tetap terbuka, yaitu
dengan menambahkan kode auto_open=True.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
4.3.4. Pembahasan Program Perangkat Lunak
4.3.4.1. Pembahasan Implementasi Program di Python
Pemrograman dalam python ini terdiri dari pemanggilan modul, inisialisasi variable,
definisi fungsi, dan pemanggilan fungsi.
Gambar 4.39 Pemanggilan Modul Program
Gambar 4.39 memperlihatkan mengenai listing pemanggilan modul atau import
package pemrograman dalam python. Modul yang dipanggil adalah modul Tkinter,
tkMessageBox, tkFont, numpy, tkFileDialog, csv, datetime, dateutil, dan matplotlib. Modul
Tkinter dipanggil untuk pemrograman GUI. Modul tkMessageBox adalah modul yang
digunakan untuk pemrograman beberapa pesan, contohnya pesan peringatan. Modul tkFont
adalah pemanggilan untuk jenis huruf, besar huruf, dan ketebalan huruf. Modul numpy
adalah library yang didalamnya terdapat fungsi matematika untuk melakukan perhitungan.
Modul tkFileDialog adalah package library untuk menampilkan dialog window dalam suatu
window. Modul csv adalah modul yang dipakai untuk melakukan penyimpanan data dan
pembacaan data ke dalam suatu file yang bertipe csv. Modul datetime adalah modul yang
menampilkan waktu berupa tanggal, hari, jam, menit, dan detik. Modul dateutil adalah untuk
pemanggilan ekstensi dari modul datetime standard, dalam hal ini berkaitan dengan parser
yaitu untuk mengurai suatu format untuk mempresentasikan waktu. Modul matplotlib adalah
modul untuk melakukan pemrograman terhadap plot, didalamnya terdapat pembuatan label
nama terhadap garis x dan y, navigasi toolbar, dan menampilkan plot dalam suatu canvas.
Gambar 4.40 Pemanggilan Fungsi Untuk Frame
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
Pemanggilan fungsi terhadap frame dapat dilihat pada gambar 4.40. Dalam syntax ini,
frame dibuat menjadi multiframe, yaitu frame: f0, f1, f2, f3, f4. Jika f0 dipanggil, maka
windows yang tertampil adalah frame 0 (f0), jika f1 dipanggil, maka yang akan tertampil
adalah frame windows f1.
Gambar 4.41 Pemanggilan Fungsi Setpoint Suhu
Program yang ditampilkan dalam gambar 4.41 adalah pemanggilan fungsi untuk
memasukan nilai ba dan bb suhu serta mengeksekusinya untuk kemudian diteruskan ke
Zelio. Dalam penulisan program, dibuat batas pemasukan nilai ba dan bb, yaitu ba harus
lebih besar dari bb, jika aturan ini dilanggar maka warning nilai error akan muncul di
window. Register (16, 1) digunakan untuk setting ba suhu, sedangkan register (16, 2)
digunakan untuk setting bb suhu. Register (17, write_value) digunakan untuk input data ba
suhu dan bb suhu. Register (18, 1) dan register (18, 2) digunakan sebagai pulsa untuk
mengeksekusi data yang telah dimasukan.
Listing program dalam gambar 4.42 adalah pemanggilan fungsi untuk memasukkan
nilai ba dan bb kelembaban ke dalam entry. Setelah nilai disimpan, maka akan dieksekusi
dan perintah akan diteruskan ke Zelio. Dalam penulisan program, dibuat batas pemasukan
nilai ba dan bb, yaitu ba harus lebih besar dari bb, jika aturan ini dilanggar maka warning
nilai error akan muncul di window. Register (16, 4) digunakan untuk setting ba kelembaban,
sedangkan register (16, 8) digunakan untuk setting bb kelembaban. Register (17,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
write_value) digunakan untuk input data setpoint kelembaban. Register (18, 4) dan register
(18, 8) digunakan sebagai pulsa untuk mengeksekusi data yang telah dimasukan.
Gambar 4.42 Pemanggilan Fungsi Setpoint Kelembaban
Gambar 4.43 Pemanggilan Fungsi Tombol Enable
Gambar 4.43 menunjukkan listing program pemanggilan fungsi untuk pengaturan
tombol enable. Fungsi def toena digunakan untuk mengatifkan tombol enable, sedangkan
def toenof digunakan untuk menonaktifkan tombol enable. Register (16, 64) digunakan untuk
memberikan kondisi 1 pada tombol on. Register (16, 256) digunakan untuk memberi kondisi
1 pada tombol off.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
Gambar 4.44 Pemanggilan Fungsi Set Pemanas
Gambar 4.45 Pemanggilan Fungsi Set Pompa
Pemrograman yang ditunjukkan dalam gambar 4.44 adalah pemanggilan fungsi untuk
pengaturan tombol set pemanas. Fungsi def toheat adalah untuk meminta status data
pemanas pada saat sekarang (register (22, 1)), untuk mengaktifkan dan menonaktifkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
tombol on dan off, dan mengembalikan status pemanas ke kondisi lokal awal. Demikian juga
pada gambar 4.45, fungsi def topomp adalah untuk meminta status data pompa pada saat
sekarang (register (23, 1)), untuk mengaktifkan dan menonaktifkan tombol on dan off, serta
mengembalika status pompa ke kondisi lokal awal.
Gambar 4.46 Pemanggilan Fungsi Kondisi On/Off Aktuator
Fungsi perintah def toonoff dan def toonoff2 seperti yang diperlihatkan pada gambar
4.46 digunakan untuk tombol on dan off pemaksaan aktuator. Fungsi def toonoff adalah
untuk pengaturan tombol on dan off pemanas. Register (17, 128) dan register (19, 1)
digunakan untuk memberikan kondisi 1 pada tombol on pemanas, sedangkan fungsi def
toonoff2 adalah untuk mengatur tombol on dan off pompa. Register (17, 256) dan register
(19, 2) digunakan untuk memberikan kondisi 1 pada tombol on pompa.
Gambar 4.47 Init Variable Monitoring
Gambar 4.47 menunjukkan mengenai bagian dari listing program menu monitoring.
Serangkaian program diatas adalah inisialisasi variable yang digunakan dalam menu
monitoring. Tipe data yang digunakan dalam variable ini adalah tipe data int.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
Gambar 4.48 Pemanggilan Fungsi Pemilihan Interval Waktu
Gambar 4.48 menunjukkan mengenai fungsi pemanggilan perintah seleksi interval
waktu pada menu monitoring. Nilai interval waktu default untuk monitoring adalah 5 detik,
hal ini bisa dilihat pada nilai nib yang telah diinisialisasi terlebih dahulu, yaitu nib=5.
Gambar 4.49 Pemangilan Fungsi Menampilkan File
Gambar 4.49 menunjukkan pemanggilan fungsi untuk membuka file csv. Dalam
pemrograman ini file csv akan dibuka dalam bentuk text dengan panjang window text adalah
40 dan lebar window text adalah 60.
Gambar 4.50 menunjukkan pemanggilan fungsi untuk membuka plot. Didalamnya
terdapat fungsi canvas, untuk menampilkan plot dalam kanvas. Kanvas ini berada dalam
frame 4 (master = f4). Demikian juga terdapat toolbar navigasi yang berada dalam frame 4.
Toolbar ini digunakan untuk mengetahui nilai dari titik yang ditunjukkan oleh kursor.
Gambar 4.51 sampai 4.52 adalah mengenai penambahan fungsi di tampilan plot.
Gambar 4.51 menunjukkan penambahan fitur entry dan tombol ok. Nilai data ke-1 telah
diinisialisasi terlebih dahulu, yaitu u=1. Nilai entry dimasukkan dalam variable v. Nilai data
yang akan ditampilkan yaitu dari data u sampai data v.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
Gambar 4.50 Pemanggilan Fungsi Menampilkan Plot
Gambar 4.51 Pemanggilan Fungsi Nilai Plot
Gambar 4.52 Pemanggilan Fungsi Plot Kanan dan Kiri
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
Gambar 4.52 menujukkan pemanggilan fungsi tombol kanan (def addka). Nilai
pergeseran kekanan adalah 10 (u=u+10, v=v+10), sehingga ketika tombol kanan ini ditekan,
data plot yang ditampilkan akan bergeser 10 data kekanan. Gambar 4.52 menujukkan
pemanggilan fungsi tombol kiri (def addki). Nilai pergeseran kekanan adalah 10 (u=u-10,
v=v-10), sehingga ketika tombol kiri ini ditekan, data plot yang ditampilkan akan bergeser
10 data kekiri. Pemanggilan fungsi def remove_plot digunakan untuk menutup kanvas plot
yang telah dibuka.
Gambar 4.53 Init Variable Logging
Gambar 4.54 Pemanggilan Fungsi Interval Logging
Gambar 4.53 menujukkan mengenai bagian dari listing program menu logging.
Program tersebut adalah untuk inisialiasi variable yang digunakan dalam menu logging.
Variable la memiliki tipe data list, variable ini digunakan untuk menyimpan data dari suhu
sekarang. Variabel la2 digunakan untuk menyimpan data dari kelembaban sekarang.
Variabel la3 digunakan untuk menyimpan data dari status pemanas, dan variabel la4
digunakan untuk menyimpan data dari status pompa. Fungsi for in range digunakan sebagai
jangkauan penyimpanan data ke dalam list, yaitu hingga 20 data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
Gambar 4.54 adalah mengenai pemanggilan fungsi seleksi interval data logging. Nilai
interval logging default adalah 5 data, hal ini dilihat dari nilai dat yang telah diinisialisasi
terlebih dahulu, yaitu dat=5.
Gambar 4.55 Init Waktu
Gambar 4.55 menunjukkan mengenai inisialisasi waktu yang digunakan sebagai waktu
pembanding dengan waktu dalam program While True. Gambar 4.56 sampai 4.61 adalah
program dalam syntax While True. Gambar 4.56 menujukkan mengenai pemrograman
penyimpanan nama file secara otomatis berdasarkan tanggal. Variabel waktu yang
digunakan untuk pembanding tersebut tea dan teb. Dalam background process, waktu tea
dan teb akan terus melakukan perbandingan. Jika suatu saat hasilnya berbeda, maka file
secara otomatis akan tersimpan berdasarkan waktu teb. Fungsi f.write disini adalah untuk
memberikan header pada file berformat csv. Header tersebut adalah Time, Suhu,
Kelembaban, Pemanas, Pompa.
Gambar 4.56 Program Penyimpanan Berdasar Tanggal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
Gambar 4.57 Program Pembacaan Setpoint Suhu dan Kelembaban Lokal
Gambar 4.57 menunjukkan mengenai program pembacaan setpoint suhu dan
kelembaban sistem lokal. Register (16, 512), register (18, 16), register (20, 1) serta register
(21,1) digunakan untuk membaca dan menampilkan ba suhu dan ba kelembaban sistem
lokal. Register (16, 128), register (18, 16), register (20, 1) serta register (21,1) digunakan
untuk membaca dan menampilkan bb kelembaban dan bb suhu sistem lokal.
Gambar 4.58 Program Interval Waktu Nilai Suhu dan Kelembaban
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
Gambar 4.59 Program Interval Waktu Status Aktuator
Gambar 4.58 menunjukkan mengenai listing pemrograman interval waktu pada menu
monitoring. Variabel dd digunakan untuk melakukan perhitungan detik. Kode dd>=nib
adalah untuk mengecek nilai dd lebih besar atau sama dengan nilai nib. Jika kondisi ini
terpenuhi maka perhitungan akan kembali dari 0, (dd = 0). Data-data akan ditampilkan
sesuai dengan nilai nib. Register (20, 1) adalah untuk menampilkan nilai suhu sekarang, nilai
ini akan ditampilkan dalam entry suhu (ent5.insert, ki). Register (21, 1) adalah untuk
menampilkan nilai kelembaban sekarang, nilai ini akan ditampilkan dalam entry kelembaban
(ent6.insert, kele3).
Gambar 4.59 menunjukkan listing program untuk menampilkan status aktuator dalam
menu monitoring. Register (22, 1) digunakan untuk menampilkan nilai status pemanas, nilai
ini akan ditampilkan dalam kanvas, dengan syarat jika kondisi pemanas bernilai 1, maka
warna pada kanvas adalah hijau, sebaliknya jika kondisi bernilai 0, maka warna pada kanvas
adalah merah. Register (23, 1) digunakan untuk menampilkan nilai status pompa, nilai ini
juga akan ditampilkan dalam kanvas, dengan syarat jika pompa bernilai 1, maka warna pada
kanvas adalah hijau, sebaliknya jika kondisi pompa bernilai 0, maka warna pada kanvas
adalah merah.
Gambar 4.60 menunjukkan mengenai listing pemrograman interval data pada menu
logging. Variabel s1 digunakan untuk melakukan perhitungan data. Kode s1>=dat adalah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
untuk mengecek nilai s1 lebih besar atau sama dengan nilai dat. Jika kondisi ini terpenuhi
maka perhitungan data akan kembali dari 0, (s1 = 0). Dalam perograman ini, terdapat juga
penulisan kode untuk mengitung rata-rata dari data yang telah dikumpulkan berdasar
pemilihan interval data logging. Perhitungan jumlah ini menggunakan fingsi sum, kemudian
hasil dari sum ini dibagi dengan dat. Kode round digunakan untuk membulatkan bilangan
pecahan. Jika nilai bilangan pecahan lebih dari atau sama dengan 0.5, maka bilangan
dibulatkan keatas menjadi 1. Jika nilai bilangan kurang dari 0.5, maka bilangan dibulatkan
kebawah menjadi 0. Gambar 4.61 adalah listing program untuk menyimpan data-data time,
suhu, kelembaban, pemanas dan pompa.
Gambar 4.60 Program Interval Logging dan Perhitungan Rataan
Gambar 4.61 Program Penyimpanan Data
4.3.4.2. Pembahasan Implementasi GUI Menu Utama
Gambar 4.62 menunjukkan mengenai tampilan GUI menu utama. Listing
pemrograman untuk menu utama dapat dilihat pada gambar 4.63. Ukuran dari window ini
adalah 860 x 610. Tulisan menu utama adalah dalam label (Lab1) dengan ukuran font=45.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
99
Dalam window ini terdapat button dan label. Label menu utama ditulis dengan
font=Fixedays, Bold.
Tulisan setting (but1), monitoring (but2) dan logging (but3) adalah button dengan
ukuran font=35. Menu utama ini memiliki background warna #E1DCDC, dan berada pada
frame 0 (f0).
Gambar 4.62 Tampilan GUI Menu Utama
Gambar 4.63 Program GUI Menu Utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
100
4.3.4.3. Pembahasan Implementasi GUI Menu Setting
Gambar 4.64 menunjukkan hasil implementasi GUI pada menu setting, dengan
background berwarna ungu. Menu setting ini berada pada frame 1 (f1). Label yang berada
dalam menu setting ini meliputi label menu setting, label suhu (Label1), set bb (Label2,
Label5), set ba (Label3, Label 6), label kelembaban (Label4), label 16C/22C (Label2a), label
22C/28C (Label2b), label 60/80% (Label5a), label 80/90% (Label5b), dan label tombol
enable (Label7). Label-label ditulis menggunakan font=Courier, Bold, dengan warna ungu.
Listing program untuk menuliskan label ini dapat dilihat di gambar 4.65
Gambar 4.64 Tampilan GUI Setting
Button yang ada dalam menu setting ini meliputi tombol ok (ok1, ok2), tombol
pemanas (spem), tombol on (on1, on2, on3) dan off (off1, off2, off3), serta tombol pompa
(spom). Tombol-tombol ini ditulis dengan font=Courier, Bold, dengan warna biru. Terdapat
empat entry dalam menu setting, ent1 digunakan untuk entry bb suhu, ent2 digunakan untuk
entry ba suhu, ent3 digunakan untuk entry bb kelembaban, dan ent4 digunakan untuk entry
ba kelembaban. Listing program untuk penulisan button dapat dilihat pada gambar 4.66.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
101
Gambar 4.65 Program GUI Menu Setting
Gambar 4.66 Program Button Menu Setting
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
102
4.3.4.4. Pembahasan Implementasi GUI Menu Monitoring
Gambar 4.67 adalah implementasi dari GUI menu monitoring dengan background
berwarna biru. Menu monitoring ini berada pada frame 2 (f2). Dalam menu ini, terdapat
label, entry, radiohead dan kanvas. Label ini meliputi label menu monitoring, label nilai suhu
(Label8), nilai kelembaban (Label9), status pemanas (Label10) dan status pompa (Label11).
Label ini ditulis dengan font=Courier, Bold, warna merah. Listing program label dapat
dilihat pada gambar 4.68
Gambar 4.67 Tampilan GUI Menu Monitoring
Gambar 4.68 Program GUI Menu Monitoring
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
103
Gambar 4.69 Program Radiobutton Monitoring
Entry dalam menu monitoring meliputi entry nilai suhu sekarang (ent5) dan entry nilai
kelembaban sekarang (ent6). Kanvas meliputi kanvas status pemanas (cir3) dan pompa
(cir4). Radiobutton tombol berisi multiple-choice. Pilihan-pilihan ini adalah 5 detik (R1), 10
detik (R2) dan 15 detik (R3). Tulisan radiohead ini ditulis dalam font=Courier, Bold, warna
ungu. Listing Program Radiobutton dapat dilihat digambar 4.69
4.3.4.5. Pembahasan Implementasi GUI Menu Logging
Gambar 4.70 adalah implementasi dari GUI menu logging dengan background
berwarna pink. Menu logging ini berada pada frame 3 (f3). Dalam menu ini, terdapat label,
button, dan radiohead. Label ini meliputi label menu logging dan label interval logging data.
Label ini ditulis dengan font=Courier, Bold, warna merah dan ungu. Radiobutton berisi
multiple-choice. Pilihan-pilihan ini adalah 5 data (R4), 15 data (R5) dan 20 data (R6). Button
meliputi tombol open file (opfi), back, tampilkan plot (taplo), dan go to plot. Tulisan
radiohead ini ditulis dalam font=Courier, Bold, warna ungu. Listing program dapat dilihat
pada gambar 4.72
Gambar 4.70 Tampilan GUI Menu Logging
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
104
Gambar 4.71 menunjukkan tampilan dari window plot yang merupakan penambahan
dari rancangan sebelumnya. Window ini berada di frame 4 (f4) dan memiliki background
berwarna cyan, didalamnya terdapat label, button, dan entry. Button yang ada dalam window
ini adalah tombol ok (but16), back, tombol kanan (but17) dan kiri (but18). Entry untuk
memasukkan nilai batas plot data (ent17), serta label plot (Label13) yang ditulis dalam
font=Courier, Bold, berwarna merah. Listing program ini dapat dilihat pada gambar 4.72
Gambar 4.71 Tampilan Window Plot
Gambar 4.72 Program GUI Menu Logging
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
105
BAB V
KESIMPULAN
5.1. Kesimpulan
Kesimpulan yang dapat diambil dari implementasi dan pengujian sistem monitoring
jarak jauh pada kumbung jamur tiram berbasis raspberry pi yaitu:
1. Program aplikasi GUI berhasil diimplementasikan untuk mengoperasikan sistem
jarak jauh, sistem berhasil membuka window submenu setting, monitoring dan
logging pada menu utama serta mengembalikan window submenu ke menu utama.
2. Komunikasi pertukaran data secara jarak jauh antara Raspberry Pi dan Zelio
menggunakan jaringan LAN atau TCP/IP berhasil dilakukan.
3. Program pada Raspberry Pi berhasil melakukan pengiriman data nilai batas atas
dan batas bawah suhu dan kelembaban, pengaturan on/off aktuator, dan pengaturan
tombol enable ke Zelio.
4. Program pada Zelio berhasil mengirimkan data nilai suhu dan kelembaban
sekarang, nilai batas atas dan batas bawah suhu dan kelembaban dari sistem lokal,
serta status pemanas dan pompa ke Raspberry Pi yang ditampilkan di GUI menu
setting dan monitoring.
5. Pada menu monitoring, implementasi untuk menampilkan nilai suhu dan
kelembaban serta status pemanas dan pompa berdasar pada interval waktu 5, 10,
dan 15 detik berhasil dilakukan
6. Pada menu logging, data berhasil disimpan dalam format csv sesuai dengan
interval logging data 5, 15 atau 20 data, file csv tersebut berhasil dibuka, dan
implementasi penamaan file secara otomatis sesuai dengan tanggal berhasil
dilakukan.
7. Pada menu logging, plot berhasil ditampilkan dalam bentuk grafik sesuai dengan
file csv yang dipilih untuk ditampilkan plotnya.
8. Sistem ini memiliki kekurangan yaitu pada perubahan pemilihan interval logging
data dari pilihan besar ke pilihan kecil atau sebaliknya, data yang telah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
106
dikumpulkan sebelum perubahan interval akan direset kembali yang menyebabkan
data yang telah dikumpulkan tersebut tidak akan disimpan.
5.2. Saran
Penelitian ini masih memiliki kekurangan. Untuk mengatasi kekurangan tersebut,
diperlukan adanya saran untuk keperluan pengembangan penelitian selanjutnya. Berikut
adalah beberapa saran dari penelitian ini:
1. Pada menu logging, penyimpan data sesuai interval logging data dapat
dikembangkan agar saat perubahan pilihan interval data dari pilihan besar ke
pilihan kecil atau sebaliknya, data tetap bisa tersimpan secara utuh saat transisi
tersebut.
2. Penelitian dapat dikembangkan untuk monitoring jarak jauh pada pemeliharaan
tanaman lain.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
107
DAFTAR PUSTAKA
[1] KBBI. 2018. Teknologi. (https://kbbi.web.id/teknologi, diakses 03 November 2017)
[2] Scientific, Campbell. 2018. Irrigation and Canal Control.
(https://www.campbellsci.com.au/canal-control, diakses 03 November 2017)
[3] Kabarnusa. 2017. Petani Jamur Tiram di Buleleng Kewalahan Penuhi Pesanan.
(http://www.kabarnusa.com/2017/11/petani-jamur-tiram-di-buleleng.html, diakses
03 November 2017).
[4] Nursyah, Riskian. 2018. Sistem Kendali Suhu Dan Kelembaban Pada Kumbung
Jamur Berbasis Zelio Smart Relay, Yogyakarta: Universitas Sanata Dharma.
[5] Hebat, Petani. 2014. Klasifikasi Dan Morfologi Tanaman Jamur Tiram.
(https://www.petanihebat.com/2014/01/klasifikasi-dan-morfologi-tanaman-
jamur.html, diakses 03 November 2017).
[6] Alam, Jendela. 2018. Jamur Tiram, (http://www.jendela-alam.com/jamur-
tiram.html, diakses 26 November 2017).
[7] Krisnakai. 2017. Klasifikasi Dan Morfologi Jamur Tiram.
(https://bukuteori.com/tag/klasifikasi-jamur-tiram/, diakses 26 November 2017).
[8] Raharjo, Budi., Susilawati. 2010. Budidaya Tiram yang Ramah Lingkungan, [pdf].
Sumatra Selatan
[9] Raspberry. 2018. What Is A Raspberry Pi. ( https://www.raspberrypi.org/help/faqs/
Raspberry Pi Foundation, diakses 8 November 2017)
[10] Company, Farnell. 2018. Raspberry Pi 3 Starter Kit.
(https://www.element14.com/community/docs/DOC-83153/l/raspberry-pi-3-starter-
kit, diakses 9 November 2017).
[11] Mobilefish. 2017. Raspberry Pi 3 Model B With Pin Diagram.
(https://www.mobilefish.com/developer/lorawan/lorawan_quickguide_build_lora_g
ateway.html, diakses 9 November 2017)
[12] CBS. 2018. Top Raspberry Pi operating systems.
(http://www.zdnet.com/pictures/top-raspberry-pi-operating-systems/, diakses 9
November 2017).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
108
[13] Python, Belajar. 2017. Pengertian Python. (https://www.belajarpython.com/,
diakses 10 November 2017).
[14] Tunggal, Anto. 2018. Pengertian Sistem Operasi Berbasis GUI (Graphical User
Interface).( http://www.antotunggal.com/2016/12/pengertian-sistem-operasi-
berbasis-gui-graphical-user-interface.html, diakses 10 November 2017).
[15] Riadi, Muchlisin. 2012. Zelio Smart Relay.
(https://www.kajianpustaka.com/2012/10/zelio-smart-relay.html, diakses 11
November 2017).
[16] Electric, Schneider. 2018. Zelio Soft. (https://www.schneider-
electric.co.uk/en/product-range/542-zelio-soft/, diakses 11 November 2017)
[17] Telemecanique .2006. Zelio Logic - Communication Extension ,[ppt].
(http://www.electrocentr.com.ua/files/documentation/SE/plc/zelio/guide/ZelioLogic
_Modbus_Ethernet_Extensions_2006_en.ppt, diakses 28 November 2017).
[18] Sulistiono, Ari. 2011. Latar Belakang, Alur Data, Aplikasi & Keterbatasan
Protocol Modbus. (http://www.arisulistiono.com/2011/04/latar-belakang-alur-data-
aplikasi.html#.WqUbWueYO00, diakses pada 29 November 2017)
[19] Electric, Schneider. 2017.Communication SR3NET01BD. (https://www.schneider-
electric.com/en/product/SR3NET01BD/ethernet-communication-interface---for-
sr3-24v-dc-smart-relay/, diakses 04 Desember 2017) .
[20] Zakaria, Muhammad. 2018. Pengertian Switch dan Fungsi Switch.
(https://www.nesabamedia.com/pengertian-switch-dan-fungsi-switch/, diakses 05
Desember 2017).
[21] Wijaya, Eka. 2018. Fungsi Kabel HDMI to VGA.
(http://www.patartambunan.com/fungsi-kabel-vga-kabel-hdmi-dan-dvi-pada-
komputer/, diakses 04 Desember 2017).
[22] Definisi, Pengertian. 2018. Pengertian Monitor dan Jenis-jenisnya.
(http://pengertiandefinisi.com/pengertian-monitor-dan-jenis-jenisnya/, diakses 04
Desember 2017).
[23] Media, Nesaba. 2018. Pengertian dan Fungsi Keyboard.
(https://www.nesabamedia.com/pengertian-dan-fungsi-keyboard/, diakses 03
Desember 2017).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
109
[24] Media, Nesaba. 2018. Pengertian Mouse Beserta Fungsi dan Jenis-jenis Mouse.
(https://www.nesabamedia.com/pengertian-mouse-dan-fungsi-mouse-beserta-jenis-
jenisnya/, diakses 03 Desember 2017).
[25] Pendidikan, Materi, 2018. Rumus Ukuran Pemusataan Data Mean, Median dan
Modus Serta Contoh Soalnya. https://www.materipendidikan.info/2018/04/rumus-
ukuran-pemusatandata-mean-median.html, diakses 10 September 2018).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 1 -
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 2 -
LAMPIRAN 1
FILE 2018-08-10.CSV
No
Time
BB
Suhu
BA
Suhu
BB
Kel
BA
Kel Suhu
Kelembaban
Pemanas
Pompa
1 13:48:46 22 28 60 80 24 76 0 0
2 13:49:11 22 28 60 80 24 63 0 1
3 13:49:35 22 28 60 80 24 54 0 1
4 13:50:01 22 28 60 80 24 56 0 1
5 13:50:26 22 28 60 80 18 65 1 0
6 13:50:51 22 28 60 80 18 65 1 0
7 13:51:15 22 28 60 80 18 65 1 0
8 13:51:40 22 28 60 80 18 65 1 0
9 13:52:06 22 28 60 80 18 65 1 0
10 13:52:30 22 28 60 80 18 65 1 0
11 13:52:56 22 28 60 80 18 65 1 0
12 13:53:20 22 28 60 80 18 65 1 0
13 13:53:46 22 28 60 80 18 65 1 0
14 13:54:11 22 28 60 80 18 65 1 0
15 13:54:36 22 28 60 80 18 65 1 0
16 13:55:01 22 28 60 80 18 65 1 0
17 13:55:26 22 28 60 80 18 65 1 0
18 13:55:51 22 28 60 80 18 65 1 0
19 13:56:16 22 28 60 80 18 65 1 0
20 13:56:41 22 28 60 80 18 63 1 0
21 13:57:26 22 28 60 80 18 51 1 1
22 13:58:16 22 28 60 80 18 50 1 1
23 13:59:06 22 28 60 80 18 50 1 1
24 13:59:56 22 28 60 80 26 69 0 0
25 14:04:55 22 28 60 80 25 68 0 0
26 14:09:56 22 28 60 80 25 68 0 0
27 14:14:56 22 28 60 80 25 68 0 0
28 14:19:56 22 28 60 80 25 68 0 0
29 14:24:56 22 28 60 80 25 51 0 1
30 14:30:37 22 28 60 80 25 49 0 1
31 14:33:07 22 28 60 80 25 49 0 1
32 14:35:38 22 28 60 80 25 49 0 1
33 14:38:08 22 28 60 80 25 49 0 1
34 14:40:37 22 28 60 80 25 49 0 1
35 14:43:08 22 28 60 80 25 49 0 1
36 14:45:38 22 28 60 80 25 49 0 1
37 14:48:08 22 28 60 80 25 49 0 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 3 -
38 14:50:38 22 28 60 80 25 66 0 0
39 14:53:08 22 28 60 80 25 75 0 0
40 14:55:38 22 28 60 80 25 75 0 0
41 14:58:07 22 28 60 80 25 75 0 0
42 15:00:38 22 28 60 80 25 75 0 0
43 15:03:08 22 28 60 80 25 75 0 0
44 15:05:38 22 28 60 80 25 75 0 0
45 15:08:08 22 28 60 80 25 75 0 0
46 15:10:37 22 28 60 80 25 75 0 0
47 15:13:07 22 28 60 80 25 75 0 0
48 15:15:37 22 28 60 80 25 75 0 0
49 15:18:08 22 28 60 80 25 75 0 0
50 15:20:33 22 28 60 80 24 70 0 0
51 15:21:48 22 28 60 80 18 50 1 1
52 15:23:03 22 28 60 80 18 50 1 1
53 15:24:18 22 28 60 80 18 50 1 1
54 15:25:32 22 28 60 80 18 50 1 1
55 15:26:48 22 28 60 80 18 50 1 1
56 15:28:02 22 28 60 80 18 50 1 1
57 15:29:18 22 28 60 80 18 50 1 1
58 15:30:33 22 28 60 80 18 50 1 1
59 15:31:48 22 28 60 80 18 50 1 1
60 15:33:03 22 28 60 80 18 50 1 1
61 15:34:18 22 28 60 80 18 50 1 1
62 15:35:33 22 28 60 80 18 50 1 1
63 15:36:48 22 28 60 80 18 50 1 1
64 15:38:03 22 28 60 80 18 50 1 1
65 15:39:18 22 28 60 80 18 50 1 1
66 15:40:33 22 28 60 80 18 50 1 1
67 15:41:48 22 28 60 80 18 50 1 1
68 15:43:02 22 28 60 80 18 50 1 1
69 15:44:18 22 28 60 80 18 50 1 1
70 15:45:33 22 28 60 80 18 50 1 1
71 15:46:48 22 28 60 80 18 50 1 1
72 15:48:03 22 28 60 80 18 50 1 1
73 15:49:17 22 28 60 80 18 50 1 1
74 15:50:33 22 28 60 80 18 50 1 1
75 15:51:43 22 28 60 80 18 50 1 1
76 15:52:08 22 28 60 80 18 66 1 0
77 15:52:32 22 28 60 80 18 66 1 0
78 15:52:58 22 28 60 80 18 66 1 0
79 15:53:23 22 28 60 80 18 66 1 0
80 15:53:48 22 28 60 80 18 66 1 0
81 15:54:12 22 28 60 80 18 66 1 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 4 -
82 15:54:38 22 28 60 80 18 66 1 0
83 15:55:03 22 28 60 80 18 66 1 0
84 15:55:27 22 28 60 80 18 66 1 0
85 15:55:53 22 28 60 80 18 66 1 0
86 15:56:18 22 28 60 80 18 66 1 0
87 15:56:43 22 28 60 80 18 66 1 0
88 15:57:08 22 28 60 80 18 66 1 0
89 15:57:33 22 28 60 80 18 66 1 0
90 15:57:58 22 28 60 80 18 66 1 0
…. …. … … … … … … … …
1246 23:59:38 22 28 60 80 24 67 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 5 -
LAMPIRAN 2
FILE 2018-08-11.CSV
No Time
BB
Suhu
BA
Suhu
BB
Kel
BA
Kel Suhu
Kelembaban
Pemanas
Pompa
1247 0:00:03 22 28 60 80 24 67 0 0
1248 0:00:28 22 28 60 80 24 67 0 0
1249 0:00:53 22 28 60 80 24 67 0 0
1250 0:01:18 22 28 60 80 24 67 0 0
1251 0:01:43 22 28 60 80 24 67 0 0
1252 0:02:08 22 28 60 80 24 67 0 0
1253 0:02:33 22 28 60 80 24 67 0 0
1254 0:02:58 22 28 60 80 24 67 0 0
1255 0:03:23 22 28 60 80 24 67 0 0
1256 0:03:48 22 28 60 80 24 67 0 0
1257 0:04:13 22 28 60 80 24 67 0 0
1258 0:04:38 22 28 60 80 24 67 0 0
1259 0:05:03 22 28 60 80 24 67 0 0
1260 0:05:28 22 28 60 80 24 67 0 0
1261 0:05:53 22 28 60 80 24 67 0 0
1262 0:06:18 22 28 60 80 24 67 0 0
1263 0:06:43 22 28 60 80 24 67 0 0
1264 0:07:08 22 28 60 80 24 67 0 0
1265 0:07:33 22 28 60 80 24 67 0 0
1266 0:07:58 22 28 60 80 24 67 0 0
1267 0:08:23 22 28 60 80 24 67 0 0
1268 0:08:48 22 28 60 80 24 67 0 0
1269 0:09:12 22 28 60 80 24 67 0 0
1270 0:09:38 22 28 60 80 24 67 0 0
1271 0:10:02 22 28 60 80 24 67 0 0
1272 0:10:27 22 28 60 80 24 67 0 0
1273 0:10:52 22 28 60 80 24 67 0 0
1274 0:11:18 22 28 60 80 24 67 0 0
1275 0:11:43 22 28 60 80 24 67 0 0
1276 0:12:08 22 28 60 80 24 67 0 0
1277 0:12:33 22 28 60 80 24 67 0 0
1278 0:12:58 22 28 60 80 24 67 0 0
1279 0:13:23 22 28 60 80 24 67 0 0
1280 0:13:47 22 28 60 80 24 67 0 0
1281 0:14:12 22 28 60 80 24 67 0 0
1282 0:14:38 22 28 60 80 24 67 0 0
1283 0:15:03 22 28 60 80 24 67 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 6 -
1284 0:15:28 22 28 60 80 24 67 0 0
1285 0:15:53 22 28 60 80 24 67 0 0
1286 0:16:18 22 28 60 80 24 67 0 0
1287 0:16:43 22 28 60 80 24 67 0 0
1288 0:17:08 22 28 60 80 24 67 0 0
1289 0:17:33 22 28 60 80 24 67 0 0
1290 0:17:58 22 28 60 80 24 67 0 0
1291 0:18:23 22 28 60 80 24 67 0 0
1292 0:18:48 22 28 60 80 24 67 0 0
1293 0:19:13 22 28 60 80 24 67 0 0
1294 0:19:38 22 28 60 80 24 67 0 0
1295 0:20:03 22 28 60 80 24 67 0 0
1296 0:20:28 22 28 60 80 24 67 0 0
1297 0:20:52 22 28 60 80 24 67 0 0
1298 0:21:17 22 28 60 80 24 67 0 0
1299 0:21:43 22 28 60 80 24 67 0 0
1300 0:22:07 22 28 60 80 24 67 0 0
1301 0:22:33 22 28 60 80 24 67 0 0
1302 0:22:58 22 28 60 80 24 67 0 0
1303 0:23:23 22 28 60 80 24 67 0 0
1304 0:23:47 22 28 60 80 24 67 0 0
1305 0:24:13 22 28 60 80 24 67 0 0
1306 0:24:38 22 28 60 80 24 67 0 0
1307 0:25:03 22 28 60 80 24 67 0 0
1308 0:25:28 22 28 60 80 24 67 0 0
1309 0:25:53 22 28 60 80 24 67 0 0
1310 0:26:18 22 28 60 80 24 67 0 0
1311 0:26:43 22 28 60 80 24 67 0 0
1312 0:27:08 22 28 60 80 24 67 0 0
1313 0:27:33 22 28 60 80 24 67 0 0
1314 0:27:58 22 28 60 80 24 67 0 0
1315 0:28:23 22 28 60 80 24 67 0 0
1316 0:28:47 22 28 60 80 24 67 0 0
1317 0:29:13 22 28 60 80 24 67 0 0
1318 0:29:38 22 28 60 80 24 67 0 0
1319 0:30:03 22 28 60 80 24 67 0 0
1320 0:30:28 22 28 60 80 24 67 0 0
1321 0:30:52 22 28 60 80 24 67 0 0
1322 0:31:18 22 28 60 80 24 67 0 0
1323 0:31:43 22 28 60 80 24 67 0 0
1324 0:32:08 22 28 60 80 24 67 0 0
1325 0:32:33 22 28 60 80 24 67 0 0
1326 0:32:58 22 28 60 80 24 67 0 0
1327 0:33:23 22 28 60 80 24 67 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 7 -
1328 0:33:48 22 28 60 80 24 67 0 0
1329 0:34:13 22 28 60 80 24 67 0 0
1330 0:34:37 22 28 60 80 24 67 0 0
1331 0:35:02 22 28 60 80 24 67 0 0
1332 0:35:28 22 28 60 80 24 67 0 0
1333 0:35:53 22 28 60 80 24 67 0 0
1334 0:36:18 22 28 60 80 24 67 0 0
1335 0:36:42 22 28 60 80 24 67 0 0
… … … … … … … … … …
2545 17:11:38 22 28 60 80 25 74 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 8 -
LAMPIRAN 3
Listing Program Python
##################################################################
from pyModbusTCP.client import ModbusClient
from Tkinter import*
from tkMessageBox import*
import tkMessageBox
import tkFont
import numpy as np
import matplotlib.pyplot as plt
from tkFileDialog import askopenfilename
import tkFileDialog
import csv
import Tkinter, Tkconstants, tkFileDialog
from datetime import datetime
from dateutil import parser
import matplotlib
matplotlib.use('TkAgg')
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
#################################################################
#################### Multiframe ###################################
def raise_frame(frame):
frame.tkraise()
root = Tk()
root.geometry('850x610')
root.title('SISTEM MONITOR JARAK JAUH PADA KUMBUNG JAMUR TIRAM')
zel = ModbusClient()
server_host="192.168.1.10"
server_port=502
zel.host(server_host)
zel.port(server_port)
if not zel.host("192.168.1.10"):
print("host error")
if not zel.port(502):
print("port error")
zel= ModbusClient (host = "192.168.1.10", auto_open=True)
f0 = Frame(root, bg='#E1DCDC',width=850, height=610) #UTAMA
f1 = Frame(root, bg='purple',width=850, height=610) #SETTING
f2 = Frame(root, bg='blue',width=850, height=610) #MONITORING
f3 = Frame(root, bg='pink',width=850, height=610) #LOGGING
f4 = Frame(root, bg='cyan',width=850, height=610) #PLOT SHOW
for frame in (f0, f1, f2, f3, f4):
frame.grid(row=1, column=0, padx=10, pady=2, sticky=W+E+N+S)
Lab1=Label(f0, text='MENU UTAMA',font=("Fixedsys", 45, "bold"),fg= "RED",
relief=FLAT)
Lab1.grid(row=0, column=2, padx=20, pady=35)
but1=Button(f0, text='SETTING',font=("Fixedsys", 35, "bold"),fg='brown',
bg="pink",highlightbackground="red",
relief=GROOVE, command=lambda:raise_frame(f1))
but1.grid(row=2, column=2, padx=20, pady=15)
but2=Button(f0, text='MONITORING',font=("Fixedsys", 35, "bold"),fg='brown',
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 9 -
bg="light green",highlightbackground="red",
relief=GROOVE,command=lambda:raise_frame(f2))
but2.grid(row=3, column=2,padx=20, pady=15)
but3=Button(f0, text='LOGGING',font=("Fixedsys", 35, "bold"),fg='brown',
bg="light blue",highlightbackground="red",
relief=GROOVE,command=lambda:raise_frame(f3))
but3.grid(row=4, column=2, padx=20, pady=15)
but4=Canvas(f0, width= 120, height=50, bg='#E1DCDC',highlightbackground="#E1DCDC")
but4.grid(row=5, column=1, padx=20, pady=20)
but5=Canvas(f0, width= 120, height=50, bg='#E1DCDC',highlightbackground="#E1DCDC")
but5.grid(row=5, column=3, padx=20, pady=20)
Label(f1, text='MENU SETTING' ,font=("Fixedsys", 20, "bold"),fg= "RED",
relief=FLAT).grid(row=0, column=2,sticky=W+E+N+S)
##Button(f1, text='Go to Monitoring', font=("Fixedsys", 8), command=lambda:raise_frame(f2)).grid(row=0, column=0,
sticky='nw')
##Button(f1, text='Go to Logging', font=("Fixedsys", 8), command=lambda:raise_frame(f3)).grid(row=0, column=1,
sticky='nw')
Button(f1, text='BACK',font=("Courier", 14, "bold"), fg='BROWN',highlightbackground="ORANGE",
command=lambda:raise_frame(f0)).grid(row=12, column=5)
but5d=Canvas(f1, width= 80, height=40, bg='purple',highlightbackground="purple")
but5d.grid(row=10, column=0, padx=20, pady=20)
Label(f2, text='MENU MONITORING',font=("Fixedsys", 20, "bold"),fg= "RED",
relief=FLAT).grid(row=0, column=2, sticky=W+E+N+S)
##Button(f2, text='Go to Logging', command=lambda:raise_frame(f3)).grid(row=0, column=0, sticky='nw')
##Button(f2, text='Go to Setting', command=lambda:raise_frame(f1)).grid(row=0, column=1, sticky='nw')
Button(f2, text='BACK', font=("Courier", 14, "bold"), fg='BROWN',highlightbackground="ORANGE",
command=lambda:raise_frame(f0)).grid(row=10, column=6)
but5c=Canvas(f2, width= 50, height=40, bg='blue',highlightbackground="blue")
but5c.grid(row=10, column=0, padx=20, pady=20)
Label(f3, text='MENU LOGGING',font=("Fixedsys", 20, "bold"),fg= "RED",
relief=FLAT).grid(row=0, column=2, sticky=W+E+N+S)
##Button(f3, text='Go to Monitoring', command=lambda:raise_frame(f2)).grid(row=0, column=0, sticky='nw')
##Button(f3, text='Go to Setting', command=lambda:raise_frame(f1)).grid(row=0, column=1, sticky='nw')
Button(f3, text='BACK', font=("Courier", 14, "bold"), fg='BROWN',highlightbackground="ORANGE",
command=lambda:raise_frame(f0)).grid(row=11, column=6, pady=1)
Button(f3, text='Go to Plot', command=lambda:raise_frame(f4)).grid(row=10, column=2)
but5b=Canvas(f3, width= 180, height=50, bg='pink',highlightbackground="pink")
but5b.grid(row=11, column=0, padx=20, pady=1)
Label(f4, text='PLOT',font=("Fixedsys", 20, "bold"),fg= "RED",
relief=FLAT).grid(row=0, column=1, sticky=W+E+N+S)
##Button(f4, text='Go to Monitoring', command=lambda:raise_frame(f2)).grid(row=0, column=0, sticky='nw')
##Button(f4, text='Go to Logging', command=lambda:raise_frame(f3)).grid(row=0, column=1, sticky='nw')
Button(f4, text='BACK', font=("Courier", 14, "bold"), fg='BROWN',highlightbackground="ORANGE",
command=lambda:raise_frame(f0)).grid(row=7, column=6, pady=1)
but5b=Canvas(f4, width= 50, height=50, bg='cyan',highlightbackground="cyan")
but5b.grid(row=8, column=0, padx=20, pady=1)
raise_frame(f1)
##############################################################################
############################### MENU SETTING##########################
################ def setting
sett= False
x=False #on/off
akt=False
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 10 -
sett2= False
x2=False #on/off
akt2=False
def took1():
if zel.open():
global bb, ba
#suhubb
write_value1 = ent1.get() #('value to write: ')
write_value2 = int(write_value1)
#suhuba
write_value3=ent2.get() #('value to write: ')
write_value4=int(write_value3)
#warning value limit
bb=write_value2
ba=write_value4
print 'bb', bb
print 'ba', ba
if 41 > ba > bb:
regs_list_1 = zel.write_single_register(16, 2)
regs_list_2 = zel.write_single_register(17, write_value2)
regs_list_3 = zel.write_single_register(18, 2)
regs_list_4 = zel.write_single_register(16, 1)
regs_list_5 = zel.write_single_register(17, write_value4)
regs_list_6 = zel.write_single_register(18, 1)
regs_list_3c = zel.write_single_register(18, 0)
else:
regs_list_3 = zel.write_single_register(18, 0)
tkMessageBox.showwarning("Warning", "Error Value")
zel.close()
def took2():
if zel.open():
global bb2, ba2
#kelbb
write_value1 = ent3.get() #('value from entry3')
write_value2 = int(write_value1)
#kelba
write_value3 = ent4.get() #('value from entry4')
write_value4 = int(write_value3)
#warning value limit
bb2=write_value2
ba2=write_value4
print 'bb2', bb2
print 'ba2', ba2
if 101> ba2 > bb2:
regs_list_1 = zel.write_single_register(16, 8)
regs_list_2 = zel.write_single_register(17, write_value2)
regs_list_3 = zel.write_single_register(18, 8)
regs_list_4 = zel.write_single_register(16, 4)
regs_list_5 = zel.write_single_register(17, write_value4)
regs_list_6 = zel.write_single_register(18, 4)
regs_list_3c = zel.write_single_register(18, 0)
print 'jalan'
else:
regs_list_3 = zel.write_single_register(18, 0)
tkMessageBox.showwarning("Warning", "Error Value")
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 11 -
print 'error value'
zel.close()
def toena():
if zel.open():
#setenable
regs_list_1 = zel.write_single_register(16, 64)
print "enable on", regs_list_1
## toen=zel.read_holding_registers(16, 1)
on3.configure(relief=SUNKEN, fg='green')
root.update()
zel.close()
def toenof():
if zel.open():
#setenable
regs_list_1 = zel.write_single_register(16, 256)
print "enable off", regs_list_1
on3.configure(relief=RAISED, fg='blue')
root.update()
zel.close()
def toheat(): #tombol heat
global sett
sett=not(sett)
if zel.open():
regs1 = zel.read_holding_registers(22, 1) #read status heater
print "heater", regs1
b=regs1
if b==[1]:
print 'but heaton'
#print 'hidup'
#cir1.create_oval(8, 8, 40, 40, width=0, fill='green')
on1.configure(relief=SUNKEN, fg='green')
else:
print 'but heatof'
#print 'mati'
#cir1.create_oval(8, 8, 40, 40, width=0, fill='red')
off1.configure(relief=SUNKEN, fg='green')
if sett:
spem.configure(relief=SUNKEN, fg='green')
else:
spem.configure(relief=RAISED, fg='blue')
on1.configure(relief=RAISED, fg='blue')
off1.configure(relief=RAISED, fg='blue')
regs_list_1 = zel.write_single_register(17, 0) #back to akt local, so it will read ch.A
regs1 = zel.read_holding_registers(23, 1)
if regs1==[1]: #supaya set pemanas independen
regs_list_1 = zel.write_single_register(17, 256)
regs_list_1 = zel.write_single_register(19, 2)
else:
regs_list_1 = zel.write_single_register(17, 0)
root.update()
zel.close()
def toonoff(x):
global akt
if zel.open():
if sett:
if x: #ON
regs_list_1 = zel.write_single_register(17, 128)
regs_list_1 = zel.write_single_register(19, 1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 12 -
akt = True
d=regs_list_1
if d==True:
print 'satu'
#cir1.create_oval(8, 8, 40, 40, width=0, fill='green')
on1.configure(relief=SUNKEN, fg='green')
off1.configure(relief=RAISED, fg='blue')
regs2=zel.read_holding_registers(23,1) #forgot: untuk kalo reg 23 gui akt aktif
f=regs2
if f==[1]:
if sett2:
print 'dua'
#cir2.create_oval(8, 8, 40, 40, width=0, fill='green') #cross color
on2.configure(relief=SUNKEN, fg='green')
off2.configure(relief=RAISED, fg='blue')
else:
print 'tiga'
on2.configure(relief=RAISED, fg='blue')
off2.configure(relief=RAISED, fg='blue')
else:
if sett2:
print 'empat'
#cir2.create_oval(8, 8, 40, 40, width=0, fill='red')
on2.configure(relief=RAISED, fg='blue')
off2.configure(relief=SUNKEN, fg='green')
else:
print 'lima'
on2.configure(relief=RAISED, fg='blue')
off2.configure(relief=RAISED, fg='blue')
else: #off
akt = False
regs_list_1 = zel.write_single_register(17,128)
regs_list_1 = zel.write_single_register(19, 0)
e=regs_list_1
if e==True:
print 'mati'
print 'lapan'
#cir1.create_oval(8, 8, 40, 40, width=0, fill='red')
off1.configure(relief=SUNKEN, fg='green')
on1.configure(relief=RAISED, fg='blue')
regs3=zel.read_holding_registers(23,1)
p=regs3
print 'p', p
if p==[1]:
if sett2:
print 'sembilan'
#cir2.create_oval(8, 8, 40, 40, width=0, fill='green') #cross color
on2.configure(relief=SUNKEN, fg='green')
off2.configure(relief=RAISED, fg='blue')
else:
print 'sepuluh'
on2.configure(relief=RAISED, fg='blue')
off2.configure(relief=RAISED, fg='blue')
else:
if sett2:
#cir2.create_oval(8, 8, 40, 40, width=0, fill='red')
print 'sebelas'
off2.configure(relief=SUNKEN, fg='green')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 13 -
on2.configure(relief=RAISED, fg='blue')
else:
print 'duabelas'
on2.configure(relief=RAISED, fg='blue')
off2.configure(relief=RAISED, fg='blue')
root.update()
zel.close()
def topomp():
global sett2
sett2=not(sett2)
if zel.open():
regs1 = zel.read_holding_registers(23, 1)
b=regs1
if b==[1]:
print 'but pomon'
print 'hidup'
#cir2.create_oval(8, 8, 40, 40, width=0, fill='green')
on2.configure(relief=SUNKEN, fg='green')
else:
print 'but pomof'
print 'mati'
off2.configure(relief=SUNKEN, fg='green')
if sett2:
spom.configure(relief=SUNKEN, fg='green')
else:
spom.configure(relief=RAISED, fg='blue')
regs_list_1 = zel.write_single_register(17, 0)
on2.configure(relief=RAISED, fg='blue')
off2.configure(relief=RAISED, fg='blue')
regs1 = zel.read_holding_registers(22, 1)
if regs1==[1]: #supaya set pemanas independen
regs_list_1 = zel.write_single_register(17,128)
regs_list_1 = zel.write_single_register(19, 1)
else:
regs_list_1 = zel.write_single_register(17, 0)
root.update()
zel.close()
def toonoff2(x2):
global akt2
if zel.open():
if sett2:
if x2:
regs_list_1 = zel.write_single_register(17,256)
regs_list_1 = zel.write_single_register(19, 2)
akt2 = True
d=regs_list_1
if d==True:
print 'one'
print 'hidup'
#cir2.create_oval(8, 8, 40, 40, width=0, fill='green')
on2.configure(relief=SUNKEN, fg='green')
off2.configure(relief=RAISED, fg='blue')
regs2=zel.read_holding_registers(22,1)
e=regs2
if e==[1]:
#print 'e true'
if sett:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 14 -
print 'two'
#cir1.create_oval(8, 8, 40, 40, width=0, fill='green') #cross color
on1.configure(relief=SUNKEN, fg='green')
off1.configure(relief=RAISED, fg='blue')
else:
print 'three'
# cir1.create_oval(8, 8, 40, 40, width=0, fill="purple")
on1.configure(relief=RAISED, fg='blue')
off1.configure(relief=RAISED, fg='blue')
else:
if sett:
print 'four'
#cir1.create_oval(8, 8, 40, 40, width=0, fill='red')
#print 'e false'
off1.configure(relief=SUNKEN, fg='green')
on1.configure(relief=RAISED, fg='blue')
else:
print 'five'
on1.configure(relief=RAISED, fg='blue')
off1.configure(relief=RAISED, fg='blue')
else: #untuk off
akt2 = False
regs_list_1 = zel.write_single_register(17,256)
regs_list_1 = zel.write_single_register(19, 0)
ee=regs_list_1
if ee==True:
print 'seven'
print 'mati'
#cir2.create_oval(8, 8, 40, 40, width=0, fill='red')
off2.configure(relief=SUNKEN, fg='green')
on2.configure(relief=RAISED, fg='blue')
regs2=zel.read_holding_registers(22,1)
n=regs2
if n==[1]:
if sett:
print 'eight'
#cir1.create_oval(8, 8, 40, 40, width=0, fill='green') #cross color
on1.configure(relief=SUNKEN, fg='green')
off1.configure(relief=RAISED, fg='blue')
else:
print 'nine'
on1.configure(relief=RAISED, fg='blue')
off1.configure(relief=RAISED, fg='blue')
else:
if sett:
print 'ten'
#cir1.create_oval(8, 8, 40, 40, width=0, fill='red')
off1.configure(relief=SUNKEN, fg='green')
on1.configure(relief=RAISED, fg='blue')
else:
print 'eleven'
on1.configure(relief=RAISED, fg='blue')
off1.configure(relief=RAISED, fg='blue')
root.update()
zel.close()
#################################################
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 15 -
#LABELS
Label1 = Label(f1, text="SUHU (0-40C)",
font=("Courier", 16, "bold"), fg= "PURPLE", relief=FLAT)
Label1.grid(row=1, column=2, padx=2, pady=10)
Label2 = Label(f1, text="SET BB",
font=("Courier", 14, "bold"), fg= "PURPLE", relief=FLAT)
Label2.grid(row=2, column=0, padx=2, pady=1)
Label2a = Label(f1, text="16C/22C",
font=("Courier", 8, "bold"), fg= "PURPLE", relief=FLAT)
Label2a.grid(row=3, column=1, padx=1, pady=1)
Label2b = Label(f1, text="22C/28C",
font=("Courier", 8, "bold"), fg= "PURPLE", relief=FLAT)
Label2b.grid(row=3, column=4, padx=1, pady=1)
Label3 = Label(f1,text="SET BA",
font=("Courier", 14, "bold"), fg= "PURPLE", relief=FLAT)
Label3.grid(row=2, column=3, padx=2, pady=1)
Label4 = Label(f1,text="KELEMBABAN (0-100%)",
font=("Courier", 16, "bold"), fg= "PURPLE", relief=FLAT)
Label4.grid(row=4, column=2, padx=2, pady=15)
Label5 = Label(f1,text="SET BB",
font=("Courier", 14, "bold"), fg= "PURPLE", relief=FLAT)
Label5.grid(row=5, column=0, padx=2, pady=1)
Label5a = Label(f1,text="60/80%",
font=("Courier", 9, "bold"), fg= "PURPLE", relief=FLAT)
Label5a.grid(row=6, column=1, padx=1, pady=1)
Label5b = Label(f1,text="80/90%",
font=("Courier", 9, "bold"), fg= "PURPLE", relief=FLAT)
Label5b.grid(row=6, column=4, padx=1, pady=1)
Label6 = Label(f1,text="SET BA",
font=("Courier", 14, "bold"), fg= "PURPLE", relief=FLAT)
Label6.grid(row=5, column=3, padx=2, pady=1)
Label7 = Label(f1,text="TOMBOL ENABLE",
font=("Courier", 16, "bold"), fg= "PURPLE", relief=FLAT)
Label7.grid(row=9, column=1, padx=2, pady=4)
#labellokal
Label2c = Label(f1, text="LOKAL",
font=("Courier", 14, "bold"), fg= "PURPLE", relief=FLAT)
Label2c.grid(row=10, column=2, padx=2, pady=1)
Label2a = Label(f1, text="BB Suhu",
font=("Courier", 14, "bold"), fg= "PURPLE", relief=FLAT)
Label2a.grid(row=11, column=0, padx=2, pady=1)
Label3a = Label(f1,text="BA Suhu",
font=("Courier", 14, "bold"), fg= "PURPLE", relief=FLAT)
Label3a.grid(row=11, column=2, padx=2, pady=1)
#labellokal
Label2b = Label(f1, text="BB Kel",
font=("Courier", 14, "bold"), fg= "PURPLE", relief=FLAT)
Label2b.grid(row=12, column=0, padx=2, pady=1)
Label3b = Label(f1,text="BA Kel",
font=("Courier", 14, "bold"), fg= "PURPLE", relief=FLAT)
Label3b.grid(row=12, column=2, padx=2, pady=1)
#ENTRY
#entry suhu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 16 -
ent1=Entry(f1,width=6, bd=3)
ent1.grid(row=2, column=1, padx=2, pady=2)
ent2=Entry(f1,width=6, bd=3)
ent2.grid(row=2, column=4, padx=2, pady=2)
#entry kelemaban
ent3=Entry(f1,width=6, bd=3)
ent3.grid(row=5, column=1, padx=2, pady=2)
ent4=Entry(f1,width=6, bd=3)
ent4.grid(row=5, column=4, padx=2, pady=2)
#ALL BUTTONS
#OK OK
ok1= Button(f1,font=("Courier", 12, "bold"), relief=GROOVE,
text="OK", fg="blue",highlightbackground="BROWN",
command=took1)
ok1.grid(row=2, column=5, padx=2, pady=2)
ok2= Button(f1,font=("Courier", 12, "bold"), relief=GROOVE,
text="OK", fg="blue",highlightbackground="BROWN"
,command=took2)
ok2.grid(row=5, column=5, padx=2, pady=2)
#SET PEMANAS ON OFF
spem= Button(f1,font=("Courier", 15, "bold"), relief=GROOVE,
text="SET PEMANAS", fg="blue",
highlightbackground="ORANGE", command=toheat)
spem.grid(row=7, column=1, padx=5, pady=15)
on1= Button(f1,font=("Courier", 14, "bold"), relief=GROOVE,
text="ON", fg="blue",
highlightbackground="ORANGE", command=lambda:toonoff(True))
on1.grid(row=7, column=2, padx=5, pady=10)
off1= Button(f1,font=("Courier", 14, "bold"), relief=GROOVE,
text="OFF", fg="blue",
highlightbackground="ORANGE", command=lambda:toonoff(False))
off1.grid(row=7, column=3, padx=5, pady=10)
#SET POMPA ON OFF
spom= Button(f1,font=("Courier", 15, "bold"), relief=GROOVE,
text="SET POMPA", fg="blue",
highlightbackground="ORANGE", command=topomp)
spom.grid(row=8, column=1, padx=5, pady=10)
on2= Button(f1,font=("Courier", 14, "bold"), relief=GROOVE,
text="ON", fg="blue",
highlightbackground="ORANGE", command=lambda:toonoff2(True))
on2.grid(row=8, column=2, padx=5, pady=10)
off2= Button(f1,font=("Courier", 14, "bold"), relief=GROOVE,
text="OFF", fg="blue",highlightbackground="ORANGE"
,command=lambda:toonoff2(False))
off2.grid(row=8, column=3, padx=5, pady=10)
#ON OFF ENABLE
on3= Button(f1,font=("Courier", 14, "bold"), relief=GROOVE,
text="ON", fg="blue",
highlightbackground="ORANGE", command=toena)
on3.grid(row=9, column=2, padx=20, pady=15)
off3= Button(f1,font=("Courier", 14, "bold"), relief=GROOVE,
text="OFF", fg="blue",
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 17 -
highlightbackground="ORANGE", command=toenof)
off3.grid(row=9, column=3, padx=20, pady=15)
##request babb lokal
#suhu
ent7a=Entry(f1,width=6, bd=3)
ent7a.grid(row=11, column=1, padx=2, pady=1)
ent8a=Entry(f1,width=6, bd=3)
ent8a.grid(row=11, column=3, padx=2, pady=1)
#kel
ent9a=Entry(f1,width=6, bd=3)
ent9a.grid(row=12, column=1, padx=2, pady=1)
ent11a=Entry(f1,width=6, bd=3)
ent11a.grid(row=12, column=3, padx=2, pady=1)
###############################################################################
###############################################################################
ra="0"
selection=""
nib=5
la=[]
la2=[]
la3=[]
la4=[]
for i in range(20):
la.append(0)
la2.append(0)
la3.append(0)
la4.append(0)
def sel():
global selection, ra, nib
selection = "You selected " + str(var.get()) +' seconds'
label12.config(text = selection)
#print selection
ra=(var.get())
nib=float(ra)
#LABELS
Label8 = Label(f2, text="NILAI SUHU",
font=("Courier", 18, "bold"), fg= "RED", relief=FLAT)
Label8.grid(row=1, column=1, padx=10, pady=20)
Label9 = Label(f2, text="NILAI KELEMBABAN",
font=("Courier", 18, "bold"), fg= "RED", relief=FLAT)
Label9.grid(row=2, column=1, padx=10, pady=20)
Label10 = Label(f2,text="STATUS PEMANAS",
font=("Courier", 18, "bold"), fg= "RED", relief=FLAT)
Label10.grid(row=3, column=1, padx=10, pady=20)
Label11 = Label(f2,text="STATUS POMPA",
font=("Courier", 18, "bold"), fg= "RED", relief=FLAT)
Label11.grid(row=4, column=1, padx=10, pady=20)
#ENTRY
#entry suhu
ent5=Entry(f2,width=15, bd=4)
ent5.grid(row=1, column=2, padx=20, pady=10)
#entry kelemaban
ent6=Entry(f2,width=15, bd=4)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 18 -
ent6.grid(row=2, column=2, padx=20, pady=10)
#CIRCLE canvas
cir3 = Canvas(f2, width=50, height=50, bg="blue")
cir3.grid(row=3, column=2, padx=20, pady=10)
cir4 = Canvas(f2, width=50, height=50, bg="blue")
cir4.grid(row=4, column=2, padx=20, pady=10)
var = IntVar()
var.set(nib)
R1 = Radiobutton(f2, text="5 detik", variable=var, value=5,
relief=GROOVE, command=sel,
font=("Courier", 18, "bold"), fg= "PURPLE")
R1.grid(row=5, column=1, padx=10, pady=4)
R2 = Radiobutton(f2,text="10 detik", variable=var, value=10,
relief=GROOVE, command=sel,
font=("Courier", 18, "bold"), fg= "PURPLE")
R2.grid(row=6, column=1, padx=10, pady=4)
R3 = Radiobutton(f2, text="15 detik", variable=var, value=15,
relief=GROOVE, command=sel,
font=("Courier", 18, "bold"), fg= "PURPLE")
R3.grid(row=7, column=1, padx=10, pady=4)
label12 = Label(f2)
label12.grid(row=8, column=1, padx=10, pady=4)
#########################################################################################3
################################# MENU LOGGING######################################
def tofile():
root2 = Tk()
root2.fileName = tkFileDialog.askopenfilename(initialdir = "/home/pi",title = "Select file",
filetypes = (("csv files", "*.csv"),
("txt files","*.txt"),
("all files","*.*")))
print(root2.fileName) # prints filename
# onto terminal
root2.title(root2.fileName) # put filename into
# title bar
text1 = open(root2.fileName).read()
#print(text1)
T = Text(root2, height=40, width=85)
T.grid() # pack that textbox into
# the root window
T.insert(END,text1) #insert all the text up to
# just after the last char
# in: text1
root2.update()
root.update()
def toplot():
root1 = Tk()
root1.fileName = tkFileDialog.askopenfilename(initialdir = "/home/pi",title = "Select file",
filetypes = (("csv files", "*.csv"),("txt files","*.txt"),
("all files","*.*")))
global plo
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 19 -
plo=root1.fileName
from csv import reader
with open(plo, 'r') as f:
data = list(reader(f))
x = [parser.parse(i[0]) for i in data[1::]] #time
y1= [i[1] for i in data[1::]] #bb suhu
y2= [i[2] for i in data[1::]] #ba suhu
y3= [i[3] for i in data[1::]] #bb kel
y4= [i[4] for i in data[1::]] #ba kel
y5= [i[5] for i in data[1::]] #suhu
y6= [i[6] for i in data[1::]] #kelembaban
y7= [i[7] for i in data[1::]] #pemanas
y8= [i[8] for i in data[1::]] #pompa
fig, ax = plt.subplots()
ax.plot(x, y1, 'o-', label='bb suhu', color='orange')
ax.plot(x, y2, 'o-', label='ba suhu', color='orange')
ax.plot(x, y3, 'o-', label='bb kel', color='brown')
ax.plot(x, y4, 'o-', label='ba kel', color='brown')
ax.plot(x, y5, '.-', label='Suhu', color='blue')
ax.plot(x, y6, '.-', label='Kelembaban', color='purple')
ax.plot(x, y7, '.-', label='Pemanas', color='green')
ax.plot(x, y8, '.-', label='Pompa', color='red')
ax.set_title('Logging System')
legend = ax.legend(loc='upper center', shadow=True, fontsize='x-small')
legend.get_frame().set_facecolor('pink')
plt.tight_layout() #supaya fit tight
plt.rcParams.update({'figure.max_open_warning': 0})
canvas = FigureCanvasTkAgg(fig, master=f4)
canvas.show()
canvas.get_tk_widget().grid(row=3, column=1, columnspan=4)
canvas._tkcanvas.grid()
############### TOOLBAR ###############
toolbarFrame = Frame(master=f4)
toolbarFrame.grid(row=4,column=2)
toolbar = NavigationToolbar2TkAgg(canvas, toolbarFrame)
root1.update()
root.update()
def tookplot():
global v, v1, v2, u
v1=ent17.get()
v2=int(v1)
v=v2
u=1
from csv import reader
with open(plo, 'r') as f:
data = list(reader(f))
x = [parser.parse(i[0]) for i in data[u:v]] #time
y1= [i[1] for i in data[u:v]] #bb suhu
y2= [i[2] for i in data[u:v]] #ba suhu
y3= [i[3] for i in data[u:v]] #bb kel
y4= [i[4] for i in data[u:v]] #ba kel
y5= [i[5] for i in data[u:v]] #suhu
y6= [i[6] for i in data[u:v]] #kelembaban
y7= [i[7] for i in data[u:v]] #pemanas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 20 -
y8= [i[8] for i in data[u:v]] #pompa
fig, ax = plt.subplots()
ax.plot(x, y1, 'o-', label='bb suhu', color='orange')
ax.plot(x, y2, 'o-', label='ba suhu', color='orange')
ax.plot(x, y3, 'o-', label='bb kel', color='brown')
ax.plot(x, y4, 'o-', label='ba kel', color='brown')
ax.plot(x, y5, '.-', label='Suhu', color='blue')
ax.plot(x, y6, '.-', label='Kelembaban', color='purple')
ax.plot(x, y7, '.-', label='Pemanas', color='green')
ax.plot(x, y8, '.-', label='Pompa', color='red')
ax.set_title('Logging System')
legend = ax.legend(loc='upper center', shadow=True, fontsize='x-small')
legend.get_frame().set_facecolor('pink')
plt.tight_layout() #supaya fit tight
canvas = FigureCanvasTkAgg(fig, master=f4)
canvas.show()
canvas.get_tk_widget().grid(row=3, column=1, columnspan=4)
canvas._tkcanvas.grid()
toolbarFrame = Frame(master=f4)
toolbarFrame.grid(row=4,column=2)
toolbar = NavigationToolbar2TkAgg(canvas, toolbarFrame)
f4.bind_all('<Button-1>', lambda event: remove_plot(canvas))
def remove_plot(canvas):
canvas.get_tk_widget().destroy()
def addka():
for i in range (1):
global v, u
u=u+10
v=v+10
print 'kanan u', u
print 'kanan v', v
from csv import reader
with open(plo, 'r') as f:
data = list(reader(f))
x = [parser.parse(i[0]) for i in data[u:v]] #time
y1= [i[1] for i in data[u:v]] #bb suhu
y2= [i[2] for i in data[u:v]] #ba suhu
y3= [i[3] for i in data[u:v]] #bb kel
y4= [i[4] for i in data[u:v]] #ba kel
y5= [i[5] for i in data[u:v]] #suhu
y6= [i[6] for i in data[u:v]] #kelembaban
y7= [i[7] for i in data[u:v]] #pemanas
y8= [i[8] for i in data[u:v]] #pompa
fig, ax = plt.subplots()
ax.plot(x, y1, 'o-', label='bb suhu', color='orange')
ax.plot(x, y2, 'o-', label='ba suhu', color='orange')
ax.plot(x, y3, 'o-', label='bb kel', color='brown')
ax.plot(x, y4, 'o-', label='ba kel', color='brown')
ax.plot(x, y5, '.-', label='Suhu', color='blue')
ax.plot(x, y6, '.-', label='Kelembaban', color='purple')
ax.plot(x, y7, '.-', label='Pemanas', color='green')
ax.plot(x, y8, '.-', label='Pompa', color='red')
ax.set_title('Logging System')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 21 -
legend = ax.legend(loc='upper center', shadow=True, fontsize='x-small')
legend.get_frame().set_facecolor('pink')
plt.tight_layout() #supaya fit tight
canvas = FigureCanvasTkAgg(fig, master=f4)
canvas.show()
canvas.get_tk_widget().grid(row=3, column=1, columnspan=4)
canvas._tkcanvas.grid()
toolbarFrame = Frame(master=f4)
toolbarFrame.grid(row=4,column=2)
toolbar = NavigationToolbar2TkAgg(canvas, toolbarFrame)
f4.bind_all('<Button-1>', lambda event: remove_plot(canvas))
def remove_plot(canvas):
canvas.get_tk_widget().destroy()
def addki():
for i in range (1):
global v, u
u=u-10
v=v-10
print 'kiri u', u
print 'kiri v', v
from csv import reader
with open(plo, 'r') as f:
data = list(reader(f))
x = [parser.parse(i[0]) for i in data[u:v]] #time
y1= [i[1] for i in data[u:v]] #bb suhu
y2= [i[2] for i in data[u:v]] #ba suhu
y3= [i[3] for i in data[u:v]] #bb kel
y4= [i[4] for i in data[u:v]] #ba kel
y5= [i[5] for i in data[u:v]] #suhu
y6= [i[6] for i in data[u:v]] #kelembaban
y7= [i[7] for i in data[u:v]] #pemanas
y8= [i[8] for i in data[u:v]] #pompa
fig, ax = plt.subplots()
ax.plot(x, y1, 'o-', label='bb suhu', color='orange')
ax.plot(x, y2, 'o-', label='ba suhu', color='orange')
ax.plot(x, y3, 'o-', label='bb kel', color='brown')
ax.plot(x, y4, 'o-', label='ba kel', color='brown')
ax.plot(x, y5, '.-', label='Suhu', color='blue')
ax.plot(x, y6, '.-', label='Kelembaban', color='purple')
ax.plot(x, y7, '.-', label='Pemanas', color='green')
ax.plot(x, y8, '.-', label='Pompa', color='red')
ax.set_title('Logging System')
legend = ax.legend(loc='upper center', shadow=True, fontsize='x-small')
legend.get_frame().set_facecolor('pink')
plt.tight_layout() #supaya fit tight
canvas = FigureCanvasTkAgg(fig, master=f4)
canvas.show()
canvas.get_tk_widget().grid(row=3, column=1, columnspan=4)
canvas._tkcanvas.grid()
toolbarFrame = Frame(master=f4)
toolbarFrame.grid(row=4,column=2)
toolbar = NavigationToolbar2TkAgg(canvas, toolbarFrame)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 22 -
f4.bind_all('<Button-1>', lambda event: remove_plot(canvas))
def remove_plot(canvas):
canvas.get_tk_widget().destroy()
#LABELS
Label13 = Label(f3, text="INTERVAL LOGGING DATA",
font=("Courier", 20, "bold"), fg= "PURPLE", relief=FLAT)
Label13.grid(row=1, column=2, padx=10, pady=20)
global dat
dat=5
#RADIOBUTTON
def sel2():
global selection, aa3, dat, la, la2, la3, la4
selection = "You selected : " + str(var1.get()) + " datas"
label14.config(text = selection)
#print selection
aa3=(var1.get())
dat=float(aa3)
#print a
return dat
var1 = IntVar()
var1.set(dat)
R4 = Radiobutton(f3, text="5 data", variable=var1, value=5,
relief=GROOVE, command=sel2,
font=("Courier", 18, "bold"), fg= "PURPLE")
R4.grid(row=2, column=2, padx=10, pady=4)
R5 = Radiobutton(f3,text="15 data", variable=var1,value=15,
relief=GROOVE, command=sel2,
font=("Courier", 18, "bold"), fg= "PURPLE")
R5.grid(row=3, column=2, padx=10, pady=4)
R6 = Radiobutton(f3, text="20 data", variable=var1,value=20,
relief=GROOVE, command=sel2,
font=("Courier", 18, "bold"), fg= "PURPLE")
R6.grid(row=4, column=2, padx=10, pady=4)
label14 = Label(f3)
label14.grid(row=5, column=2, padx=10, pady=4)
#open file
opfi = Button(f3, text='OPEN FILE', font=("Courier", 20, "bold"),
relief=RAISED,fg="blue",
command=tofile, highlightbackground="ORANGE")
opfi.grid(row=6, column=2, padx=20, pady=15)
#tampilkan plot
taplo = Button(f3, text='TAMPILKAN PLOT', font=("Courier", 20, "bold"),
relief=RAISED, fg="blue",
command=toplot, highlightbackground="ORANGE")
taplo.grid(row=7, column=2, padx=20, pady=1)
#accesories f4
ent17=Entry(f4,width=5, bd=3)
ent17.grid(row=6, column=2, padx=2, pady=1)
but16=Button(f4, text="OK", bg='orange', command=tookplot)
but16.grid(row=7, column=2,padx=2, pady=1)
but17=Button(f4, text="<---", bg='green', command=addki)
but17.grid(row=7, column=1,padx=2, pady=1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 23 -
but18=Button(f4, text="--->", bg='green', command=addka)
but18.grid(row=7, column=3,padx=2, pady=1)
##############################################################
###################################################################
#datetime.now().strftime('%Y:%m:%d')
#datetime.now().strftime('%D')
#wa.date() untuk menampilkan tanggal saja
#wa.day untuk hari
tim=datetime.now().strftime('%H:%M:%S')
wa=datetime.now()
tea=wa.date()
sec=wa.second
dd=0
s1=0
f=open(str(tea) +".csv" , "a")
f.write(str('Time'))
f.write(', ')
f.write(str('BB Suhu'))
f.write(', ')
f.write(str('BA Suhu'))
f.write(', ')
f.write(str('BB Kel'))
f.write(', ')
f.write(str('BA Kel'))
f.write(', ')
f.write(str('Suhu'))
f.write(', ')
f.write(str('Kelembaban'))
f.write(', ')
f.write(str('Pemanas'))
f.write(', ')
f.write(str('Pompa'))
f.write("\r\n")
root.update()
f.flush()
f.close()
cb=0
bb=0
ba=0
bb2=0
ba2=0
while True:
if zel.is_open():
ti=datetime.now().strftime('%H:%M:%S')
air=datetime.now()
ca=air.second
teb=air.date() #newest date
bba=dat
if tea!=teb:
f=open(str(teb) +".csv" , "a")
f.write(str('Time'))
f.write(', ')
f.write(str('BB Suhu'))
f.write(', ')
f.write(str('BA Suhu'))
f.write(', ')
f.write(str('BB Kel'))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 24 -
f.write(', ')
f.write(str('BA Kel'))
f.write(', ')
f.write(str('Suhu'))
f.write(', ')
f.write(str('Kelembaban'))
f.write(', ')
f.write(str('Pemanas'))
f.write(', ')
f.write(str('Pompa'))
f.write("\r\n")
f.flush()
f.close()
tea=teb
f=open(str(tea) + ".csv" , "a") #bukan di dalam if karena ntr tidak bs write
if sec!=ca:
dd=dd+1
cb= cb+1
print 'cb', cb
regsa = zel.write_single_register(16, 512) #it's not (16, 0) because will disturb the ba bb suhu
regsb= zel.write_single_register(18, 16)
regsc= zel.read_holding_registers(20,1)
regsc= zel.read_holding_registers(20,1) #nilai hold
regsc1=regsc[0]
ba=regsc1
ent8a.insert(0, regsc1)
ent8a.delete(0, END) #refresh data
ent8a.insert(0, regsc1)
#to show bb local value
regsd = zel.write_single_register(16, 128)
regse= zel.write_single_register(18, 16)
regsf= zel.read_holding_registers(21,1)
regsf= zel.read_holding_registers(21,1)
regsf1=regsf[0]
bb=regsf1
ent7a.insert(0, regsf1)
ent7a.delete(0, END)
ent7a.insert(0, regsf1)
regsa = zel.write_single_register(16, 512) #it's not (17, 0) because will disturb the ba bb kel
regsb= zel.write_single_register(18, 16)
regsc= zel.read_holding_registers(21,1)
regsc= zel.read_holding_registers(21,1)
regsc2=regsc[0]
ba2=regsc2
ent11a.insert(0, regsc2)
ent11a.delete(0, END)
ent11a.insert(0, regsc2)
#to show bb local value
regsd = zel.write_single_register(16, 128)
regse= zel.write_single_register(18, 16)
regsf= zel.read_holding_registers(20,1)
regsf= zel.read_holding_registers(20,1)
regsf2=regsf[0]
bb2=regsf2
ent9a.insert(0, regsf2)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 25 -
ent9a.delete(0, END)
ent9a.insert(0, regsf2)
root.update()
if dd>=nib:
dd=0
#temperature monitoring
temt=zel.write_single_register(16, 512)
temt2=zel.write_single_register(18, 64)
tempt=zel.read_holding_registers(20,1)#suhu now
tempt=zel.read_holding_registers(20,1)
gi=tempt[0]
ki=float(gi)
ent5.insert(0, ki)
print "temp=", ki
ent5.delete(0, END)
ent5.insert(0, ki)
ent5.update()
#humidity monit
humid=zel.write_single_register(16,512)
humid2=zel.write_single_register(18,64)
humi=zel.read_holding_registers(21,1)#kel now
humi=zel.read_holding_registers(21,1)
kele=humi[0]
kele3=float(kele)
ent6.insert(0, kele3)
print "kel=", kele3
ent6.delete(0, END)
ent6.insert(0, kele3)
ent6.update()
#status pemanas
regs1 = zel.read_holding_registers(22, 1) #heat
ri=regs1[0]
ni=float(ri)
print "heater", ni
if ni==1:
# print 'hidup'
cir3.create_oval(8, 8, 40, 40, width=0, fill='green')
else:
#print 'mati'
cir3.create_oval(8, 8, 40, 40, width=0, fill='red')
cir3.update()
#status pompa
regs2 = zel.read_holding_registers(23, 1) #pomp
ri2=regs2[0]
ni2=float(ri2)
print "pompa", ni2
if ni2==1:
# print 'hidup'
cir4.create_oval(8, 8, 40, 40, width=0, fill='green')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 26 -
else:
#print 'mati'
cir4.create_oval(8, 8, 40, 40, width=0, fill='red')
cir4.update()
root.update()
la[s1]=ki
la2[s1]=kele3
la3[s1]=ni
la4[s1]=ni2
s1=s1+1
print 'Collect Data', s1
print 'List Suhu', la
print 'List Kel', la2
print 'List Heater', la3
print 'List Pomp', la4
if s1>=dat:
suma=sum(la)
avg1=round(suma / dat)
qi=int(avg1)
sumb=sum(la2)
avg2=round(sumb / dat)
qi2=int(avg2)
sumc=sum(la3)
avg3=round(sumc / dat)
qi3=int(avg3)
sumd=sum(la4)
avg4=round(sumd / dat)
qi4=int(avg4)
print 'time', ti
print 'sum:',suma,' avg:',qi
print 'sum2:',sumb,' avg2:',qi2
print 'sum3:',sumc,' avg3:',qi3
print 'sum4:',sumd,' avg4:',qi4
print 'bb suhu', bb
print 'ba suhu', ba
print 'bb kel', bb2
print 'ba kel', ba2
s1=0
f.write(str(ti))
f.write(', ')
f.write(str(bb))
f.write(', ')
f.write(str(ba))
f.write(', ')
f.write(str(bb2))
f.write(', ')
f.write(str(ba2))
f.write(', ')
f.write(str(qi))
f.write(', ')
f.write(str(qi2))
f.write(', ')
f.write(str(qi3))
f.write(', ')
f.write(str(qi4))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L- 27 -
f.write("\r\n")
root.update()
f.flush()
f.close()
sec=ca
root.update()
bbb=dat
if bba <> bbb:
s1=0
for i in range (20):
la[i]=0
la2[i]=0
la3[i]=0
la4[i]=0
else:
zel.open()
root.update()
root.mainloop()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Sistem Lokal dan Jarak Jauh
8099
lo,I
8100
lo..LL*tun
8101
!o+LLJHum
8097
Ho,IL+nat8137
IooL*rcatrB l40ilor
lou-J
8080
FoniLLlpm
B094
loe
olXTJ
pompa
$hu02xT'l
kelmbqban
03XT.1
Pemans
04xT1
J1XT1
XT1
J3XT1
J4Xl1
ipggqqiasram
L-28-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI