• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN ALAT

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PERANCANGAN ALAT"

Copied!
20
0
0

Teks penuh

(1)

BAB III

PERANCANGAN ALAT

Pada bab ini akan dibahas perancangan hardware dan software Sitem Kontrol Blending berbasis Arduino dan Visual Basic. Arduino akan mengolah data yang didapatkan oleh sensor yang nantinya akan dikirimkan ke komputer melalui port serial dan akan ditampilkan melalui Graphical User Interface (GUI) yang dibangun dengan aplikasi buatan Microsoft, yakni Visual Basic.NET. Antarmuka grafis yang dibangun nantinya akan dirancang sedemikian rupa sehingga program bisa berinteraksi dengan Arduino, sehingga selain mengambil data dari Arduino, program antarmuka nantinya juga dapat mengolah, sekaligus mengirim data ke Arduino. Pembuatan alat dibagi dalam beberapa kelompok yang masing – masing mempunyai fungsi sendiri – sendiri.

3.1 DIAGRAM BLOK

Secara garis besar diagram blok perancangan sistem yang akan dubangun adalah sebagai berikut:

Gambar 3.1 Diagram Blok Sistem Kontrol Blending VISUAL BASIC (INTERFACE) ARDUINO (KONTROL) SENSOR ULTRASONIK RELAY POMPA TANGKI

(2)

Berdasarkan gambar diagram blok di atas, maka secara sederhana dapat dijelaskan prinsip kerja sistem yang akan dibangun adalah sebagai berikut :

1. Sensor Ultrasonik, merupakan pendeteksi dari sistem yang akan dibangun. Sensor ultrasonik memperoleh data berupa besaran pulsa listrik, yang nantinya akan diolah oleh Arduino sehingga diperoleh jarak, yakni jarak antara level ketinggian air dan posisi sensor ultrasonik sendiri.

2. Arduino, merupakan komponen utama dari sistem yang akan dibangun. Arduino akan mengolah data pulsa listrik yang diterima dari sensor ultrasonik, mengirimnya ke komputer melalui port serial, dan sebaliknya, mengolah data yang dikirim komputer, serta mengirim hasil pengolahan berupa output digital ke Relay Shield. 3. Interface, merupakan alat penunjang sistem yang dipakai untuk memberikan

gambaran visual dari hasil pengolahan sensor ultrasonik dan Arduino, selain itu, komputer juga dipakai untuk memberikan data dan perintah / kontrol ke Arduino sebagai inputan dari Arduino untuk pengolahan data dan kontrol relay shield.

4. Relay shield, merupakan rangkaian yang digunakan sebagai output kontrol dari Arduino, yang mempunyai komponen utama berupa relay yang nantinya akan digunakan untuk menghidupkan dan mematikan pompa.

5. Pompa, merupakan alat yang digunakan untuk memopakan cairan ke tangki blending.

6. Tangki, merupakan sarana untuk tempat proses blending gasoline yang setiap ketinggian level cairannya akan dipantau oleh Sensor Ultrasonik secara realtime. 3.2 WIRING HARDWARE

Skema wiring hardware, Arduino dengan seluruh komponen secara keseluruhan

(3)

Gambar 3.2 Skema Wiring Hardware 3.3 PEMBUATAN PROGRAM ARDUINO

Pembuatan program untuk sistem kontrol dibuat berdasarkan rancangan flowchart

sebagai berikut:

Mulai

Calculate:

Level 1 = ((Final - Initial) / 4) + Initial Level 2 = ((Final - Initial) / 4) + Level 1 Level 3 = ((Final - Initial) / 4) + Level 2 Level 4 = ((Final - Initial) / 4) + Level 3

Input Level Initial & Final

Blending

A Kirim Sinyal ke

Aktuator

(4)

