PENAKAR CURAH HUJAN AUTOMATIS
MENGGUNAKAN MIKROKONTROLER ATMEGA 32
Sumardi
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Diponegoro
Jln. Prof. Soedharto, Tembalang, Semarang, Jawa Tengah, Indonesia
E-mail:
[email protected]Abstract. Indonesia is one kind of country which has wet tropical climate (humid tropic). The
character has always high volume of rains. The average for each year in Indonesia isnt in the same
portion. But there still much more, an average 20003000 mm/year. And also between one and the
other places have different rain rates. Areas which have rain rate less than 1000 mm, coverage of
0,6% from Indonesian territory, There are South east of Nusa, and 2 areas in Sulawesi ( Palu valley
and Luwuk ). And some areas which have rain rates between 1000 2000 mm in a year there are
some part of South east of Nusa, a little part of Merauke, Aru Archipelago and Tanibar. The areas
which have rain rates between 2000 3000 mm per year, coverage East Sumatra, South Kalimantan,
East part of West Java and Central Java, and some part of Irian Jaya, maluku Archipelago and some
of Sulawesi. The area which has the most portion of rain 3000 mm per year is high land of West
Sumatra, Central Kalimantan, and central plateau of Papua, more areas in Java, Bali, Lombok, and
Sumba.
Since this conditions, needed to improve a tools to detect total of rain rate prototype, so rain rate
data in one place could be known quickly. This is so meanly to give advantage, for example to
anticipate or warn from flood disaster or even landslide.
In this research designed hardware to detect rain rate automatically using tipping bucket rain rate
sensor. This sensor employed based on signal pulse caused of tipping moving from the rain which
called click. Once click produce one pulse feed up to microcontroller to be recorded. Once click
shows the number of flow rains 5,5 mm. Total flow rains recorded and accumulated from 06.00
until 17.00 and from 17.00 until 06.00. This result saved in its memory to an exact time suitable with
memory capacity which still available in microcontroller.
Keywords: rain rate detector, tipping bucket
Suatu sistem Peringatan Dini Banjir atau
sering disebut sebagai Flood Early Warning
System terdiri atas beberapa buah Agen
Telemetri. Salah satunya adalah Agen Telemetri
dengan kemampuan membaca dan mengirimkan
data curah hujan pada suatu tempat.
akan secara kontinyu melaporkan data curah
hujan.
Adapun tujuan dari penyusunan penelitian ini
adalah merancang suatu sistem penakar hujan
automatis berbasis mikrokontroler dengan LCD
sebagai penampil data curah hujan.
PENAKAR CURAH HUJAN
Hujan adalah peristiwa turunnya titik-titik air
atau kristal-kristal es dari awan sampai ke
permukaan tanah. Alat untuk mengukur jumlah
curah hujan yang turun kepermukaan tanah per
satuan luas, disebut Penakar Curah Hujan. Curah
hujan 1 (satu) milimeter, artinya dalam luasan satu
meter persegi pada tempat yang datar tertampung
air setinggi 1 (satu) milimeter atau tertampung air
sebanyak 1 (satu ) liter atau 1000 ml. Secara
umum penakar hujan dibedakan menjadi dua,
yaitu penakar curah hujan manual dan penakar
curah hujan otomatis.
Gambar 1. Peta Data Curah Hujan di Indonesia
Piranti ini memegang peranan yang sangat
vital bagi sistem Early Warning. Peralatan ini
84
Sumardi, Penakar Curah Hujan Automatis Menggunakan Mikrokontroler ATMega 32
85
Gambar 2. Penakar Curah Hujan Manual
Gambar 4. Susunan mikrokontroller AT-Mega 32
Gambar 3. Penakar Curah Hujan Otomatis
Penakar hujan tipe tipping bucket, nilai
curah hujannya tiap bucket berjungkit tidak
sama, serta luas permukaan corongnya beragam
tegantung dari merk pembuatnya. Misalnya ada
yang 0.1 mm, 0.2 mm , 0.5 mm dan lain-lain.
Penakar curah hujan tipe tipping bucket ini
memanfaatkan sensor reed switch untuk
memberikan masukan pada mikrokontroler yaitu
berupa perubahan tahanan ketika bejana
bergoyang.
MIKROKONTROLER AVR ATMEGA32
AVR (Alf and Vegards Risc Processor)
merupakan seri mikrokontroller CMOS 8-bit
buatan Atmel, berbasis arsitektur RISC
(Reduced Instruction Set Computer). Hampir
semua instruksi dieksekusi dalam satu siklus
clock, berbeda dengan instruksi MCS51 yang
membutuhkan 12 siklus clock. AVR mempunyai
32 register serbaguna, Timer/Counter fleksibel
dengan mode compare, interrupt internal dan
eksternal,
serial
UART,
programmable
Watchdog Timer, dan mode power saving.
Beberapa di antaranya mempunyai ADC dan
PWM internal. AVR juga memiliki fasilitas InSystem Programmable Flash on-chip yang
memungkinkan
memori
program
dapat
diprogram ulang saat sistem sedang bekerja.
Beberapa keistimewaan dari AVR AT-Mega
32 antara lain:
1) Power On Reset dan deteksi Brown out
terprogram.
2) Sistem mikroprosesor 8 bit berbasis RISC
dengan kecepatan maksimal 16 MHz.
3) RC Osilator Internal Terkalibrasi.
4) Sumber interupsi internal dan eksternal.
5) Kapasitas memori flash 32 kBytes, internal
SRAM sebesar 2048 byte, dan EEPROM
(Electrically Erasable Programmable Read
Only Memory) sebesar 1024 byte.
6) ADC (Analog to Digital Converter) internal
dengan resolusi 10 bit sebanyak 8 saluran.
7) Port komunikasi serial (USART) dengan
kecepatan maksimal 2,5 Mbps.
8) Enam pilihan mode sleep menghemat
penggunaan daya listrik.
LCD ( Liquid Crystal Display )
LCD M1632 adalah sebuah modul LCD
DotMAtrik dengan konfigurasi 2 baril dengan 16
karakter setiap barisnya. Dibentuk oleh 8x5 pixel
dengan 1 baris pixel terakhir adalah kursor).
HD44780 adalah mikrokontroler yang
dirancang khusus untuk mengendalikan LCD dan
mempunyai kemampuan untuk mengatur proses
scanning pada layar LCD. Driver tersebut
bertugas mengirimkan data karakter LCD, dan
bertugas mengendalikan LCD sesuai dengan
perintah yang diberikan melalui pin I/O LCD.
CodeVision AVR telah menyediakan pustaka
yang berisi fungsi-fungsi siap pakai yang dapat
langsung digunakan untuk mengakses LCD.
Penyesuaian yang dilakukan adalah pada
konfigurasi port LCD yang harus disamakan
dengan konfigurasi pin pada CodeVision AVR.
86 TRANSMISI, Jurnal Teknik Elektro, Volume 11, Nomor 2, Juni 2009, hlm 84-90
Gambar 5 Konfigurasi Pin LCD M1632.
Pin 1 (GND): pin ini berhubungan dengan
tegangan +5 volt yang merupakan tegangan
untuk sumber daya dari HD44780 (khusus
untuk modul M1632 keluaran Hitachi, pin ini
adalah VCC).
Pin 2 (VCC): pin ini berhubungan dengan
tegangan 0 volt (ground) dari modul LCD
(khusus untuk modul M1632 keluaran
Hitachi, pin ini adalah GND).
Pin 3 (VEE/VLCD): Tegangan pengatur
kontras LCD, kontras mencapai nilai
maksimum pada saat kondisi pin ini pada
tegangan 0 volt.
Pin 4 (RS): Register Select, pin pemilih
register yang akan diakses. Untuk akses ke
register data, logika dari pin ini adalah 1 dan
untuk akses ke register perintah, logika dari
pin ini adalah 0.
Pin 5 (R/W): logika 1 pada pin ini
menunjukkan bahwa modul LCD sedang pada
mode pembacaan dan logika 0 menunjukkan
bahwa modul LCD sedang pada mode
penulisan. Untuk aplikasi yang tidak
membutuhkan pembacaan pada modul LCD,
pin ini dapat langsung dihubungkan ke
ground.
Pin 6 (E): Enable Clock LCD, pin
mengaktifkan clock LCD. Logika 1 pada pin
ini diberikan pada saat penulisan atau
pembacaan data.
Pin 7-14 (D0-D7): Data Bus, kedelapan pin
modul LCD ini adalah bagian dimana aliran
data sebanyak 4 bit ataupun 8 bit mengalir
saat proses penulisan maupun pembacaan
data.
Pin 15 (Anoda): berfungsi untuk tegangan
positif dari backlight modul LCD sekitar 4,5
volt (hanya terdapat untuk M1632 yang
memiliki backlight).
Pin 16 (Katoda): tegangan negatif backlight
modul LCD sebesar 0 volt (hanya terdapat
untuk M1632 yang memiliki backlight).
Pemrograman dengan Bahasa C
Mikrokontroler AVR dirancang dengan
mempertimbangkan sifat-sifat pengkodean
bahasa C, sehingga bahasa inilah yang kemudian
cenderung digunakan daripada bahasa lainnya
seperti bahasa basic ataupun pascal. Bahasa C
yang digunakan pada AVR ini adalah ANSI
(American National Standard Institute) C. Alasan
utama pemilihan bahasa C ini karena bahasa C
merupakan gabungan dari bahasa tingkat tinggi
dan juga bahasa tingkat rendah, yang
menyediakan kemampuan operasi-operasi bit,
byte, alamat-alamat memori, dan register. Bahasa
C yang digunakan untuk memprogram
mikrokontroler ini disebut sebagai embedded C,
yang selanjutnya oleh compiler, senarai program
C ini diubah menjadi bahasa tingkat rendah
mikrokontroler yang bersangkutan yang kemudian
diterjemahkan menjadi kode-kode bahasa mesin
yang selanjutnya diprogramkan ke dalam chip
mikrokontroler.
Tabel 1 berikut ini tentang rentang nilai
masing-masing tipe mikrokontroler.
Tabel 1. Tipe Data
Tipe
Ukuran
(bit)
1
Char
Unsigned char
Signed char
Int
8
8
8
16
-128 sampai 127
0 sampai 255
-128 sampai 127
-32768 sampai 32767
Short int
Unsigned int
16
16
-32768 sampai 32767
0 sampai 65535
Bit
Tipe
Jangkauan Nilai
0 dan 1
Ukuran
(bit)
16
32
32
-32768 sampai 32767
-2147483648 sampai 2147483647
0 sampai 4294967295
Signed long int
32
-2147483648 sampai 2147483647
Float
32
1.175e-38 sampai 3.402e38
Double
32
1.175e-38 sampai 3.402e38
Signed int
Long int
Unsigned long int
Jangkauan Nilai
Bahasa C yang digunakan hampir semuanya
sesuai dengan standard dari ANSI dengan
penambahan beberapa fungsi untuk disesuaikan
dengan arsitektur AVR dan sistem pada
mikrokontroler.
Program compiler C yang digunakan pada
Penelitian ini adalah CodeVisionAVR versi 1.25,
yang dapat diperoleh secara gratis di situs
www.hpinfotech.ro.
PERANCANGAN SISTEM
Gambaran Umum Penakar Curah Hujan
Automatis
Perangkat penakar curah hujan memiliki
spesifikasi dan kemampuan yang cukup andal
Sumardi, Penakar Curah Hujan Automatis Menggunakan Mikrokontroler ATMega 32
dalam menangani berbagai kemungkinan yang
terjadi di lapangan.. Berikut adalah perancangan
mengenai spesifikasi dan kemampuan dari agen
telemetri tinggi muka air.
1) Menghitung curah hujan secara automatis
2) Penampil data curah hujan menggunakan
LCD
3) Update data pada tampilan LCD 2 kali
sehari.
Komponen-komponen yang digunakan
dalam sistem penakar curah hujan otomatis
adalah:
1) Sensor curah hujan tipe tipping bucket:
berfungsi sebagai sensor curah hujan
2) Modul LCD M1632 berfungsi menampilkan
data curah hujan
3) Mikrokontroler
AVR
AT-Mega32:
berfungsi mengatur kinerja sistem dalam
manajemen data
4) sebagai unit masukan untuk keperluan
setting secara manual di tempat.
5) RTC (Real Time Clock): berfungsi sebagai
sumber waktu akurat.
87
Perangkat Sensor Curah Hujan
Dengan sensor ini, hujan tidak perlu lagi
dicatat setiap hari karena alat ini dilengkapi
dengan pencatat jumlah akumulasi hujan terhadap
waktu dalam bentuk grafik. Ada tiga jenis alat
penakar hujan otomatis: weighing bucket, tipping
bucket, dan float. Gambar alat penakar hujan tipe
tipping bucket (bejana goyang) dapat dilihat pada
Gambar 7.
Gambar 7. Sensor Curah Hujan.
Sistem Minimum ATMega32
Pada Sistem penakar curah hujan ini, sistem
minimum mikrokontroler memegang peranan
penting, yakni sebagai rangkaian sentral yang
mengatur kinerja sistem, bagian ini dirancang
untuk mampu mengakomodasi dan menangani
setiap kejadian yang mungkin terjadi. Baik dalam
pengelolaan/
manajemen
data,
maupun
penanganan terhadap kegagalan proses.
Gambar 6. Blok Diagram Sistem Keseluruhan.
Perancangan Perangkat Keras
Perangkat keras/hardware pada sistem
penakar curah hujan otomatis ini terbagi
menjadi 3 bagian yaitu.
1) Sensor curah hujan : pada penelitian ini
menggunakan sensor curah hujan yang
digunakan adalah tipe tipping bucket atau
bejana goyang.
2) Sistem minimum AVR AT-Mega32, terdiri
atas: mikrokontroler AVR AT-Mega 32,
RTC DS1303
3) LCD M1632
Gambar 8. Board Agent Telemetry Curah Hujan
Penentuan konfigurasi pin dan port
disesuaikan dengan kebutuhan sistem. Sebagai
contoh PORT C dihubungkan dengan port
88 TRANSMISI, Jurnal Teknik Elektro, Volume 11, Nomor 2, Juni 2009, hlm 84-90
kontrol/data LCD, sedangkan sensor curah hujan
dihubungkan pada INT0.
Untuk mempermudah pemrograman, sensor
curah hujan dihubungkan dengan pin interupsi
eksternal, karena keluaran dari sensor berupa
pulsa, yang akan lebih mudah dideteksi
menggunakan interupsi.
LCD
Modul LCD dihubungkan dengan PORTC
pada mikrokontroller ATMega32. Modul LCD
ini memerlukan suatu driver yang skematiknya
dapat dilihat pada gambar berikut :
Pembacaan Sensor Curah Hujan
Sebagaimana telah disinggung pada dasar
teori, keluaran sensor curah hujan berupa pulsa,
digunakan satu buah interupsi untuk membaca
adanya pulsa. Interupsi mikrokontroler digunakan
karena kemampuannya dalam merespon pulsa
digital dengan cepat. Keluaran sensor curah hujan
inkremental dihubungkan dengan pin interupsi
sistem mikrokontroler AVR AT-Mega32.
Sistem interupsi mikrokontroler diaktifkan
pada mode falling edge/NGT (Negative Going
Transition). Artinya, interupsi akan aktif ketika
terjadi transisi dari high ke low (dari logika 1 ke
logika 0). Pulsa ini dihasilkan seiring dengan
adanya hujan yang menggoyangkan sensor,
sehingga jumlah pulsa yang dihasilkan oleh sensor
curah hujan dapat dihitung pada bagian interupsi
eksternal.
Mulai
Ya
Interupsi
Aktif
Pulsa = pulsa+1
Tidak
Gambar 9. Rangkaian Sensor Curah Hujan.
Perancangan Perangkat Lunak
Mikrokontroler tidak akan dapat bekerja
tanpa adanya software/perangkat lunak di
dalamnya. Software ini sering disebut sebagai
firmware. Yaitu suatu urutan perintah/instruksi
yang harus dikerjakan oleh CPU, baik itu
perhitungan aritmatika, manajemen memori,
maupun akses input/output.
Mikrokontroler keluarga AVR, dirancang
untuk mengakomodasi bahasa tingkat menengah
yaitu bahasa C. Sehingga, pemrogram/
programmer akan sangat dimudahkan dalam
pembuatan maupun pengembangan firmware
yang hendak ditanamkan pada sistem.
Selain hal di atas, CodeVision AVR telah
menyediakan pustaka fungsi dan prosedur siap
pakai, yang terdokumentasi dalam library yang
tersedia. Sehingga, akses terhadap suatu
periferal spesifik (contoh: LCD, RTC DS1302)
sangat mudah dilakukan. Cukup menggunakan
fungsi-fungsi yang telah tersedia.
Gambar 10. Sensor Curah Hujan.
Algoritma Keseluruhan
Mulai
Inisialisasi
Ya
Pulsa=pulsa+1
PIND.2=1
Tidak
Ya
Waktu Update
Update LCD
Tidak
Selesai
Gambar 11. Sensor Curah Hujan
Sumardi, Penakar Curah Hujan Automatis Menggunakan Mikrokontroler ATMega 32
PENGUJIAN DAN ANALISIS
Pengujian Sensor Curah Hujan
Sensor curah hujan menggunakan reed
switch dimana keluarannya berupa pulsa digital.
Untuk membaca pulsa ini digunakan satu buah
interupsi untuk membaca adanya pulsa dari
sensor reed switch. Interupsi mikrokontroler
digunakan karena kemampuannya dalam
merespon pulsa digital dengan cepat.
Pengujian ini, dilakukan dengan cara
mengisi bejana dengan air kemudian sensor
(bejana goyang) akan bergoyang yang
mengakibatkan perubahan yang akan di deteksi
oleh interupt pada mikrokontroler. Selanjutnya
hasil pembacaan ditampilkan pada LCD.
Pembacaan tersebut kemudian dibandingkan
dengan penghitungan manual.
Tabel 2. Hasil pengujian sensor curah hujan
No
1
2
3
4
5
Banyaknya Goyangan
(tick)
2
3
5
7
10
Tampilan LCD
(mm)
1
1.5
2.5
3.5
5
Pengujian LCD
Pengujian pada LCD dilakukan dengan
menuliskan listing program berikut pada fungsi
main( ). Source code ditulis dalam bahasa C
dengan menggunakan software Codevision
AVR
lcd_init(16); // inisialisasi LCD
lcd_gotoxy(0,0); // tampilkan pada baris 0 kolom 0
lcd_putsf("Coba LCD");
lcd_gotoxy(0,1); // tampilkan pada baris 1 kolom 0
lcd_putsf("Teknik Elektro");
Gambar 12. Pengujian LCD
Pengujian RTC
Pengujian RTC dilakukan untuk mengetahu
kinerja dari Real Time Clock dalam
menampilkan waktu secara real time. RTC yang
digunakan dalam system ini menggunakan RTC
DS1302. Source code untuk program RTC
sebagai berikut.
89
Inisialisasi RTC :
rtc_init(0,0,0);// DS1302 Trickle charger: Off
DisplayTime :
voidDisplayTime(){//0.5%
lcd_gotoxy(0,0);lcd_puts(SDay);lcd_putchar('/');lcd_puts(SMo
n);lcd_putchar('/');lcd_puts(SYear);
lcd_gotoxy(0,1);lcd_puts(SHour);lcd_putchar(':');lcd_puts(SMi
n);lcd_putchar(':');lcd_puts(SSec);lcd_putsf(" ");
}
Pengujian Sistem Keseluruhan
Setelah semua komponen dipastikan dalam
kondisi baik maka dilakukan pengujian dari sistem
keseluruhan. Pertama sistem akan melakukan
inisialisasi, kemudian membaca sensor curah
hujan lewat perubahan yang terjadi pada INT0.
Jika terjadi perubahan maka sistem akan
melakukan counter terhadap perubahan tersebut.
Setelah itu sistem akan membaca data dari RTC
apakah menunjukkan jam 06:00:00 atau tidak. Jika
ya maka hasil counter tadi akan dilakukan update
data yaitu dengan menampilkan hasil counter
tersebut pada LCD. Setelah itu sistem akan
memantau kembali RTC apakah menunjukkan
pukul 17:00:00 atau tidak. Jika ya akan dilakukan
update data kembali.
Membaca sensor :
void TipingEdge(){
static char stFE=0;
switch(stFE){
case 0:
if ((TIPING)==0){
stFE=1;
TickCnt=TickCnt+10;
}
break;
case 1:
if ((TIPING)==0){
stFE=1;
}
else
stFE=0;
break;
}
}
void FilterTick(){
if (TickCnt>0){
TickCnt=0;
DataCH++;
}
}
Program counter:
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
90 TRANSMISI, Jurnal Teknik Elektro, Volume 11, Nomor 2, Juni 2009, hlm 84-90
++tx_counter;
}
Dari hasil pengujian yang dilakukan sistem
dapat bekerja sesuai dengan yang di harapkan
yaitu data diakumulasikan sampai periode waktu
yang ditentukan setelah itu di-reset ke 0 lagi dan
disimpan pada memori mikrokontroler.
PENUTUP
Berdasarkan pengujian alat yang dirancang
mampu mengukur dan mengakumulasikan curah
hujan dalam dua bagian waktu yaitu dari jam
06.00 sampai jam 17.00 dan jam 17.00 sampai
jam 06.00 sedangkan sensor yang dibuat pada
tiap klik (tick) curah hujan yang dapat diukur
sebesar 0,5 mm.
Untuk mengembangkan alat ini dapat
dilakukan dengan meningkatkan fitur-fitur
antara lain data dapat ditransfer tiap waktu
tertentu ke komputer atau disimpan pada media
penyimpanan semisal MMC, serta data dapat
dikirim melalui wifi, LAN, atau GPRS.
DAFTAR PUSTAKA
Andi Nalwan, Paulus, Panduan Praktis Teknik
Antarmuka dan Pemrograman Mikrokontroler
AT89C51, PT. Elexmedia Komputindo,
Jakarta, 2003.
Mahadmadi, Fajar, Embedded C pada
Mikrokontroler AT90S8515, Skripsi S1,
Universitas Diponegoro, 2003.
Kadir, Abdul, Pemrograman C++, Andi Offset,
Yogyakarta, 2001.
Kristiyanto, Purwatmo,Sistem telemetri Tinggi
Muka Air Sungai Menggunakan Modem GSM
Berbasis Mikrokontroller AVR ATMega 32,
Skripsi S1, Universitas Diponegoro, 2008.
Rozidi, R.I.,Membuat Sendiri SMS Gateway
Berbasis Protokol SMPP, Andi, Yogyakarta,
2004.
,Liquid Crystal Display Module M1632: User
Manual Guide, Seiko Instrument Inc.,
Jepang, 1987.
....., ATMega 128, http://www.atmel.com/avr/
., Badan Meteorologi dan Geofisika,
http://www.bmkg.go.id