BAB III PERANCANGAN ALAT DAN PROGRAM
3.1
Blok Diagram Rangkaian Untuk merealisasikan sistem monitoring dan kontrol inkubator bayi
berbasis Arduino Uno dengan ditampilkan pada windows Visual Basic 6.0, maka langkah pertama yang dilakukan adalah membuat blok diagram alat seperti Gambar 3.1
Gambar 3.1 Diagram Blok Rangkaian Sistem Monitoring dan Kontrol Suhu
Bohlam merupakan Hardware yang berfungsi untuk menyalurkan panas dalam box inkubator, sedangkan fan digunakan untuk mendistribusikan panas serta mendinginkan jika suhu diatas nilai set point. Sensor Suhu dan Kelembaban DHT11 merupakan pembaca nilai suhu dan kelembaban yang dikombinasikan dengan Ardionu Uno dan kemudian keluarannya akan ditampilkan melalui Windows Visual Basic 6.0. Berikut gambar perancangan mini inkubator : 32
33
Gambar 3.2 Rangkaian pengendali suhu dan kelembaban inkubator
Rangkaian tersebut
ditutup oleh sebilah papan sehingga hanya
memunculkan bohlam lampu sebagai pemanas dan sensor DHT11 sebagai pembaca suhu dan kelembaban. Fan diletakkan dibawah papan yang telah di beri rongga untuk aliran udara. Berikut gambar inkubator tersebut.
34
Gambar 3.3 Hasil perancangan inkubator mini
3.2
Realisasi Rangkaian Langkah berikutnya adalah merealisasikan rangkaian setiap blok,
Rangkaian-rangkaian yang akan dibuat yaitu :
Rangkaian Sensor dengan Arduino
Aplikasi program Arduino IDE (Integrated Development Environment)
Aplikasi program Visual Basic 6.0
Rangkaian Power Supply yang terhubung dengan Bohlam dan Fan
35
3.2.1 Rangkaian Sensor DHT11 dengan Arduino Sensor Suhu DHT11 berfungsi sebagai masukan pada sistem rangkaian Arduino Uno. PIN V+ dari DHT11 dihubungkan dengan catu daya pada pin power 5 volt yang terdapat pada Arduino Uno, PIN GND dihubungkan ke PIN GND Power Arduino UNO dan pin Vout – yang menghasilkan tegangan analog hasil pengindera suhu dihubungkan ke pin A0 Analog In pada Arduino Uno.
Gambar 3.4 Menghubungkan DHT11 dengan Arduino Uno
3.2.2 Aplikasi Program Arduino IDE (Integrated Development Environment) Setelah proses rangkaian selesai dibuat langkah selanjutnya adalah membuat program pada apliaksi program arduino IDE (Integrated Development Environment). Buka program aplikasi arduino IDE kemudian
36
bentuk tampilan kerja aplikasi arduino IDE Sketch terlihat seperti gambar 3.4
Gambar 3.5 Program Arduino IDE (Integrated Development Environment)
3.2.2.1 Bahasa Program Arduino IDE yang digunakan Float Float point numbers sering digunakan untuk memperkirakan nilai analog dan berkelanjutan karena nilai tersebut memiliki resolusi yang lebih besar daripada integers. float point numbers dapat
37
menyimpan sebesar 32-bit dengan range 3.4028235E+38 sampai 3.4028235E+38. Angka tersebut disimpan dalam 32 bits (4 bytes) dari informasi. Float hanya memiliki 6-7 digit decimal. Pada arduino, Double sama nilainya dengan Float.
Contoh : float myfloat; float sensorCalbrate = 1.117;
Syntax : float var = val; var - your float variable name val - the value you assign to that variable
Contoh kode : int x; int y; float z; x = 1; y = x / 2; hold fractions
// y now contains 0, ints can't
z = (float)x / 2.0; to use 2.0, not 2)
// z now contains .5 (you have
Byte Tipe byte dapat menyimpan 8-bit nilai angka bilangan asli
tanapa koma. Byte memiliki range 0 – 255. Contoh : Byte
biteVariable
=
180;
//
mendeklarasikan
‘biteVariable’ sebagai type byte
38
Void (Setup)
Fungsi setup() hanya di panggil satu kali ketika program pertama kali di jalankan. Ini digunakan untuk pendefinisian mode pin atau memulai komunikasi serial. Fungsi setup() harus di ikut sertakan dalam program walaupun tidak ada statement yang di jalankan. Contoh : void setup() { pinMode(13,OUTPUT); // mengset ‘pin’ 13 sebagai output }
Loop
Setelah melakukan fungsi setup() maka secara langsung akan melakukan fungsi loop() secara berurutan dan melakukan instruksiinstruksi yang ada dalam fungsi loop(). Contoh : void loop() { digitalWrite(13, HIGH); // nyalakan ‘pin’ 13 delay(1000); // pause selama 1 detik digitalWrite(13, LOW); // matikan ‘pin’ 13 delay(1000); /// pause selama 1 detik }
Serial begin ()
Statement ini di gunakan untuk mengaktifkan komunikasi serial dan mengset baudrate. Contoh : void setup() { Serial.begin(9600); }
//open serial port and set baudrate 9600 bps
39
Analog Read () Papan Arduino memiliki 6 chanel, 10 bit analog ke digital, artinya kita dapat memasukkan tegangan antara 0 dan 5 volts pada nilai integer antara 0 sampai 1023. Kisaran input atau masukan dan resolusi dapat dirubah menggunakan analog reference. Untuk membaca analog input dibutuhkan dibutuhkan sekitar 100 microsecond (0.0001 s). Jadi rata – rata membacanya sekitar 10.000 kali dalam satu detik. Catatan : jika pin analog input tidak dapat terkoneksi dengan apapun nilainya akan kembali pada analogRead. Syntax : analogRead(pin)
Contoh : Int analogPin = 3 // potentiometer wiper middle terminal connected to analog pin 3 Void setup () { Serial.begin (9600); } Void loop () { Val = analogRead(analogPin); // Read the input pin Serial.println(val); //debug value }
Delay ()
Menghentikan program untuk mengukur waktu (dalam millisecond) yang terspesifikasi pada parameter (ada 1000 milisecond dalam setiap detik). Pada saat mudahnya membuat LED berkedip dengan fungsi delay, beberapa sketch atau lembar kerja mengalami delay. Membaca sensor, perhitungan Matematika, atau memanipulasi Pin dapat berkerja pada saat fungsi delay bekerja. Beberapa program
40
berbasis pengetahuan biasanya menghindari penggunaan delay untuk kegiatan yang membutuhkan waktu lebih dari 10 miliseconds. Delay(1000); detik
// menunggu selama satu
Selanjutnya hubungkan Arduino Uno ke komputer dengan menggunakan kabel USB (Universal Serial Bus). Lalu kita dapat mengetikkan program pada lembar kerja Sketch kemudian compile untuk mengecek atau memeriksa apakah kode sudah benar sebelum dikirim ke papan Arduino.
3.2.3 Aplikasi Program Visual Basic 6.0 Salah satu kemudahan yang ada di Arduino adalah adanya fungsi komunikasi serial yang sudah dikemas pada software Arduino. Dengan adanya fungsi serial, maka Arduino dapat berkomunikasi dua arah dengan PC atau laptop menggunakan program yang menggunakan Delphi, Visual C, atau Visual Basic, Hasil pengukuran yang didapat tentunya dapat kita tampilkan pada program Visual Basic 6.0 namun dengan itu kita harus membuat program pada Visual Basic 6.0 dengan objek-objek yang digunakan.
3.2.3.1 Komponen Program Dalam mebuat suatu proyek (Project) tentu tidak lepas dari pemakaian komponen-komponen program. Selain berbentuk tampilan pada form, beberapa komponen program bisa terdiri dari kode-kode program. Komponen program yang ditempatkan pada form biasanya berbentuk file (.frm), sedangkan komponen program
41
yang berisi kode-kode program bisa terdiri dari file (.Bas, >Cls, dan lain-lain) baik yang dibuat lewat module, class module, user control, property page, dan masih banyak lainnya.
3.2.3.2 Kode Program Kode program adalah serangkaian tulisan perintah yang akan dilaksanakan jika suatu objek dijalankan. Kode-kode program ini akan mengontrol dan menentukan jalannya suatu objek. Perhatikan contoh kode program dibawah ini : Private Sub cmdFile_Click() Dim I As Integer Open txtFile & "Report.txt" For Output As #1 Print #1, txtView.Text Close #1 MsgBox ("Download report berhasil") End Sub
3.2.3.3 Event Event adalah peristiwa atau kejadian yang diterima oleh suatu objek, misal click, dblclick, keypress dan sebagainya. Sebuah program yang baik harus mampu mengakomodasi seluruh kemampuan eventyang akan dilakukan oleh pemakaianya. Tetapi tentu saja untuk menyediakan puluhan kemungkinan event pada sebuah program tidaklah mudah. Berikut ini beberapa event yang sering digunakan oleh pemakain program yaitu :
42
Event Untuk Mouse Click Event ini terjadi bila tombol kiri mouse ditekan dan dilepas dengan cepat saat posisi pointer berada diatas objek. DblClick Event ini terjadi bila tombol kiri mouse ditekan dan dilepas dengan cepat sebanyak dua kali saat posisi pointer berada diatas objek. DragDrop Event ini terjadi bila tombol kiri mouse ditekan dan ditahan kemudian menyeret atau menggeser objek dari suatu tempat ke tempat lain, kemudian melepas tombol kiri mouse tersebut. DragOver Hampir sama dengan DragDrop tetapi DragOver ini biasanya digunakan untuk mengubah bentuk tampilan pointer mouse saat objek diseret. MouseDown Event ini terjadi bila tombol kirim mouse ditekan dan ditahan MouseUp Event ini terjadi bila tombol kiri mouse dilepas sehabis ditekan.
43
MouseMove Event ini terjadi bila mouse dipindah posisinya ketempat lain tanpa menekan tombol mouse tersebut.
Event Untuk Keyboard KeyPress Event ini terjadi bila sebuah tombol keyboard ditekan. Nili parameter dan keypress adalah kode ASCII untuk menyatakan jenis tombol keyboard yang ditekan. KeyDown Event ini terjadi bila kita menekan dan menahan sebuah tombol keyboard. KeyUp Event ini terjadi bila kita melepaskan sebuah tombol keyboard.
Event Untuk Perubahan Active Event ini terjadi bila sebuah form menjadi window yang aktif. Deactive Event ini terjadi ketika kita berpindah dari satu form ke form yang lain.
44
GorFocus Event ini terjadi bila sebuah objek menjadi satu – satunya focus. Sebuah form dapat membuat objek focus bila form tersebut menjadi form aktiv. LostFocus Event ini terjadi bila sebuah objek kehilangan focus karena ada objek lain yang mendapat focus Load Event ini terjadi bila sebuah form dibuka atau dipanggil. Unload Event ini terjadi bila sebuah form ditutup. Initialize Event ini terjadi bila semua referensi untuk form atau class dihapus dari memori komputer pada objek form, event ini terjadi setelah event unload. Paint Event ini terjadi bila sebuah form perlu digambar ulang. Biasanya dilakukan saat sebuah form dipindahkan dari form lain yang menutupinya. Resize Event ini terjadi bila sebuah form diubah ukurannya. Change Event ini terjadi bila isi sebuah control diubah.
45
QueryUnload Event ini terjadi apabila suatu aplikasi ditutup. Biasanya digunakan
untuk
memastikan
bahwa
semua
yang
berhubungan dengan aplikasi juga ditutup, atau memastikan bahwa data telah disimpan sebelum aplikasi ditutup.
Event-event lainnya Timer Event in terjadi ketika event lain dijalankan sebelum event timer ini. Event ini hanya berhubungan dengan conttrol timer. Scroll Event ini terjadi saat kita menyeret kotak kecil pada scroll bar. Event ini hanya berhubungan dengan control scroll bar. PathChange Event ini terjadi saat standar path untuk mencari suatu file diubah. Event ini hanya ada pada Control File List Box. PatternChange Event in terjadi bila kode pencarian daftar file diubah, misalnya *.* diubah jadi *.jpg. Validate Event ini hanya digunakan untuk memastikan data telah ditangani dengan baik.
46
SelChange Event ini terjadi saat Control Grid sedang digunakan.
3.2.3.4 Module Module dapat disejajarkan dengan form, tetapi tidak terdapat objek. Module hanya berisi kodekode program atau prosedur yang dapat digunakan dalam program apliaksi. Contoh : Private Sub Form_Load() Dim LocTextFile As String Dim ServerAddress()
As String
Dim DatabaseName As String Dim UserID As String Dim strMessage As String Dim I As Integer Dim Contoh As String, Hasil As String Dim Panjang As Integer Dim k
Call Port Call buatgaris Call buatgaris2
End Sub
3.2.3.5 Memasang Kontrol pada Form Suatu program aplikasi yang dibuat loleh Visual Basic 6.0 bisa dikatakan tidak pernah lepas dari pemakaian control dalam
47
form. Sebenarnya control Visual Basic 6.0 tidak hanya yang ada dalam toolbox saja, masih banyak lagi yang tersimpan sebagai komponen tambahan.
Sekarang kita dapat memulai mendesain
form, dengan mengikuti langkah-langkah berikut : 1.
Buka New Project dengan memilih Stadard EXE
2.
Dalam proyek ini menggunakan 8 kontrol label, 4 Text Box, 5 Frame, 4 Picture Box, 6 Command Button, 2 Option Button, 1 Common Button, 1 Common Dialog, 2 Check Box, 1 Timer, 2 Check Box, 1 SSTab.
Gambar 3.6 Desain Form Visual Basic 6.0
3.
Program diketik pada masing-masing kontrol sesuai dengan kebutuhan:
48
Setelah kode program dibuat, sambungkan Arduino Uno pada komputer dengan menggunakan kabel USB. Setelah disambungkan maka akan terbaca ada di port berapa Arduino terinstal.
Kemudian
dengan
otomatis
aplikasi
Suhu
dan
Kelembaban akan membaca port berapa saja yang aktif di komputer yang digunakan. Pengguna hanya tinggal memilih port pada aplikasi Suhu dan Kelembaban tersebut. Jika port belum dipilih, maka akan muncul kotak dialog seperti dibawah ini :
Gambar 3.7 Kotak dialog Port belum dipilih
Bila kita ingin menjalankan program ini, kita tidak bisa melakukan upload program Arduino secara bersamaan karena masing-masing menggunakan port yang sama. Berikut hasil akhir program suhu dan kelembaban yang dapat ditampilkan.
3.2.3.6 Membuat File Exe Program yang telah dibuat biasanya harus dijalankan dengan membuka sistem Visual Basic terlebih dahulu, hal ini
49
membutuhkan banyak waktu. Untuk melakukan efisiensi sebaiknya dibuat sebuah file EXE dari program yang telah lengkap tersebut, tujuannya adalah agar pada saat kita menjalankan program yangsudah kita buat, kita tidak perlu menjalankan Visual Basic. Untuk membuat kompilasi program lakukan langkah-langkah dibawah ini : 1. Buka program yang akan dikompilasi, contoh Program Suhu dan Kelembaban 2. Klik menu File, pilih Make Suhu.exe 3. Tulis nama file exe (misal Suhu dan Kelembaban) 4. Tentukan posisi penyimpanan file tersebut 5. Kemudian pilih OK
Gambar 3.8 Membuat kompilasi program ke dalam exe
50
Setelah terbentuk file exe dengan langkah-langkakh diatas, maka sebaiknya kita pun membuat shortcut di desktop dengan tujuan agar pada saat ptogtam tersebut dijalankan kita cukup melakukan double click pada shortcut tersebut tanpa harus membuka Visual Basic. Untuk membuat Shortcut di desktop lakukan langkah-langkah berikut : 1. Klik kanan pada file exe yang sudah dibuat 2. Pilih Send to 3. Pilih Desktop (Create Shortcut)
Gambar 3.9 Shortcut pada desktop
Dengan cara ini maka akan terbentuk sebuah shortcut baru di desktop, jika kita melakukan Double Click pada shortcut tersebut maka akan tampil program aplikasi kontrol suhu dan kelembaban yang telah dikompilasi dengan nama Suhu_Kelembaban.