A Pompa 1 ON Level 1 Tercapai? Pompa 1 OFF Pompa 2 ON Pompa 2 OFF Pompa 1 ON Level 2 Tercapai? Level 3 Tercapai? Pompa 1 OFF Pompa 2 ON Level 4 Tercapai? Pompa 2 OFF Selesai Ya Tidak Ya Tidak Ya Tidak Ya

Gambar 3.4 Flowchart Kontrol

Berdasarkan flowchart diatas program kontrol dibuat dengan menggabungkan beberapa prinsip dasar pemrograman Arduino hingga menjadi kontrol sistem. Berikut akan dibahas prinsip dasar dari masing – masing bagian program arduino yang digunakan.

3.3.1 Dasar Pemrograman

Pemrograman Arduino menggunakan bahasa pemrograman Arduino yang dibangun berbasis bahasa Wiring dan lingkungan pengembangannya (Arduino Environment Development) dibangun berbasis Processing. Wiring menurut situs reminya di

(5)

http://www.wiring.org.co/ merupakan kerangka pemrograman yang bersifat open source yang digunakan untuk memprogram mikrokontroler. Sedangkan processing menurut situs resminya di http://www.processing.org/, processing merupakan bahasa pemrograman yang bersifat terbuka (open source) dan merupakan lingkungan pengembangan yang ditujukan untuk orang – orang yang ingin membuat gambar, animasi, dan interaksi. Processing pada awalnya dikembangkan sebagai perangkat lunak untuk menghasilkan sketchbook dan digunakan untuk mengajarkan dasar – dasar pemrograman komputer dalam konteks visual.

Setiap programmer komputer pada awal belajarnya akan memulai belajar pemrograman dengan menampilkan kalimat “Hello World!” di layar monitor. “Hello World!” dalam lingkungan komputasi fisik yakni berupa LED (Light Emitting Diode = Dioda emisi cahaya) yang berkedip, nyala dalam waktu tertentu kemudian padam beberapa saat kemudian dan nyala lagi untuk beberapa saat, begitu seterusnya.

LED merupakan indikator berupa lampu kecil yang membutuhkan daya yang relatif kecil untuk bekerja. Dan, di papan Arduino sudah built in LED yang terhubung ke pin digital 13. Untuk menyalakan LED secara berkedip, diperlukan kode yang cukup sederhana. Hal pertama yang harus dituliskan dalam kodenya adalah menentukan variabel yang mendefinisikan pin Arduino mana yang terhubung dengan LED. Uniknya, dalam bahasa pemrograman Arduino, variabel ini nantinya akan memakai nomor pin-nya saja, sehingga kita dapat dengan mudah mengubah nomor pin sesuai keinginan jika sewaktu – waktu diperlukan. Sebagai contoh, dalam kode untuk LED berkedip ini memakai variabel integer (dalam Arduino disebut int).

1. int led = 13;

Hal kedua yang perlu dilakukan adalah mengkonfigurasi pin yang terhubung ke LED sebagai output. Konfigurasi pin Arduino sebagai output dapat dilakukan dengan memaki fungsi pinMode ( ) yang diletakkan dalam fungsi setup ( ).

1. void setup ( ) 2. {

3. pinMode (led, OUTPUT ); 4. }

(6)

Akhirnya, untuk menghidupkan dan mematikan LED, kita dapat memakai fungsi digitalWrite ( ). Untuk menghidupkan digunakan logika HIGH, dan untuk mematikan LED digunakan logika LOW. Karena keterbatasan kemampuan mata manusia, maka apabila kita hanya memakai fungsi digitalWrite dengan logika HIGH dan LOW saja, maka kita tidak dapat melihat perubahan yang terjadi pada LED, karena nyala dan padamnya LED terlalu cepat. Untuk menyiasati masalah tersebut, kita harus menambahkan fungsi delay ( ) untuk memperlambat nyala dan padamnya LED. Fungsi delay ( ) dalam bahasa pemrograman Arduino menggunakan satuan milidetik, sehingga misalnya kita menginginkan tundaan waktu 1 (satu) detik, maka kita harus menggunakan delay sebesar 1000.

