BAB III METODOLOGI PENELITIAN Pada Bab ini akan membahas perancangan hardware dan software sistem pengendali dan monitoring lampu rumah berbasis arduino uno dan visual basic. Arduino uno akan mengolah data yang dikirim oleh sensor ldr kemudian dikirimkan ke komputer melalui port serial dan akan ditampilkan melalui Graphical User Interface (GUI) yang dibangun dengan aplikasi Visual Basic 2010. Antarmuka grafis yang dibangun nantinya akan dirancang sehingga program bisa berinteraksi dengan Arduino uno, sehingga dapat mengirim dan menerima data dari arduino uno. Pembuatan alat ini dibagi dalam beberapa kelompoknya masingmasing dan mempunyai fungsi sendiri-sendiri. 3.1 Persiapan Pembuatan Alat Tahap pertama dalam Perancangan sistem kendali adalah menyiapkan segala sesuatu yang dibutuhkan terlebih dahulu. Setelah segala sesuatu yang dibutuhkan tersedia, barulah melangkah ketahap berikutnya. Agar lebih mudah dalam proses pembuatan alat, perlu disiapkan komponen-komponen beserta alat yang diperlukan, antara lain : 1. Arduino Uno 2. Kabel usb tipe A B 3. Relay shield 4. Lampu LED 220 V 47
48 5. Komponen komponen, berupa sensor ldr, pin header (male + female), resistor 6. Alat alat, berupa multitestrer, obeng, pemotong (cutter) 7. Komponen pendukung, berupa kabel, pengikat kabel dan lain lain 3.2 Proses Pembuatan Alat Setelah peralatan dan bahan serta alat pendukung tersedia. Langkah selanjutnya dalam perancangan dan pembuatan alat sistem pengandali dan monitoring lampu rumah berbasis Arduino uno, visual basic dan team viewer adalah pembuatan alat secara hardware dan software. 3.2.1 Perinsip Kerja Sistem Sistem yang akan dibangun dirancang sedemikian rupa sehingga nantinya program antarmuka dapat berinteraksi antar perangkat. Adapun diagram dari prinsip kerja alat yang akan dibangun adalah sebagai berikut : Gambar 3.1 Diagram Prinsip Kerja Alat
49 Alat dirancang agar dapat dikendalikan melalui program Graphical User Interface (antarmuka grafis), terdiri dari 4 (empat) buah lampu yakni lampu ruang teras, lampu ruang tamu, lampu ruang kamar dan lampu ruang dapur, lampu - lampu tersebut dirancang dapat dikendalikan secara manual. Gambar 3.2 Blok Diagram Sistem Pengendali Dan Monitoring Lampu Berdasarkan gambar diagram blok diatas, maka secara sederhana dapat dijelaskan prinsip kerja sistem yang akan dibangun adalah : Sensor Cahaya LDR akan mengukur intensitas cahaya pada lampu led 220 volt, kemudian data tersebut dikirimkan ke pin Analog A1 Arduino uno. Arduino uno menerima data analog kemudian mengirimkannya data ke visual basic untuk menampilkan kondisi lampu. Visual basic dapat menerima dan mengirimkan perintah Arduino uno untuk menghidupkan atau mematikan lampu. Pada pin digital 1 pada Arduino uno.
50 Relay shield menerima data pada digital pin 1 untuk menghubungkan atau memutuskan aliran listrik pada lampu led 220 volt. Gambar 3.3 Diagram Rangkaian Monitoring lampu 3.2.2 Pengawatan / Wiring Hardware Skema pengawatan Hardware, Arduino dengan seluruh komponen secara keseluruhan sebagai berikut : Gambar 3.4 Skema Pengawatan Hardware
51 3.3 Pembuatan Program dengan Visual Basic 2010 Visual Basic merupakan bahasa pemrograman yang dibuat oleh Microsoft, meruoakan perangkat lunak untuk menyusun program aplikasi yang bekerja dalam lingkungan windows. Visual Basic menawarkan kepada penggunanya kemudahan dalam menyusun program aplikasi dengan tampilan grafis yang menawan dalam waktu yang relative singkat. Sehingga diharapkan dengan adanya program Visual Basic ini pengguna Windows dapat memanfaatkan kemampuan Windows secara optimal. 3.3.1 Komponen dan Bahasa Pemrograman yang Dipakai Pemakaian komponen atau obyek dalam perancangan dan pembuatan aplikasi berbasis bahasa pemrograman apapun adalah mutlak, tak terkecuali bahasa pemrograman Visual Basic. Obyek dalam Visual Basic digunakan sebagai elemen antarmuka dalam program yang akan dibuat. Prinsip sederhana dari pemakaian obyek ini adalah kita harus memindah, mengubah ukuran, mengatur tata letak atau setting propertynya. Berikut contoh contoh dalam Visual Basic beserta fungsinya secara singkat : 1. TextBox (tempat input/menampilkan teks, bebas diubah) 2. Label (teks pada form; tidak dapat langsung diubah) 3. Command Button (menjalankan perintah/proses jika di tekan) 4. Frame (pengelompokkan kontrol kontrol secara visual/fungsional) 5. CheckBox (menampilkan kondisi Y/N atau T/F) 6. Form (tempat kerja program aplikasi)
52 7. ComboBox (kombinasi textbox & listbox, pilih dari list atau ketik) 8. ListBox (multiselect) 9. PictureBox (menampilkan gambar ) 10. Image (menampilkan gambar, tapi tidak bisa sebagai container kontrol) 11. Option Button (mirip dengan checkbox, tapi hanya satu pilihan yang dapat dipilih) 12. Line (membentuk garis) 13. Project (sekumpulan modul aplikasi itu sendiri) 14. Module (modul fungsi fungsi kontrol) 15. Code Editor (tempat sintaks/coding) 16. Pointer (untuk memilih kontrol) Pada pemrograman Visual Basic, form digunakan sebagai komponen utama untuk mendesain tampilan program. Secara umum sebuah komponen/objek dalam Visual Basic memiliki 3 karakteristik utama yaitu : 1 Properti 2 Event 3 Metode 1. Properti adalah karakteristik yang melekat pada sebuah obyek yang menunjukan cirri / karakteristik suatu obyek. Misalnya BackColor menunjukan warna latar belakang, Font menunjukan jenis dam ukuran font yang digunakan, dan sebagainya. Pengaturan property suatu objek dapat
53 diatur dengan mengatur komponen melalui Property Windows, Seperti pada gambar berikut : Gambar 3.5 Mengubah Judul Form dengan Pengaturan Property 2. Event Merupakan suatu tindakan yang dilakukuan untuk mengerjakan suatu proses. Seperti suatu proses akan dilakukan apabila dilakukan tekan tombol enter, klik satu kali atau klik dua kali Contoh : Private Sub connect_btn_click(byval sender As Object, ByVal e As EventArgs) Handles connect_btn.click If (connect_btn.text = "Connect") Then MsgBox("PILIH COM port") End If 3. Metode (Method) Adalah prosedur yang dikerjakan pada satu objek. Metode merupakan suatu tindakan di mana objek dapat di bentuk.
54 Contoh : Private Sub clear_btn_click(byval sender As Object, ByVal e As EventArgs) Handles clear_btn.click RichTextBox1.Text = "" Berikut contoh komponen yang akan digunakan : Pemilihan Port yang tersedia di komputer yang tepat sesuatu yang wajib untuk mendapatkan data yang dikirim Arduino dan kemudian diambil datanya datanya. Diolah, kemudian ditampilkan kedalam program yang akan dibuat nantinya. Komponen serial port yang diambil dari component diperlukan sebagai komponen port serial. Dan untuk menampilkan ke dalam sebuah Combo Box, berikut gambarnya Gambar 3.6 Menampilakan Port yang Tersedia dikomputer Bahasa pemprograman yang di pakai. Ketika program dijalankan pertama, Form1_Load port COM combo box / daftar drop-down dengan port COM yang tersedia. Program ini kemudian menunggu pengguna untuk memilih port COM Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Enabled = False comport = "" For Each sp As String In My.Computer.Ports.SerialPortNames comport_combobox.items.add(sp)
55 Ketika pengguna memilih port COM, nilai disalin ke port COM. Kemudian disimpan menjadi pilihan port COM yang terhubung. Private Sub comport_combobox_selectedindexchanged(byval sender As Object, ByVal e As EventArgs) Handles comport_combobox.selectedindexchanged If (comport_combobox.selecteditem <> "") Then comport = comport_combobox.selecteditem End If Sub connect_btn_click (), memicu ketika pengguna mengklik tombol Connect. Hal pertama yang rutin dilakukan adalah menentukan apakah pengguna menghubungkan atau memutuskan. Tombol yang sama digunakan untuk keduanya. Jika menghubungkan, maka port serial ditetapkan, port serial dibuka dan timer dimulai. Ada 2 (dua) untuk menunjukkan bahwa timer aktif label timer diperbarui untuk "Timer: ON". 1 Jika pengguna tidak mengklik tombol Connect maka akan ada pesan yang ditampilkan untuk memberitahu pengguna untuk memilih port COM. 2 Jika memutuskan, port serial ditutup, timer berhenti dan label timer diperbarui untuk "Timer: OFF". Dan Label Timer ada murni untuk debugging.
56 Private Sub connect_btn_click(byval sender As Object, ByVal e As EventArgs) Handles connect_btn.click If (connect_btn.text = "Connect") Then If (comport <> "") Then SerialPort1.Close() SerialPort1.PortName = comport SerialPort1.BaudRate = 9600 SerialPort1.DataBits = 8 SerialPort1.Parity = Parity.None SerialPort1.StopBits = StopBits.One SerialPort1.Handshake = Handshake.None SerialPort1.Encoding = System.Text.Encoding.Default SerialPort1.ReadTimeout = 10000 SerialPort1.Open() connect_btn.text = "Dis-connect" Timer1.Enabled = True Timer_LBL.Text = "Timer: ON" Else MsgBox("PILIH COM port") End If Else SerialPort1.Close() connect_btn.text = "Connect" Timer1.Enabled = False Timer_LBL.Text = "Timer: OFF" Sebuah timer digunakan untuk memeriksa data yang masuk. Timer End If
57 diatur untuk memicu setiap 500ms atau setengah detik dan bila dipicu panggilan yang Timer1_Tick (). Gambar 3.7 Properti Timer pada Visual Basic Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick receiveddata = ReceiveSerialData() RichTextBox1.Text &= receiveddata Timer1_Tick (). panggilan kedua yang memeriksa untuk melihat apakah ada data serial dan jika ada maka salinan data yang masuk ke variabel receiveddata. kemudian receiveddata ditambahkan ke textbox. Function ReceiveSerialData() As String Dim Incoming As String Try Incoming = SerialPort1.ReadExisting() If Incoming Is Nothing Then Return "nothing" & vbcrlf Else Return Incoming End If Catch ex As TimeoutException Return "Error: Serial Port read timed out." End Try End Function
58 Sub clear_btn_click (), untuk membersihkan isi kotak teks. Private Sub clear_btn_click(byval sender As Object, ByVal e As EventArgs) Handles clear_btn.click RichTextBox1.Text = "" Sub btnon_click (), untuk mengirim perintah ke Arduino 1 yaitu if( val == '1' ){ digitalwrite(rl1,high); } pada program arduino untuk menghidupkan (ON) relay 1 Private Sub btnon_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnon.click picon.visible = True SerialPort1.Write("1") btnon.enabled = False btnoff.enabled = True Sub btnoff_click (),untuk mengirim perintah ke Arduino A yaitu ( else if( val == 'A' ) { digitalwrite(rl1,low); } )pada program arduino untuk mematikan (Off) relay 1 Private Sub btnoff_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnoff.click picon.visible = False SerialPort1.Write("A") btnon.enabled = True btnoff.enabled = False
59 Sub Exit_Click(), untuk keluar dari program yang sedang jalan. Private Sub Exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End End Class Kode program diatas diperlukan untuk mendapatkan data yang dikirim oleh Arduino. Data yang telah diproleh akan diproses dan diolah dengan sintaks bahasa Visual Basic. Setelah semua komponen bahas pemrograman Visual Basic 2010 dipilih dan diperoleh yang diperlukan, tahap berikutnya adalah perancangan GUI (Graphical User Interface = Antarmuka Grafis). GUI yang dibangun menggunakan komponen Command Button, Text Box, Frame, Label, Timer, Picture Box, Combo Box.