SINGUDA ENSIKOM
VOL. 7 NO. 1/April 2014
PERANCANGAN ALAT PEMBERI MAKAN IKAN OTOMATIS DAN PEMANTAU KEADAAN AKUARIUM BERBASIS MIKROKONTROLER ATMEGA8535 Recky Suharmon, T. Ahri Bahriun Konsentrasi Teknik Komputer, Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara (USU) Jl. Almamater, Kampus USU Medan 20155 INDONESIA e-mail:
[email protected]
Abstrak Salah satu hobi yang banyak diminati oleh masyarakat pada saat ini adalah memelihara ikan di dalam akuarium. Namun, bagi masyarakat yang memiliki tingkat kesibukan yang cukup padat, akan merasakan sedikit kesulitan ketika akan meninggalakan rumah dalam waktu yang cukup lama. Karena pemenuhan kebutuhan ikan terutama pada pemberian pakan, penjagaan regulasi air, suhu air dan catuan daya sedikit banyaknya akan terganggu. Tulisan ini membahas tentang perancangan sebuah alat yang dapat memberi makan ikan secara otomatis, mendeteksi pergantian catu daya, dan mendeteksi suhu ketika berada dalam keadaan tidak normal. Pengendali utama pada alat ini menggunakan mikrokontroler ATMega8535. Aktivitas-aktivitas yang telah dilakukan akan diinformasikan melalui SMS menggunakan modem GSM ke satu nomor telepon tertentu. Hasil dari proses perancangan adalah sebuah alat yang dapat memberi makan ikan secara otomatis, mendeteksi pergantian catu daya, dan mendeteksi suhu ketika berada dalam keadaan tidak normal yang diikuti dengan pengiriman SMS pemberitahuan oleh modem GSM.
Kata Kunci: Mikrokontroler ATMega8535, autofeeder ikan, modem GSM
1.
Pendahuluan
2.
Salah satu hobi yang banyak diminati oleh masyarakat pada saat ini adalah memelihara ikan di dalam akuarium. Namun, bagi masyarakat yang memiliki tingkat kesibukan yang cukup padat, akan merasakan sedikit kesulitan ketika akan meninggalakan rumah dalam waktu yang cukup lama. Karena pemenuhan kebutuhan ikan terutama pada pemberian pakan, regulasi air, penjagaan suhu air dan catuan daya sedikit banyaknya akan terganggu. Solusi yang biasanya diambil adalah meminta bantuan kepada tetangga atau pembantu. Oleh karena itu dirancanglah sebuah alat yang dapat diaplikasikan dalam proses perawatan ikan dalam akuarium. Dengan alat ini maka diharapkan dapat menjadi alternatif solusi bagi masyarakat yang hobi memelihara ikan tanpa merasa khawatir ketika meninggalkan rumah dalam waktu yang cukup lama.
Perancangan Perangkat Keras
Sistem dikendalikan oleh sebuah mikrokontroler. Mikrokontroler merupakan sebuah sistem komputer lengkap di dalam satu serpih (chip). Mikrokontroler bahkan lebih dari sekadar sebuah mikroprosesor karena telah terdiri dari ROM (Read-Only Memory), RAM (Read-Write Memory), beberapa bandar (port) masukan maupun keluaran. Dalam tulisan ini mikrokontroler yang digunakan adalah jenis AVR ATMega8535. Pemilihan ini didasari oleh cara pemakaian yang cukup mudah, baik itu dari segi perangkat keras maupun perangkat lunak. Di samping itu, faktor teknis lain yang mendasari pemilihan mikrokontroler ini adalah ketersediaan fitur dan fasilitas yang cukup lengkap untuk memenuhi kebutuhan perancangan seperti interupsi, Timer/Counter, PWM, USART, TWI, Analog Comparator, EEPROM internal, dan ADC internal.
copyright DTE FT USU 2014
49
SINGUDA ENSIKOM
VOL. 7 NO. 1/April 2014
Perangkat-perangkat peripheral yang dikomunikasikan dengan serpih (chip) mikrokontroler ATMega8535 diantaranya adalah sensor DI-WLM35TS untuk mengukur suhu air dalam akuarium, RTC (Real Time Clock) yang berfungsi sebagai referensi waktu real bagi mikrokontroler, relay untuk input interupsi eksternal, motor servo sebagai penggerak wadah pakan, LCD (Liquid Crystal Display) untuk menampilkan hasil pemrosesan data, 4 buah push button untuk mengkonfigurasi waktu dan jadwal, beberapa LED indikator sebagai simulasi dari respon sistem, rangkaian serial RS 232 serta modem GSM yang digunakan untuk mengirimkan SMS pemberitahuan terhadap aktivitas yang telah dilakukan oleh sistem. Secara umum, diagram blok keseluruhan sistem dapat dilihat pada Gambar 1.
Rangkaian sistem minimum mikrokontoler ATMega8535 terdiri dari rangkaian sistem minimum dan rangkaian I/O. Rangkaian minimum mikrokontroler terdiri dari rangkaian clock dan rangkaian reset. 2.2 Rangkaian Regulator Tegangan Regulator tegangan berfungsi untuk menstabilkan tegangan agar tetap konstan. Komponen yang harus dicatu yaitu mikrokontroler ATMega8535, MAX232, DIWLM35TS, RTC DS1307, LED, motor servo, dan LCD. Gambar 3. menunjukkan rangkaian power supply tegangan. TRAFO STEP DOWN 12 V
D2
V1
D1
AC
1N4007 1N4007
BAT2 12V
VCC DIODA BRIDGE LM7805 3
CONN-SIL2
VI
R1 270
C3
1
C2
100nF
C1
2
2 1
VO GND
PS
0.1uF/25V
3300uF/25V
LED1
Gambar 3. Rangkaian Regulator Tegangan 5V Gambar 1. Diagram Blok Sistem Keseluruhan
2.3 Rangkaian RTC (Real Time Clock)
2.1 Rangkaian Mikrokontroler ATMega8535 Gambar 2 menunjukkan mikrokontroler ATMega8535.
rangkaian
Rangkaian RTC dengan tipe DS1307 berhubungan dengan mikrokontroler ATMega8535 menggunakan komunikasi I2C (Inter-Integrated Circuit) seperti yang ditunjukkan pada Gambar 4. VCC
SCK MISO MOSI
VCC
U1 1 2 3 4 5 6 7 8
LCD RS RW E D4 D5 D6 D7
R9 220
R10 220
R11 220
C4
SERVO
20pF
C5 20pF
14 15 16 17 18 19 20 21
RX TX INT0 INT1
CRYSTAL 8MHz
VCC
13 12 9
PUSH_RST
PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2
PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PC0/SCL PC1/SDA PC2 PC3 PC4 PC5 PC6/TOSC1 PC7/TOSC2
40 39 38 37 36 35 34 33 22 23 24 25 26 27 28 29
TEMP
R2
AREF AVCC
R8
10k
10k
U3 SCL SDA IND PLN
6 5
SCL SDA
LED2 INDIKATOR
7
MENU UP DOWN SUHU
3
C6 100nF
XTAL1 XTAL2 RESET
R7
470
BAT1
32 30
SCL SDA
X1
1
CRYSTAL 32.768KHz
SOUT VBAT
X2
2
DS1307
3V
ATMEGA8535 VCC
J5
R3 D3 RESET
MOSI
1k PUSH_RST
1N4148
PB1
RESET SCK MISO
1 2 3 4 5
10 9 8 7 6
RX TX
CONN-DIL10
Gambar 4. Rangkaian RTC (Real Time Clock) 2.4 Rangkaian Modul LCD
C7 100nF
Gambar 2. Rangkaian Mikrokontroler AVR ATMega8535 dan Hubungan I/O PORT
LCD digunakan untuk menampilkan pengaturan jadwal pemberian pakan dan waktu real. LCD yang digunakan adalah LCD 2x16 dengan lebar display 2 baris dan 16 kolom.
copyright DTE FT USU 2014
50
SINGUDA ENSIKOM
VOL. 7 NO. 1/April 2014
RS
D6
RW
D5
E
D4
Gambar 5. Rangkaian Modul LCD 2.5 Rangkaian Pendeteksi Pergantian Catu Daya Rangkaian pendeteksi pergantian catu daya dirancang untuk mengetahui catu daya mana yang sedang digunakan oleh sistem. Rangkaian ini dirancang dengan sebuah relay 12V DC dan sebuah resistor pull down sebesar 1 KΩ (R5). Resistor pull down dipasang agar logika default yang diterima oleh mikrokontroler adalah 0 (low). Rangkaian pendeteksi pergantian catu daya dapat dilihat pada Gambar 6. 12 V
2.7 Rangkaian Sensor Suhu Gambar 8 menunjukkan rangkaian sensor suhu DI-WLM35TS. Rangkaian sensor suhu terdiri dari sensor suhu DI-WLM35TS dan 2 buah kapasitor 100 nF (C12 dan C13). VCC
LM35 1
D7
1K
+Vs
RV1
C12
Vout
100nF
2
TEMP
GND
D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14
RS RW E 4 5 6
1 2 3
VSS VDD VEE
VCC
Rangkaian push button digunakan untuk mengatur jadwal pemberian pakan (feeding) dan mengatur waktu (jam dan menit). Push button yang digunakan sebanyak 4 buah. Tiga buah push button pertama digunakan untuk mengatur jadwal pemberian pakan dan waktu real. Sedangkan push button keempat sebagai tambahan yang digunakan untuk mengetahui besar suhu air dalam akuarium yang kemudian akan ditampilkan pada LCD.
C13 100nF
3
Hubungan antara mikrokontroler dan LCD diperlihatkan pada Gambar 5.
VCC
Gambar 8. Rangkaian Sensor Suhu RELAY DC12V
2.8 Rangkaian Motor Servo INT0
R5 1k
Gambar 6. Rangkaian Pendeteksi Pergantian Catu Daya
Rangkaian motor servo hanya terdiri dari motor servo seperti yang terlihat pada Gambar 9. Hal ini disebabkan karena dalam penggunaannya motor servo dikendalikan dengan metode PWM (Pulse Width Modulation). Sehingga untuk mengaktifkannya tidak diperlukan komponen atau rangkaian tambahan.
2.6 Rangkaian Push Button
VCC Motor Servo
Hubungan push button dengan mikrokontroler secara berurutan dihubungkan ke pena PORTC.4-7 tampak pada Gambar 7.
SERVO +88.8
U6 1 2 3 4 5 6 7 8 14 15 16 17 18 19 20 21 13 12 9
PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2 XTAL1 XTAL2 RESET
PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PC0/SCL PC1/SDA PC2 PC3 PC4 PC5 PC6/TOSC1 PC7/TOSC2
AREF AVCC
Gambar 9. Rangkaian Motor Servo
40 39 38 37 36 35 34 33 22 23 24 25 26 27 28 29
2.9 Rangkaian Serial USART
MENU UP DOWN
32 30
SUHU
ATMEGA8535
Komunikasi serial digunakan agar sistem minimum mikrokontroler dapat berkomunikasi dengan modem GSM untuk mengirim SMS. Rangkaian ini terdiri dari IC MAX232 sebagai pengubah level tegangan dan 4 buah kapasitor dengan besar 1uF/16 V seperti yang terlihat pada Gambar 10.
Gambar 7. Rangkaian Push Button
copyright DTE FT USU 2014
51
SINGUDA ENSIKOM
VOL. 7 NO. 1/April 2014 Y2 CONN-D9M
1 6 2 7 3 8 4 9 5
C8 1uF/16V
TX RX
11 12 10 9
1
3
C1+
C1-
T1IN R1OUT T2IN R2OUT
T1OUT R1IN T2OUT R2IN
U4
VS+ VSC2+
VCC 14 13 7 8 2 6
C2-
C10 1uF/16V
C11 1uF/16V
4
C9
5 MAX232
1uF/16V
Gambar 10. Rangkaian Serial USART 3.
Perancangan Perangkat Lunak
Diagram alir program utama dapat dilihat pada Gambar 11.
dilanjutkan dengan mengirimkan SMS ke nomor pemilik akuarium bahwa pemberian pakan telah dilakukan. Kemudian program akan melakukan pembacaan push button sebagai pengaturan menu. Pengaturan menu terdiri dari pengaturan waktu real dan jadwal pemberian pakan. Jika pengaturan menu tidak dilakukan, sistem akan masuk pada pembacaan suhu. Ketika suhu lebih besar dari batas yang telah ditentukan, maka sistem akan menghidupkan LED indikator pendingin air yang dilanjutkan dengan mengirimkan SMS pemberitahuan. Ketika suhu berada di antara batas atas dan bawah, maka sistem akan mematikan semua LED indikator perubahan suhu. Ketika suhu lebih kecil dari batas yang telah ditentukan, maka sistem akan menghidupkan LED indikator pemanas air serta mengirimkan SMS pemberitahuan. 3.1 Proses Pengaturan Waktu dan Jadwal Pakan (Menu) Push button pertama dirancang untuk masuk ke dalam mode menu. Dalam mode menu, terdapat dua pilihan yaitu pengaturan waktu dan jadwal. Pengaturan waktu dilakukan dengan menekan push button kedua. Sedangkan untuk pengaturan jadwal dilakukan dengan menekan push button ketiga. Di dalam pilihan pengaturan jadwal, terdapat 3 pilihan jadwal pemberian pakan yaitu 1 kali, 2 kali, dan 3 kali dengan waktu yang telah diatur dalam pemrograman. Variabel data jadwal kemudian disimpan dalam EEPROM internal. 3.2 Proses Pemberian Pakan
Gambar 11. Diagram Alir Program Utama Program diawali dengan menampilkan tanggal dan waktu pada LCD. Lalu program akan melakukan penyamaan data jadwal pemberian pakan dengan waktu sebenarnya (real time). Jika waktu real yang ditampilkan pada LCD sama dengan jadwal pemberian pakan yang telah diatur sebelumnya, maka sistem akan mengaktifkan motor servo sebagai penggerak wadah pakan selama beberapa saat. Kemudian
Proses pemberian pakan dilakukan dengan membaca nilai variabel data jadwal pada EEPROM. Jika waktu real dari RTC yang ditampilkan pada LCD sama dengan variabel data jadwal di EEPROM, maka sistem akan mengaktifkan motor servo untuk memutar wadah pakan. 3.3 Proses Deteksi Suhu Air Pengukuran nilai suhu dilakukan oleh sensor DI-WLM35TS. Sensor ini akan menghasilkan data berupa tegangan input analog. Data analog ini akan diproses oleh mikrokontroler dengan fasilitas ADC (Analogto-Digital Converter) menjadi data digital.
copyright DTE FT USU 2014
52
SINGUDA ENSIKOM
VOL. 7 NO. 1/April 2014
Setelah proses koversi nilai tegangan input analog menjadi nilai digital dilakukan, maka langkah selanjutnya adalah memasukkan nilai digital tersebut ke dalam rumus perhitungan suhu. Jika suhu sebenarnya di atas atau di bawah nilai threshold, maka indikator LED akan hidup diikuti dengan pengiriman SMS pemberitahuan. 3.4 Proses Deteksi Pergantian Catuan Daya Diagram alir pendeteksian pergantian catu daya dapat dilihat pada Gambar 12.
dilakukan dengan mengkonfigurasi PORTC.2 sebagai keluaran untuk mengaktifkan sebuah LED dan PORTA.0 sebagai masukan analog dari Vout sensor suhu. Untuk pengujian rangkaian reset dilakukan dengan cara menanamkan program yang dapat menghidupkan 4 buah LED secara bergantian masing-masing 1 detik. Lalu tombol reset ditekan saat program sedang dijalankan. 4.2 Pengujian Komunikasi Serial RS232 Pengujian dilakukan dengan 2 cara yakni pengujian pengiriman data dari sistem dengan PC dan pengujian pengiriman SMS dari software Teraterm pada PC yang dihubungkan dengan modem GSM Wavecom M1306B Q2406B. 4.3 Pengujian Rangkaian Sensor Suhu Pengujian rangkaian sensor suhu bertujuan untuk melihat perubahan nilai tegangan Vout terhadap kenaikan dan penurunan suhu. Keluaran (Vout) sensor suhu dihubungkan dengan voltmeter digital dan menghitung nilai tegangan awal sensor suhu. Lalu sensor suhu didekatkan dengan solder yang diikuti dengan pengamatan hasil perubahan suhu pada LCD. 4.4 Pengujian Rangkaian RTC
Gambar 12. Diagram Alir Pendeteksi Pergantian Catu Daya Ketika terjadi pergantian catu daya dari catu daya utama ke baterai, maka logika yang diterima oleh PIND.2 berubah menjadi 1 (high). Lalu sistem akan menjalankan rutin menghidupkan LED sebagai indikator aerator cadangan telah aktif. Begitu juga ketika terjadi perubahan dari baterai ke catu daya utama, maka logika PIND.2 kembali berubah menjadi 0 (low). Lalu sistem akan menjalankan rutin mematikan LED sebagai indikator aerator cadangan telah dimatikan. 4. Pengujian 4.1 Pengujian Rangkaian Mikrokontroler AVR ATMega8535 Pengujian meliputi pengujian PORT dan pengujian rangkaian reset. Pengujian port
Pengujian rangkaian RTC dilakukan dengan menghubungkan pena SCL dan SDA pada RTC masing-masing ke PORTC pena 0 dan 1. Untuk menampilkan data yang diterima dari RTC, maka LCD dihubungkan ke bandar B. Data RTC akan tampil pada LCD berupa tanggal dan jam. 4.5 Pengujian Rangkaian Pergantian Catu Daya
Pendeteksi
Pengujian diimplementasikan dengan memasang sebuah saklar ON/OFF pada catu daya utama. Ketika saklar berpindah dari ON ke OFF atau sebaliknya, maka sumber catu daya berganti. Indikatornya ditandai dengan sebuah LED yang hidup ketika catu daya berpindah ke baterai dan LED akan mati ketika catu daya utama kembali ON. 4.6 Pengujian Rangkaian Push Button Pengujian rangkaian push button bertujuan untuk melihat kemampuan rangkaian sebagai
copyright DTE FT USU 2014
53
SINGUDA ENSIKOM
VOL. 7 NO. 1/April 2014
sinyal input. Pengujian diimplementasikan dengan menanamkan 4 buah program yang berbeda. Setiap push button akan mengaktifkan 1 program yang berbeda dari yang lain. 4.7 Pengujian Rangkaian Motor Servo Pengujian rangkaian motor servo bertujuan untuk melihat kemampuan motor servo untuk menggerakkan wadah pakan. Program yang ditanamkan ke dalam mikrokontroler yakni menggerakkan motor servo dari 90o ke 180o sebanyak 5 kali. 4.8 Pengujian Secara Keseluruhan Pengujian keseluruhan sistem dilakukan setelah semua rangkaian dan perangkat lunak diintegrasikan menjadi satu sistem. Pengujian ini bertujuan untuk menunjukkan bahwa perancangan sesuai dengan target awal pembuatannya. 4.9 Hasil Pengujian
Daftar Pustaka 1.
2.
Hasil pengujian menunjukkan bahwa sistem dapat memberi pakan ikan sesuai dengan jadwal yang telah dilakukan pada semua pilihan jadwal serta berhasil mengirimkan SMS pemberitahuan. Untuk pendeteksian suhu juga berhasil dilakukan oleh sistem baik saat kenaikan ataupun penurunan suhu. Ketika suhu di atas batas normal, sistem akan menjalankan subrutin menghidupkan LED di PORTD.7. Begitu juga ketika suhu di bawah batas normal, sistem akan menjalankan subrutin menghidupkan LED di PORTC.3. Pada pendeteksian pergantian catu daya dari catu daya utama ke baterai dan sebaliknya juga berhasil dilakukan. Ketika catu daya berpindah ke baterai, maka LED indikator di PORTC.2 hidup dan sebaliknya ketika catu daya berpindah ke catu daya utama, maka LED indikator di PORTC.2 mati. 5.
3. Pendeteksian suhu air dapat dilakukan dengan baik ketika mengalami kenaikan maupun penurunan suhu. 4. Pendeteksian pergantian catu daya dari catu daya utama ke baterai dan sebaliknya dapat dilakukan dengan baik. 5. Karena data jadwal pemberian pakan disimpan pada EEPROM internal, maka data tersebut tidak akan terhapus walaupun sistem di-reset. 6. Sistem dapat mengirimkan SMS dengan baik tanpa ada kesalahan isi SMS. 7. Modem GSM Wavecom M1306B Q2406B dapat menjadi salah satu alternatif pilihan bagi sistem yang dirancang dengan fasilitas SMS.
3.
4.
5.
6.
7. 8.
Kesimpulan
Setelah melakukan perancangan dan pengujian sistem, dapat disimpulkan beberapa hal, antara lain: 1. Perangkat dapat memberi pakan ikan secara otomatis dan memantau keadaan akuarium sesuai dengan hasil yang diinginkan. 2. Perangkat dapat memberi pakan ikan sesuai dengan pilihan jadwal yang telah diatur sebelumnya.
9.
Andrianto, Heri. 2008. Pemrograman Mikrokontroler AVR ATMega16 Menggunakan Bahasa C (CodeVisionAVR). Bandung: Informatika. Bejo, Agus. 2008. C & AVR, Rahasia Kemudahan Bahasa C Dalam Mikrokontroler ATMega8535. Yogyakarta: Graha Ilmu. Budiharto, Widodo. 2008. 10 Proyek Robot Spektakuler. Jakarta: Elex Media Komputindo. Floyd, Thomas L. 2002. Electronic Devices. New Jersey: Pearseon Education, Inc. Gunawan, Ferry, 2003. Membuat Aplikasi SMS Gateway Server dan Client dengan Java dan PHP. Jakarta: Elex Media Komputindo. Suyadhi, Taufiq D. 2008. Build Your Own Line Follower Robot. Yogyakarta: Andi Offset. Tarigan, Pernantin. 2011. Sistem Tertanam. Yogyakarta: Graha Ilmu. Wardhana, Lingga. 2006. Belajar Sendiri Mikrokontroler AVR Seri ATMega8535, Simulasi, Hardware, dan Aplikasi. Yogyakarta: Andi Offset. Widodo, Romy B. 2009. Embedded System Menggunakan Mikrokontroler dan Pemrograman C. Yogyakarta: Andi Offset.
copyright DTE FT USU 2014
54