1. void loop( ) { 2. digitalWrite(led, HIGH); 3. delay(1000); 4. digitalWrite(led, LOW); 5. delay (1000); 6. }

Kode keseluruhan untuk menyalakan dan memadamkan LED adalah sebagai berikut :

(7)

Keterangan kode program :

1. Keterangan program dapat dijadikan komentar dengan cara menambahkan tanda “ /* “ dan diakhiri tanda “ */ “ jika yang ingin dijadikan komentar lebih dari satu baris, sebagai contoh dari program di atas adalah baris ke-1 sampai baris ke-4. Selain itu, komentar dapat diperoleh dengan cara menambahkan tanda “ // ” jika hanya 1 (satu) baris yang akan dijadikan komentar. Sebagai contoh yakni baris ke-5, ke-8, dst. Komentar tidak akan dieksekusi oleh program Arduino, karena dianggap bukan kode program.

2. Kode LED berkedip ini merupakan kode dasar yang nantinya dapat dipakai untuk menghidupkan relay shield yang akan digunakan dalam sistem kendali yang akan dibangun.

3.3.2 Pemrograman Komunikasi Serial

Seperti disinggung di Bab II, komunikasi serial yang dipakai untuk komunikasi Arduino ke komputer dan sebaliknya, dilakukan oleh kombinasi pin RX dan TX di masing – masing bagian, yakni di Arduino dan komputer itu sendiri. Karena tuntutan kemajuan zaman, dimana port serial standar yang berbasis RS 232 makin jarang ditemui di komputer yang beredar di pasaran, Arduino memakai port USB (Universal Serial Bus). Walaupun demikian sebenarnya komunikasi serial masih berlangsung, hanya saja dalam komunikasi serial tersebut melalui sebuah rangkaian terintegrasi yang berfungsi mengkonversi data RX dan TX mikrokontrol Arduino ke mode USB.

Gambar 3.6 Diagram Komunikasi Serial Arduino dan Komputer

Rangkaian konverter serial yang dipakai menggunakan komponen utama berupa IC ATMega8U (Arduino Uno R2) atau ATMega16U2 (Arduino Uno R3).

(8)

Gambar 3.7 Chip ATMega16U2 sebagai konverter RS-232

Sebelum membahas lebih lanjut pemrograman komunikasi serial, perlu diketahui bahwa terdapat suatu fungsi pada Arduino IDE yang memungkinkan kita dapat untuk mengirim data serial ke Arduino dan menerima data dari Arduino, yaitu Serial Monitor. Fungsi ini dapat dipanggil dengan pilihan pada bagian Tools > Serial Monitor. Setelah itu sesuaikan baudrate pada Serial Monitor dengan program.

Gambar 3.8 Serial Monitor pada Arduino IDE

Berikut adalah contoh pemrogram komunikasi serial. Program ini dirancang jika Arduino menerima data serial dengan karakter tertentu maka akan mengaktifkan / menonaktifkan LED. Dan juga akan menampilkan data yang diterima ke serial monitor,dalam artian Arduino mengirimkan kembali data yang diterima ke serial.

(9)

Gambar 3.9 Program Komunikasi Serial 3.3.3 Pemrograman Sensor Ultrasonik

Jenis sensor ultrasonic yang digunakan adalah HC – SR04. Sensor ini tidak membutuhkan library tambahan pada pemrograman Arduino IDE sehingga dapat langsung deprogram seperti berikut:

(10)

Gambar 3.10 Program Sensor HC-SR04

Pada program ini sensor HR-SR04 membutuhkan konfigurasi pin, yaitu Pin 13 digunakan sebagai Echo dan Pin 12 digunakan sebagai Trig pada board Arduino. Untuk pembacaan sensor, arduino menampilkan data yang dibaca ke port serial. Agar bisa melihat data yang dibaca sensor HR-SR04 dapat menggunkan Serial Monitor pada IDE Arduino.

