57 BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Sistem Gambar 3.1 Blok Diagram Sistem Fungsi dari masing-masing blok yang terdapat pada gambar 3.1 adalah sebagai berikut : Mikrokontroler AT89S52 Berfungsi sebagai pusat pemrosesan dan pengolahan data. Mikrokontroler menerima data input dari sensor kemudian memproses dan mengolah data tersebut untuk kemudian dikirim melalui SMS oleh Handphone. Handphone Nokia 3310 Berfungsi sebagai GSM Modem sehingga data pengukuran curah hujan dapat dikirim melalui SMS. Penampung Curah Hujan Berfungsi sebagai penampung curah hujan yang diukur. Sensor Berfungsi untuk mengkonversi jumlah curah hujan menjadi kondisi binary digit (bit).
58 3.2 Modul Sistem dan Cara Kerja Perangkat keras yang dirancang dalam sistem ini terdiri dari beberapa modul yang saling berhubungan satu sama lain, yaitu Modul Penampung Curah Hujan, Modul Sensor dan Modul Mikrokontroler. 3.2.1 Modul Mikrokontroler Gambar 3.2 Rangkaian Modul Mikrokontroler Modul Mikrokontroler merupakan modul utama karena sebagai pusat pengaturan, pemrosesan dan pengolahan data. Pada modul mikrokontroler ini terdapat beberapa rangkaian, yaitu rangkaian reset, rangkaian osilator, rangkaian dipswitch, rangkaian indikator dan rangkaian pembatas tegangan. Rangkaian reset digunakan untuk me-reset mikrokontroler agar menjalankan program dari awal. Rangkaian ini dapat me-reset mikrokontroler
59 secara manual atau secara otomatis saat Power Supply diaktifkan (Power On Reset). Untuk me-reset mikrokontroler cukup dengan menekan tombol S1, saat tombol S1 ditekan maka pin Reset akan terhubung dengan VCC atau mendapat logika High. Pada Power On Reset, mikrokontroler akan reset dipengaruhi oleh kapasitor C1. Pada saat Power Supply diaktifkan, kapasitor dalam kondisi kosong, tegangan pada kapasitor adalah 0V dan seolah-olah kapasitor menjadi terhubung singkat, arus mengalir melalui kapasitor menuju pin Reset sehingga pin Reset mendapatkan logika High dan mikrokontroler menjadi Reset. Kemudian kapasitor terisi hingga tegangan pada kapasitor sama dengan tegangan VCC. Rangkaian osilator digunakan untuk membangkitkan clock sebagai sumber clock ke mikrokontroler. Rangkaian ini menggunakan kristal 11.0592 Mhz (Y1) sebagai pembangkit clock dan sebagai penstabil sinyal clock digunakan kapasitor 33 pf (C2 dan C3) yang direkomendasikan oleh pembuat mikrokontroler. Rangkaian Dipswitch digunakan untuk menentukan titik (node) dari lokasi penempatan pengukur curah hujan. Misalnya untuk suatu wilayah dipasang beberapa pengukur curah hujan, dengan dipswitch ini maka dapat ditentukan titik ke-1, titik ke-2 dan seterusnya. Rangkaian ini terdiri dari Dipswitch S2 yang terhubung pada Port 0. Diantara Port 0 dengan dipswitch dipasang Resistor Pack RP1 330 Ohm sebagai Pull-up karena pada Port 0 tidak terdapat Internal Pull-up Resistor. Rangkaian indikator digunakan sebagai indikator dari system. Rangkaian indikator terdiri dari 8 buah LED yang terhubung secara seri dengan resistor ke
60 Port 2. Port 2.0 dan Port 2.1 digunakan sebagai indikator dari Initiate Connection, Port 2.2 dan Port 2.3 digunakan sebagai indikator Send SMS Message dan Port 2.4 sampai Port 2.7 digunakan sebagai indicator Counter untuk waktu (3 menit) Rangkaian pembatas tegangan digunakan untuk membatasi tegangan pada Serial Port yaitu Port 3.0 dan Port 3.1 yang terhubung dengan pin FTX dan FRX pada Handphone agar tegangan pada port tersebut tidak melebihi dari 3.6V. Rangkaian pembatas tegangan ini menggunakan dua buah dioda zener D2 dan D2. Pembatas tegangan digunakan karena Handphone menggunakan IC digital dimana untuk kondisi High adalah 3.5V dan kondisi Low adalah 0V. Pada Mikrokontroler, tegangan 3.6V masih dianggap berkondisi High karena range kondisi High adalah dari 3.5V 5.5V (dengan VCC = 5V) sedangkan range kondisi Low adalah 0.5V 0.9V (dengan VCC = 5V). 3.2.2 Modul Sensor Gambar 3.3 Rangkaian Modul Sensor
61 Modul Sensor digunakan untuk mengkonversi jumlah curah hujan menjadi binary digit (bit). Rangkaian pada modul sensor menggunakan LED infra red sebagai transmitter (D3 dan D5) dan photo diode sebagai receiver (D2 dan D3). Saat photo dioda menerima cahaya dari LED infra red (tidak terhalang oleh penampung curah hujan), photo diode menjadi aktif dan arus mengalir dari VCC melalui photo diode menuju input buffer sehingga kondisi pada pin input buffer adalah High dan juga akan menghasilkan output berkondisi High. Saat cahaya dari LED infra red terhalang oleh penampung curah hujan, maka photo diode tidak memperoleh cahaya sehingga photo dioda menjadi tidak aktif dan tidak ada arus yang mengalir menuju input buffer. Hal ini menyebabkan input buffer berkondisi Low dan juga akan menghasilkan output berkondisi Low. IC U2 (74HC125) adalah IC buffer yang fungsinya untuk memberikan input berkondisi Low dan High pada pin INT0 dan INT1. 3.2.3 Modul Penampung Curah Hujan Gambar 3.4 Penampung Curah Hujan
62 Modul Penampung curah hujan terbuat dari bahan acrylic yang dibentuk menjadi segitiga yang dibagi dua. Posisi penampung curah hujan awalnya akan condong ke salah satu sisi. Saat hujan, air akan ditampung pada salah satu sisi. Jika penampung telah terisi air sampai penuh maka penampung akan berjungkit dan sisi lain yang akan menampung air selanjutnya. Jumlah air yang ditampung pada penampung curah hujan adalah : Volume = (0.5 x 6.35 cm x 2.54 cm) x 1.9 cm = 15.32 cm 3 Jadi saat penampung curah hujan berisi air dengan volume 15.32 cm 3 maka penampung akan berjungkit. Berjungkitnya penampung curah hujan tidak hanya dipengaruhi oleh volume atau jumlah air yang ditampung, tetapi dipengaruhi juga oleh massa jenis air dan bahan pembuat penampung curah hujan. Posisi penampung curah hujan selalu condong ke salah satu sisi, gambar berikut adalah gambar segitiga penampung curah hujan yang disederhanakan. Gambar 3.5 Segitiga Penampung Curah Hujan
63 Pada gambar diatas, penampung curah hujan condong ke kiri. Jika dibagi dua dengan menarik garis tengah secara vertikal dari titik tengah maka akan nampak dua bagian tersebut adalah bagian yang diarsir dengan bagian yang tidak diarsir dengan garis pembatas yaitu garis y. Secara logika, berat penampung pada bagian yang diarsir lebih besar daripada bagian yang tidak terasir. Untuk mendukung logika tersebut dapat dilakukan perhitungan sebagai berikut : Jika p = 6.35 cm, l = 1.9 cm dan t = 2.54, maka : Panjang x1 dan x2 adalah : x1 + x2 = {(p) 2 + (t) 2 } = {(6.35) 2 + (2.54) 2 } = 46.77 = 6.84 cm Panjang x1 adalah : t1 = arc sin {p : (x1+x2)} = arc sin (6.35 : 6.84) = arc sin 0.93 = 68.18 x1 = cos t1 x t = cos 68.18 x 2.54 = 0.37 x 2.54 = 0.94 cm Panjang x2 adalah : x2 = {(x1+x2) x1} = 6.84 0.94 = 5.9 cm Panjang y adalah : y = sin t1 x t = sin 68.18 x 2.54 = 0.93 x 2.54 = 2.36 cm Volume untuk x1 adalah : v1 = x1 x y x l x 0.5 = 0.94 x 2.36 x 1.9 x 0.5 = 2.10 cm 3
64 Volume untuk x2 adalah : V2 = x2 x y x l x 0.5 = 5.9 x 2.36 x 1.9 x 0.5 = 13.22 cm 3 Luas bagian yang diarsir dari bahan pembuat penampung adalah : L1 = {(p x t) + (p x l) + (t x l) + (x1 x y)} = {(6.35 x 2.54) + (6.35 x 1.9) + (2.54 x 1.9) + (0.94 x 2.36)} = 16.13 + 12.07 + 4.83 + 2.22 = 35.24 cm 2 Luas bagian yang tidak diarsir dari bahan pembuat penampung adalah : L2 = {(p x l) + (x2 x y)} = {(6.35 x 1.9) + (5.9 x 2.36)} = 12.07 + 13.92 = 25.99 cm 2 Dengan tebal dari acrylic adalah 0.3 cm maka volume pada bagian yang diarsir dari bahan pembuat penampung adalah : vol1 = L1 x 0.3 = 35.24 x 0.3 = 10.57 cm 3 Sedangkan volume pada bagian yang tidak diarsir dari bahan pembuat penampung adalah : vol2 = L2 x 0.3 = 25.99 x 0.3 = 7.78 cm 3 Jika massa jenis dari acrylic adalah 3.9 g/cm 3 dan massa jenis air adalah 1 g/cm 3 maka massa dari bagian yang diarsir dari bahan pembuat penampung adalah : m1 = (massa jenis acrylic x vol1) + (massa jenis air x v1) = (39 x 10.57) + (1 x 2.10) = 41.22 + 2.10 = 43.30 g Sedangkan massa dari bagian yang tidak diarsir dari bahan pembuat penampung adalah : m2 = (massa jenis acrylic x vol2)+(massa jenis air x v2) = (39 x 7.78) + (1 x 13.22) = 30.34 + 13.22 = 43.56 g
65 Pada saat penampung curah hujan terisi air dengan penuh, yaitu dengan volume 15.32 cm 3 maka massa pada bagian yang diarsir lebih kecil dari massa pada bagian yang tidak diarsir sehingga penampung curah hujan berjungkit. Modul penampung curah hujan memiliki corong untuk mengumpulkan air hujan yang jatuh. Luas dari permukaan corong tersebut menentukan jumlah curah hujan yang akan diukur. Jumlah curah hujan diukur dengan satuan millimeter. Curah hujan setinggi satu millimeter adalah jumlah atau volume air hujuan dengan tinggi permukaan air hujan sebesar satu millimeter dalam suatu luasan tertentu. Dengan diameter permukaan corong sebesar 31 cm, maka luas permukaan corong adalah : Luas Permukaan Corong = π x (31 : 2) 2 = π x (15.5) 2 = π x 240.25 = 754.77 cm 2 Curah Hujan 1 mm adalah = Luas Permukaan Corong x 1mm = 754.77 x 0.1 cm = 75.477 cm 3 Jadi dengan diameter permukaan corong sebesar 31 cm, maka jumlah atau volume curah hujan permilimeter adalah 75.477 cm 3. Dengan penampung curah hujan dengan jumlah atau volume air yang dapat ditampung sebesar 15.32 cm 3, maka tinggi curah hujan untuk setiap kali penampung curah hujan berjungkit atau skala adalah : Skala = volume air ditampung : curah hujan 1 mm = 15.32 : 75.477 = 0.2 mm Jadi untuk setiap kali penampung curah hujan berjungkit, maka curah hujan yang terukur adalah 0.2 mm.
66 3.3 Diagram Alir Program Utama Gambar 3.6 Diagram Alir Program Utama Pada program utama awalnya dilakukan inisialisasi. Inisialisasi yang dilakukan adalah inisialisasi port serial, inisialisasi timer, inisialisasi interupsi dan inisialisasi komunikasi dengan handphone. Setelah inisialisasi selesai dilakukan, kemudian program akan membaca Flag Initiate Connection. Jika Flag Initiate Connection adalah 1 maka program akan memanggil dan menjalankan prosedur Initiate Connection. Prosedur Initiate Connection adalah prosedur untuk mengirimkan Frame Initiate Connection setiap 5 detik agar jalur komunikasi antara mikrokontroler dengan handphone tidak terputus. Kemudian program akan membaca Flag Kirim SMS. Jika Flag Kirim SMS bernilai 1 maka program akan memanggil dan menjalankan prosedur Kirim
67 SMS. Prosedur Kirim SMS adalah prosedur yang akan mengirim Frame Send SMS setelah penampung curah hujan berhenti berjungkit selama 3 menit. Jika selama 3 menit penampung curah hujan berhenti berjungkit maka mikrokontroler akan mengirim SMS mengenai curah hujan yang telah diukur. 3.3.1 Diagram Alir Prosedur Timer 1 Gambar 3.7 Diagram Alir Prosedur Timer 1
68 Saat counter pada Timer 1 terjadi over flow, terjadi interupsi pada Timer 1. Program akan berhenti dan melayani interupsi Timer 1 yaitu memanggil dan menjalankan prosedur Timer 1. Pada program prosedur Timer 1, Timer 1 di-disable terlebih dahulu agar program yang berada didalam prosedur timer dapat dijalankan terlebih dahulu dan tidak terinterupsi jika program belum selesai dijalankan. Setelah program selesai dijalankan kemudian Timer 1 di-enable-kan kembali. Setelah Timer 1 di-disable kemudian program akan menambah data yang tersimpan pada Buffer Detik dan Buffer Menit. Kemudian program akan membaca data pada Buffer Detik, jika data pada Buffer Detik adalah data 5 detik maka Flag Initiate Connection bernilai 1 dan data pada Buffer Detik di-reset. Kemudian program akan membaca Flag Hujan, Jika Flag Hujan bernilai 1 maka program akan membaca data pada Buffer Menit dan memeriksa apakah data pada Buffer Menit adalah data 3 menit. Jika data adalah 3 menit maka Flag Kirim SMS akan bernilai 1, Flag Hujan bernilai 0 dan data pada Buffer Menit direset. Jika data buffer Menit bukan 3 menit selama 1 jam maka maka Flag Kirim SMS akan bernilai 1, Flag Hujan bernilai 0 dan data pada Buffer Menit direset. Artinya jika selama 1 jam hujan tidak berhenti maka mikrokontroler akan mengirimkan data hasil pengukuran selama 1 jam. 3.3.2 Diagram Alir Prosedur INT0 dan INT1 Prosedur INT0 dan INT1 adalah prosedur yang dipanggil ketika terjadi interupsi external pada pin INT0 atau INT1.
69 Gambar 3.8 Diagram Alir INT0 dan INT1 Misalnya terjadi interupsi pada interupsi eksternal 0, program akan memanggil dan menjalankan prosedur INT0. Pada program prosedur INT0, Timer 1 di-disable terlebih dahulu agar program yang berada didalam prosedur INT dapat dijalankan terlebih dahulu dan tidak terinterupsi oleh Timer 1 ketika program belum selesai dijalankan. Setelah program selesai dijalankan kemudian Timer 1 di-enable-kan kembali. Setelah Timer 1 di-disable kemudian program akan men-disable interupsi 0. Tujuannya adalah kerena pada saat penampung curah hujan berjungkit maka photo diode akan selalu terhalang oleh penampung curah hujan sehingga tidak menerima sinar dari LED infra red. Hal ini menyebabkan kondisi
70 pada interupsi 0 akan selalu Low. Jika interupsi 0 tidak di-disable maka akan terjadi interupsi terus menerus sampai penampung curah hujan berjungkit ke sisi yang lain. Hal seperti ini berlaku pula pada prosedur INT1. Kemudian program akan menambah data pada Buffer Hujan dan membuat Flag Hujan bernilai 1. Jadi setiap kali penampung curah hujan berjungkit, maka data pada Buffer Hujan akan bertambah. Kemudian program meng-enable INT1 dan Timer 1. Buffer Hujan merupakan data 2 byte (16 bit) yang dibagi menjadi 4 data nibble (4 bit). Empat data nibble tersebut mewakili bilangan desimal ratusan, puluhan, satuan dan pecahan. Bentuk dari 4 nibble tersebut adalah xxxx, dimana x adalah bilangan desimal 0 9. Setiap kali terjadi interupsi eksternal, data pada Buffer Hujan bertambah 2. Operasi penjumlahan data adalah operasi penjumlahan bilangan desimal, misalnya data pada Buffer Hujan adalah 1998 dan terjadi interupsi eksternal maka data pada Buffer Hujan ditambah dengan 2 sehingga data pada Buffer Hujan berubah menjadi 2000. Pada saat konversi data 7 bit menjadi 8 bit, data dari Buffer Hujan diubah menjadi xxx.x, misalnya 199.8. 3.3.3 Diagram Alir Prosedur Initiate Connection Prosedur Initiate Connection adalah prosedur yang berisi program yang dikirim secara periodik oleh mikrokontroler ke handphone. Program ini digunakan untuk menjaga jalur komunikasi antara mikrokontroler dan handphone tidak terputus.
71 Initiate Connection A Initiate Connection Frame Baca Data Serial Port Kirim Initiate Connection Frame Respone Frame? T Baca Data Serial Port Y ACK Frame ACK Frame? Y A Kirim ACK Frame T Flag Initiate Connection = 0 RET Gambar 3.9 Diagram Alir Prosedur Initiate Connection Jika mikrokontroler tidak mengirimkan Frame Initiate Connection secara periodik maka handphone akan menggap tidak ada komunikasi dan jalur komunikasi diputus. Jika jalur komunikasi diputus maka mikrokontroler harus melakukan inisialisasi kembali. Saat program dijalankan, program akan menyiapkan Initiate Connection Frame. Setelah Frame siap, kemudian Frame tersebut dikirim oleh mikrokontroler ke handphone melalui Serial Port. Seteleh Frame selesai dikirim, kemudian mikrokontroler menunggu Frame ACK dari Handphone. Jika mikrokontroler tidak menerima Frame ACK maka mikrokontroler akan mengirimkan Frame Initiate Connection kembali. Seteleh mikrokontroler menerima Frame ACK kemudian mikrokontroler menunggu Frame Respone dari Handphone. Seteleh mikrokontroler menerima
72 Frame Respone, kemudian mikrokontroler mengirimkan Frame ACK ke handphone. 3.3.4 Diagram Alir Prosedur Kirim SMS Prosedur kirim SMS adalah prosedur yang berisi program untuk menghitung titik (node), menghitung curah hujan, konversi data 7 bit ke 8 bit dan mengirim SMS. Gambar 3.10 Diagram Alir Prosedur Kirim SMS Untuk menghitung titik (node) dilakukan dengan membaca Dipswitch yang terhubung pada Port 0. Dipswitch yang digunakan berisi 8 switch, dimana
73 perhitungannya sama dengan perhitungan bilangan biner 8 bit yaitu port P0.0 sebagai Least Signficant Bit (LSB) dan port P0.7 sebagai Most Signficant Bit (MSB). Setelah perhitungan titik (node) selesai kemudian program membaca Buffer Hujan untuk mengambil data hasil dari pengukuran curah hujan. Kemudian data dari perhitungan titik (node) dan data hasil pengukuran curah hujan digabungkan dengan data teks, contoh dari penggabungan data tersebut adalah TITIK KE-255; CURAH HUJAN : 199.8 mm. Data yang telah digabungkan tersebut kemudian dikonversi, data tersebut merupakan data yang terdiri dari karakter-karakter 8 bit, kemudian diubah menjadi data 7 bit dengan membuang bit ke 8 untuk masing-masing karaker, kemudian data tersebut diurutkan dan dibagi-bagi menjadi 8 bit. Setelah data dikonversi, kemudian data diletakkan pada Frame Send SMS lalu Frame tersebut dikirim melalui Serial Port. Seteleh Frame selesai dikirim, kemudian mikrokontroler menunggu Frame ACK dari Handphone. Jika mikrokontroler tidak menerima Frame ACK maka mikrokontroler akan mengirimkan Frame Send SMS kembali. Seteleh mikrokontroler menerima Frame ACK kemudian mikrokontroler menunggu Frame Respone dari Handphone. Seteleh mikrokontroler menerima Frame Respone, kemudian mikrokontroler mengirimkan Frame ACK ke handphone.
74 3.4 Rancang Bangun 55 32.5 4 75 4 32.5 55 310 Catatan : Ukuran dalam milimeter Gambar 3.11 Rancang Bangun Pengukur Curah Hujan Tampak Samping Gambar 3.12 Rancang Bangun Pengukur Curah Hujan Tampak Atas