(11)

Gambar 3.11 Wiring Sensor HR-SR04 3.4 PEMBUATAN PROGRAM VISUAL BASIC.NET

VB.NET adalah salah satu bahasa pemrograman Komputer Tingkat Tinggi. Bahasa Pemrograman Adalah Perintah-perintah yang dimengerti oleh computer untuk melakukan tugas-tugas tertentu Bahasa pemrograman VB.NET dikembangkan oleh Microsoft , Merupakan Salah Satu Bahasa Pemrograman Yang Object Oriented Program(OOP) atau Pemrograman yang berorientasi Pada Object. Kata “Visual” menunjukkan cara yang digunakan untuk membuat Graphical User Interface (GUI). Dengan Cara ini, kita tidak perlu lagi menuliskan Instruksi pemrograman dalam kode-kode baris hanya untuk membuat sebuah Desaign Form/Aplikasi. Tetapi dengan sangat mudah yakni kita cukup melakukan Drag and drop object-object yang akan kita gunakan. VB.Net dapat kita jdaikan alat Bantu untuk membuat berbagai macam program computer. Aplikasi VB.NET hanya dapat dijalankan pada system Operasi Windows.

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

(12)

antarmuka dalam program yang akan dibuat. Prinsip sederhana dari pemakaian obyek ini adalah kita harus memindah, mengubah ukuran, mengatur tata letak atau setting property-nya.

Berikut contoh – contoh obyek dalam Visual Basic beserta fungsinya secara singkat : 1. TextBox : tempat input/menampilkan teks, bebas diubah

2. Label : teks pada form; tidak dapat langsung di ubah

3. Command Button : menjalankan perintah/proses jika di tekan 4. Frame : pengelompokan kontrol-kontrol secara visual/fungsional 5. CheckBox : menampilkan kondisi Y/N atau T/F

6. Form : tempat kerja program aplikasi

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 kontainer kontrol

11.Option Button : mirip dengan checkbox, tapi hanya satu pilihan yg dapat di pilih 12.HS/VS ScrollBar : scrollbar Horizontal dan Vertikal

13.Line : membentuk garis 14.Data : data binding

15.OLE (Object Lingking and Embedding) : lokasi program eksternal, seperti: word ms, dll

16.Project : sekumpulan modul aplikasi itu sendiri 17.Module : modul fungsi-fungsi kontrol

18.Code Editor : tempat sintaks/coding 19.Pointer : untuk memilih kontrol

Seperti yang telah dibahas pada bab sebelumnya, 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: Properti, Event dan Metode.

Berikut merupakan beberapa program yang terdiri dari komponen-komponen yang digunakan dalam pemrogram sistem kontrol:

(13)

3.4.1 Menampilkan Waktu dan Tanggal

Untuk menapilkan waktu dan tanggal dibutuhkan 2 objek Label dan 1 objek Timer dengan code program sebagai berikut:

Public Class Form1

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Label1.Text = Format(Now, "dd MMMM yyyy") Label2.Text = Format(Now, "hh:mm:ss") End Sub

End Class

Gambar 3.12 Desain tampilan Jam dan Tanggal setelah Start Debugging 3.4.2 Menampilkan Port yang Tersedia pada Komputer

COM Port dari komputer harus diketahui terlebih dahulu agar VB.NET dapat melakukan komunikasi serial dengan Arduino. Berikut adalah program untuk mengambil dan mengetahui port mana sajakah yang tersedia pada komputer.

Imports System.IO.Ports

Private Sub GetSerialPortNames() For Each sport As String In My.Computer.Ports.SerialPortNames cmbPort.Items.Add(sport) Next

(14)

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim BaudRates() As String = {"300", "1200", "2400", "4800", "9600", "14400", "19200", "28800", "38400", "57600", "115200"} cmbBaud.Items.AddRange(BaudRates) cmbBaud.SelectedIndex = 4 Try GetSerialPortNames() cmbPort.SelectedIndex = 0 Catch

MsgBox("No ports connected.") End Try

End Sub

Selain itu Baudrate juga harus ditentukan agar komunikasi serial dapat terjadi karena Baudrate berfungsi sebagai setting kecepatan untuk berkomunikasi serial. Pada program dibuat beberapa nilai kecepatan atau Baudrate yang ditampilkan berupa List Box seperti hal nya dengan COM Port. Jika tidak ada COM Port yang terhubung maka akan muncul Message Box sebagai informasi bahwa tidak ada COM Port yang terhubung.

(15)

3.4.3 Komunikasi Serial dengan Arduino

Berikut adalah program dan gambar GUI untuk memulai dan mengakhiri komunikasi serial pada VB.NET

Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click

Try sp.BaudRate = cmbBaud.SelectedItem.ToString sp.PortName = cmbPort.SelectedItem.ToString sp.Open() If sp.IsOpen Then btnConnect.Visible = False cmbPort.Enabled = False cmbBaud.Enabled = False btnDisconnect.Visible = True End If Catch sp.Close() End Try End Sub

Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click

Try sp.Close() btnConnect.Visible = True btnDisconnect.Visible = False cmbPort.Enabled = True cmbBaud.Enabled = True Exit Sub Catch

MessageBox.Show("Some kind of problem.") End Try

(16)

Gambar. 3.14 Desain GUI untuk koneksi komunikasi serial.

Ketika VB.NET sudah terkoneksi dengan komunikasi serial maka List Box dari COM Port dan Baudrate tidak akan bisa diklik. Begitu juga dengan tombol Connect seperti gambar berikut.

Gambar 3.15 Program VB.NET saat terkoneksi.

Sedangkan pada saat tidak terkoneksi maka tombol Disconnect akan hilang sehingga tidak bisa diklik seperti gambar berikut.

Gambar 3.16 Program VB.NET saat tidak terkoneksi. 3.4.4 Relay Kontrol

Kode program berikut adalah program untuk mengotrol On / Off relay. Program ini juga akan memberikan indicator yang akan meberitahukan bahwa relay dalam keadaan On / Off.

(17)

Private Sub btnOn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOn.Click

picOn.Visible = True SerialPort1.Open() SerialPort1.Write("1") SerialPort1.Close() End Sub

Private Sub btnOff_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOff.Click

picOn.Visible = False SerialPort1.Open() SerialPort1.Write("0") SerialPort1.Close() End Sub

Pada saat relay On maka indicator berwarna hijau. Jika relay Off maka indicator akan berwarna merah seperti gambar berikut.

(18)

3.4.5 Menampilkan Data yang Dikirim dan Diterima

Pada program ini data yang diterima dari Arduino akan ditampilkan pada Text Box secara continue. Properties Text Box dibuat agar dapat discroll keatas dan kebawah untuk melihat semua data yang telah diterima dari Arduino.

Sub ShowString(ByVal myString As String) txtIn.AppendText(myString)

End Sub

Delegate Sub myMethodDelegate(ByVal [text] As String)

Dim myDelegate As New myMethodDelegate(AddressOf ShowString)

Private Sub SerialPort_DataReceived(ByVal sender As Object, ByVal e

As System.IO.Ports.SerialDataReceivedEventArgs) Handles sp.DataReceived

Dim str As String = sp.ReadExisting() Invoke(myDelegate, str)

End Sub

Sedangkan untuk kode program untuk mengirim data ke Arduino adalah sebagai berikut.

System.Object, ByVal e As System.EventArgs) Handles btnSend.Click If sp.IsOpen() Then

sp.WriteLine(txtMessage.Text) txtMessage.Text = ""

End If End Sub

Data yang akan dikirim ke Arduino diinput terlebih dahulu pada sebuah Text Box. Selanjutnya data yang telah diinout tersebut dikirik ke arduino dengan mengklik sebuah tombol Send [8]. Berikut adalah desain tampilan GUI dari program.

(19)

Gambar 3.18 Tampilan Kirim dan Terima Data

Dari kesulurahan program diatas maka dibuatlah GUI program Sistem Kontrol Blending dengan menggabungkan program-program tersebut hingga menjadi sebuah sistem. GUI dibuat berdasarkan flowchart berikut.

Mulai

Auto / Manual Input Level

Initial & Final Blending Kirim Data ke Arduino Monitoring Level Proses Blending oleh Arduino Selesai Pompa 1 Pompa 2 ON OFF ON OFF

(20)

Pada flowchart diatas untuk proses blending terdapat 2 pilihan, yaitu auto dan manual. Jika memilih mode manual, kita dapat mengaktifkan /menonaktifkan pompa 1 dan pompa 2 secara langsung dengan menekan tombol ON/OFF. Jika memilih mode auto, untuk menjalankan proses blending kita harus menginput data seperti data level initial dan level final blending yang diinginkan. Setelah input data selesai, proses dapat dijalankan dengan menekan tombol Start dan jikaingin mengakhiri proses yang sedang berjalan dapat dilakukan dengan menekan tombol Stop dan tombol Reset untuk mereset data yang telah diinput sehingga siap untuk memulai proses auto lagi dari awal. Selain itu pada mode ini juga melakukan stop sementara dan melanjutkan proses kembali tanpa harus mereset data yang telah diinput dengan cara ketika proses yang sedang berjalan tombol Stop ditekan (tombol reset tidak ditekan) dan dilanjutkan kembali dengan menekan tombol Start, maka proses akan dilanjutkan hingga selesai.

Gambar

Gambar 3.1 Diagram  Blok Sistem Kontrol BlendingVISUAL BASIC (INTERFACE) ARDUINO (KONTROL) SENSOR ULTRASONIK RELAY POMPA TANGKI
Gambar  3.2 Skema Wiring  Hardware  3.3  PEMBUATAN PROGRAM ARDUINO
Gambar  3.4 Flowchart  Kontrol
Gambar 3.5 Program LED Berkedip
+7

Referensi

Dokumen terkait

Sewa adalah pemanfaatan aset tetap oleh mitra dalam jangka waktu tertentu. dan menerima imbalan

ABSTRAK: Ria Kartika Sari : Pengaruh Model Survey-Question-Read-Recited-Review (SQ3R) Terhadap Kemampuan Menjawab Pertanyaan Tentang Isi Teks Agak Panjang Yang

- Pengalaman kerja diutamakan dibidangnya - Familiar dengan bidang pemasaran property - Memiliki kemampuan negosiasi/presentasi - Networking luas, berpenampilan menarik,

Maksud Paulus bukanlah bahwa pekerjaan sampingan harus dilakukan untuk mendatangkan uang supaya bisa makan dan memenuhi kebutuhan hidup, melainkan dengan mengerjakan

Gerakan Infaq Beras Jakarta menjadi jembatan amal sholeh dimana gerakan ini hanya untuk menjembatanin antara OTA (Orang Tua Asuh) yang ingin berdonasi atau berinfaq untuk

Kitab Methoda Al-Qotru merupakan kitab ilmu falak yang digunakan di kalangan LFNU Kabupaten Blitar. Bahasa pengantar kitab ini bukanlah bahasa Arab seperti

12.Setelah melakukan percobaan tentang cahaya, peserta didik mampu membuat laporan hasil percobaan yang memanfaatkan sifat-sifat cahaya dan keterkaitannya dengan

Sistem adalah sekumpulan objek yang merupakan suatu wadah terdiri dari pada sub-sub sistem yang saling berhubungan dan di dalam hubungan tersebut terdapat ketergantungan antara