• Tidak ada hasil yang ditemukan

Sistem Akuisisi Data Berbasis Mikrokontroler ATMega128 untuk Stasiun Cuaca

Oka Mahendra

Pusat Penelitian Informatika LIPI Jln. Cisitu No.21/154 D Bandung

[email protected]

Bambang Sugiarto

Pusat Penelitian Informatika LIPI Jln. Cisitu No.21/154 D Bandung [email protected]

Abstract

In this research, we designed and implemented a data acquisition system based on microcontroller ATMega128. The data acquisition system was used to build wireless weather station that is being developed by the Research Center of Informatics, Indonesian Institute of Sciences. The data acquisition system has universal input, so it can deal with any type of sensor that is linear with output 4-20mA or 0-5V. The system is able to read and process maximum eight analog, digital, and counter sensors, or a combination of three types of sensors. The system uses RTC DS1307 as a timer and RS-232 interface for data communications. Data from the sensors is processed by the microcontroller by averaging, multiplying the gradient (slope), and adding the constants in accordance with the value of the sensor. The data is transmitted along with times from RTC after the microcontroller receives a data request command. Other commands were built in the data acquisition system are setting time, channel type, calibration, and interval.

Keywords: data acquisition, microcontroller, sensor, data communication, calibration

Abstrak

Pada penelitian ini telah dirancang dan diimplementasikan sistem akuisisi data berbasis mikrokontroler ATMega128. Sistem akuisisi data ini digunakan untuk membangun stasiun cuaca tanpa kabel yang sedang dikembangkan oleh Pusat Penelitian Informatika LIPI. Sistem akuisisi data ini dibuat universal, sehingga mampu menangani sensor dengan jenis apapun yang bersifat linear dengan output 4-20 mA atau 0-5 V. Sistem mampu membaca dan memproses data maksimal delapan buah sensor analog, digital, dan counter, atau kombinasi ketiga jenis sensor tersebut. Sistem menggunakan RTC DS1307 sebagai pewaktu dan interface RS-232 sebagai jalur komunikasi data. Data dari sensor diolah oleh mikrokontroler dengan cara merata-ratakan, mengalikan dengan gradien (slope), dan menambahkan dengan konstanta sesuai dengan nilai besaran sensor. Data yang sudah diolah dikirimkan bersamaan dengan data waktu dari RTC setelah mikrokontroler menerima perintah permintaan data. Perintah lain yang dibuat dalam sistem akuisisi data ini adalah perintah setting waktu, tipe kanal, kalibrasi, dan interval.

Kata kunci: akuisisi data, mikrokontroler, sensor, komunikasi data, kalibrasi

1. Pendahuluan

Pusat Penelitian Informatika LIPI mengembangkan stasiun cuaca tanpa kabel (wireless weather station) untuk mencatat dan menampilkan data cuaca dari tempat-tempat tertentu di wilayah Indonesia. Salah satu stasiun cuaca yang sedang diujicoba ditempatkan di Lembang. Stasiun cuaca ini mencatat data suhu udara, kelembaban, radiasi matahari, arah angin, kecepatan angin, dan curah hujan. Stasiun cuaca ini menggunakan saluran komunikasi radio untuk mentransmisikan dan menerima data dari stasiun di Lembang dan server yang terletak di kompleks LIPI Bandung. Transmisi data dilakukan oleh single board computer (SBC) dan sistem transmitter. Sebagai antar muka SBC dengan sensor, diperlukan sistem akuisisi data yang mampu membaca data dari sensor-sensor secara akurat dan real time. Untuk memenuhi fungsi ini, penelitian ini bertujuan untuk membuat sistem yang mampu menjalankan fungsi akuisisi data dan berkomunikasi dengan SBC dengan akurat dan real time, serta biaya pembuatan sistem yang rendah dan berdaya rendah. Makalah ini membahas desain, implementasi, dan ujicoba sistem akuisisi data tersebut.

Sistem akuisisi data yang dibuat dalam penelitian ini merupakan pengembangan dan modifikasi dari sistem akuisisi data P2I LIPI sebelumnya, seperti yang dibuat oleh Oka Mahendra dan Djohar Syamsi (P2I LIPI) [1], yang bentuk fisiknya terlihat pada Gambar 1.

Modifikasi dari sistem sebelumnya berupa

penghilangan modul GSM dan GPRS karena tidak diperlukan dalam sistem staisun cuaca P2I. Stasiun cuaca P2I ini menggunakan komunikasi radio yang dibuat sendiri dengan frekuensi 2,4 Ghz sehingga modul GSM dan GPRS dalam mikrokontroler bisa ditiadakan. Peniadaan modul GSM dan GPRS menghasilkan sistem yang lebih stabil dan akurat dalam mengolah data dan mengurangi kemungkinan sistem akan hang. Modul yang dipertahankan dalam sistem ini adalah modul kalibrasi, sehingga sistem data akuisisi bersifat universal, dapat digunakan untuk sensor dengan jenis apapun dengan memasukkan nilai gradien (slope) dan konstanta yang sesuai dengan spesifikasi sensor.

| Seminar Nasional Embedded Systems, Bandung 20 September 2012

76

Gambar 1. Salah satu stasiun cuaca P2I LIPI

Sistem ini juga merupakan pengembangan dari

datalogger cerdas yang sudah dikembangkan

sebelumnya oleh Oka Mahendra (P2I LIPI) [2]. Pengembangan yang dilakukan dari sistem terdahulu adalah penambahan modul perintah melalui komunikasi serial, sehingga semua menu dan fungsi dapat diakses langsung dari port serial. Port serial ini dapat diakses dengan menggunakan program Hyperterminal di Windows atau Minicom di Linux. Dengan modul perintah melalui komunikasi serial, sistem data akuisisi ini tidak membutuhkan program aplikasi yang berbasis Windows, yang pada sistem sebelumnya dibuat dengan Visual Basic. Penggunaan modul perintah melalui komunikasi serial ini juga memungkinkan dibuat aplikasi lain untuk berkomunikasi dengan sistem data akuisisi ini dengan lebih fleksibel.

Penelitian ini menggunakan mikrokontroler

ATMega128 untuk memudahkan pengembangan sistem lebih lanjut dengan kapasitas memori yang memadai. Penggunaan mikrokontroler jenis lain, yaitu ATMega16, dilakukan oleh Rosiek[3], yang juga difungsikan untuk

membaca data delapan sensor meteorologi.

Mikrokontroler PIC18F88 digunakan oleh Fisher[4] untuk membuat sistem akuisisi data suhu dan kelembaban pada lahan pertanian.

Sistem yang bersifat modular dikembangkan oleh Katrancioglu [5]. Dalam sistem yang dibahas dalam

makalah ini, selain bersifat modular (dapat

dikombinasikan dengan piranti lain), juga bersifat universal, yaitu mampu menangani sensor dengan tipe apapun yang bersifat linear.

2. Mikrokontroler ATMega128

Mikrokontroler adalah sebuah sistem microprosesor dimana di dalamnya sudah terdapat CPU, ROM, RAM, I/O, Clock dan Peralatan Internal lainnya yang sudah saling terhubung dan terorganisasi (teralamati) dengan baik oleh pihak pabrik pembuatnya dan dikemas dalam satu chip yang siap pakai. Sehingga kita tinggal memprogram isi ROM sesuai aturan penggunaan oleh pabrik yang membuatnya [6].

Mikrokontroler ATMega128 termasuk keluarga Alf

and Vegard’s Risc Processor (AVR) yang mempunyai

kapasitas flas memori sebesar 128 KB dan berbasis arsitektur Reduced Instruction Set Computer (RISC) [7]. Sedangkan fitur dari mikrokontroler ATMega128 adalah sebagai berikut:

 Mempunyai saluran I/O sebanyak 56 buah, yaitu Port

A, Port B, Port C, Port D, Port E, Port F dan Port G.

 Mempunyai 8 saluran ADC 10 bit.

Mempunyai 2 buah Timer/Counter 8 bit dan 2 buah

Timer/Counter 16 bit.

 Mempunyai 2 buah PWM 8 bit.

Adanya Watchdog Timer dengan osilator internal.

 Internal SRAM sebesar 4 kbyte.

Memori flash sebesar 128 kBytes.

 Interupsi Eksternal.

 Port antarmuka SPI.

 EEPROM sebesar 4 kbyte.

 Real time counter.

 Mempunyai 2 buah Port USART untuk komunikasi

serial.

Adapun konfigurasi pin dari Mikrokontroler

ATMega128 dapat dilihat pada Gambar 2.

Gambar 2. Konfigurasi Pin Mikrokontroler ATMega128 [7]

3. Desain Sistem Data Akuisisi Berbasis Mikrokontroler ATMega128

Pembuatan sistem akusisi data ini dapat dibagi menjadi beberapa tahapan, yaitu desain hardware dan software, serta implementasi sistem data akuisisi. Pada bagian desain ini dibahas mengenai spesifikasi hardware yang dibuat, dan algoritma software yang ditanamkan pada mikrokontroler.

3.1 Desain Hardware

Sistem akuisisi data ini menggunakan mikrokontroler

ATMEGA128 sebagai pengendali utama.

Mikrokontroler ini memiliki ADC internal 10 bit, sejumlah 8 kanal, dan dapat membaca tegangan listrik 0-5V. Mikrokontroler membaca data dari rangkaian

| Seminar Nasional Embedded Systems, Bandung 20 September 2012 77

pengkondisi sinyal dan berkomunikasi dengan piranti lain melalui port serial RS 232. Diagram blok sistem dapat dilihat pada Gambar 3.

Mikrokontroler ATMega128

Pengkondisi Sinyal

Sensor 1 Sensor 2 Sensor 8 MAX 232 LCD karakter 20x4 baris SBC/PC/ Laptop/ Piranti lain

Gambar 3. Diagram blok sistem

Sistem power supply dibuat dengan LM350 untuk

men-supply mikrokontroler dan LM317 untuk

mensupply rangkaian pengkondisi sinyal. Input tegangan yang diberikan kepada LM350 dan LM317 adalah 9-24 volt, tetapi sebaiknya diberikan input tegangan serendah mungkin (9V) untuk menghindari daya yang terbuang, karena regulator ini bersifat linear dan membuang daya menjadi panas.

Sistem minimum mikrokontroler ATMega128

dibangun dengan tambahan max232 dan RTC DS1307. Max232 berfungsi untuk mengkonversi tegangan TTL menjadi RS-232 dan sebaliknya. RTC DS1307 menggunakan antar muka I2C (Philips) untuk membaca data waktu yang berupa: jam, menit, detik, tanggal, bulan, dan tahun. IC RTC ini mendukung data hari, tetapi data ini tidak dipakai dalam sistem akuisisi data ini.

Rangkaian pengkondisi sinyal dibuat sesederhana mungkin untuk menghemat biaya dengan syarat akurasi kurang dari 1%. Untuk memenuhi syarat ini dipilih op-amp CA3140 sebagai pengali tegangan. Sensor 4-20mA dihubungkan langsung dengan resistor 120 Ohm, sehingga menghasilkan tegangan 0,48 – 2.4 Volt. Kemudian tegangan yang terdapat dalam resistor ini dikalikan dua menjadi 0,96 – 4,8 Volt untuk memperbesar resolusi ADC. Rangkaian pengkondisi sinyal dapat dilihat pada Gambar 4.

Gambar 4. Rangkaian Pengkondisi Sinyal

3.2. Desain software

Fungsi utama dari sistem data akuisisi ini adalah membaca data dari sensor yang sinyalnya sudah diolah oleh rangkaian pengkondisi sinyal. Mikrokontroler menggunakan ADC internal untuk membaca data dari rangkaian pengkondisi sinyal. Data ini dirata-ratakan, dikalikan dengan gradien, dan ditambah dengan konstanta untuk menghasilkan data yang diinginkan. Proses rata-rata data digunakan untuk memperkecil error. Selain membaca data, mikrokontroler juga harus siap menerima interupsi dari port serial. Interupsi ini berupa perintah untuk mengambil data, setting waktu, setting gradien dan konstanta, serta setting interval. Interval digunakan untuk data counter, yaitu menentukan waktu dimana counter akan mereset nilai akumulasi yang telah dihitung menjadi nol kembali. Algoritma software dapat dilihat pada Gambar 5.

start

Baca RTC Baca ADC

Proses data ADC: - rata-rata - perkalian gradien - penambahan konstanta - counter Tampilkan data sensor + RTC di LCD Ada perintah port serial? Proses Perintah Perintah Permintaan Data / Setting Kirim data di Port Serial Simpan setting di EEPROM Perintah Setting gradien, konstanta, dsb Dimatikan? stop

Gambar 5. Algoritma software pada mikrokontroler ATMega128

4. Implementasi Sistem Akuisisi Data

Implementasi sistem akuisisi data meliputi perakitan komponen dan uji coba sistem. Perakitan komponen dilakukan pada PCB. Kompilasi dan download program ke mikrokontroler dilakukan dengan menggunakan

CodeVisionAVR. Ujicoba sistem dilakukan di

laboratorium Pusat Penelitian Informatika LIPI dengan merangkai masing-masing bagian sistem seperti terlihat pada Gambar 6.

| Seminar Nasional Embedded Systems, Bandung 20 September 2012

78

Uji coba dilakukan dengan memasang sensor suhu buatan Global Water yang menghasilkan output 4 s.d. 20mA untuk suhu -50 s.d. 50 derajat Celcius. Pada saat ujicoba, dilakukan penentuan gradien (slope) dan konstanta agar data sesuai dengan spesifikasi sensor. Selanjutnya sistem data akuisisi dicoba dengan menggunakan hyperterminal pada komputer berbasis Windows XP. Pada saat makalah ini ditulis, sistem masih diujicobakan di Lembang Bandung dengan dipasang tujuh buah sensor, yaitu sensor suhu udara, kecepatan angin, arah angin, kelembapan udara, tekanan udara, radiasi matahari, dan curah hujan.

Gambar 6. Uji coba sistem di laboratorium 4.1. Penentuan gradien (slope) dan konstanta

Perkalian dengan gradien dan penambahan dengan konstanta diperlukan untuk menghasilkan nilai yang sesuai dengan spesifikasi sensor. Misalnya untuk sensor suhu udara, sensor ini menghasilkan arus 4-20mA untuk merepresentasikan data -50 s.d 50 derajat Celcius.

Nilai 4-20mA ini dibaca dalam tegangan 0,48 – 2.4 Volt pada resistor 120 Ohm. Setelah dikalikan dua oleh op-amp, nilai yang dibaca oleh mikrokontroler adalah sebesar 0,96 – 4,8 Volt. Nilai ini dibaca oleh ADC internal sebesar 10 bit, sehingga nilai dari register ADC dalam mikrokontroler adalah sebesar 196 s.d. 983 yang dihitung dari:

Batas bawah = 0,96/5V * 1024 = 196

Batas atas = 4,8/5V * 1024 = 983

Nilai register ADC ini diolah sedemikian rupa dengan persamaan garis lurus, sehingga menghasilkan nilai -50 s.d. 50 derajat Celcius. Karena nilai ADC ini berasal dari sensor 4-20mA, maka persamaan garis lurus pun dapat dibuat dengan mencari hubungan antara nilai sebenarnya (data sensor yang tertampil) terhadap nilai 4-20mA, bukan lagi terhadap data ADC internal. Persamaan garis lurus ini dapat dinyatakan dengan: Y = mX + c

Dengan Y adalah data sensor yang tertampil (misalnya -50 s.d. -50 derajat Celcius), X adalah nilai output sensor (misalnya 4-20mA), m adalah gradien, dan c adalah konstanta.

Dengan menggunakan data dua titik referensi, yaitu batas bawah (x1, y1) dan batas atas (x2, y2) sensor, gradien (m) dapat diperoleh dengan persamaan:

m = ( y2 – y1 ) / (x2 – x1)

Konstanta(c) dapat diperoleh dengan persamaan: c = y1 – m . x1

Untuk contoh sensor suhu tersebut di atas (suhu -50-50 derajat Celcius direpresentasikan dengan arus 4-20mA). Dua buah titik digunakan untuk menentukan nilai gradien dan konstanta. Dua buah titik ini adalah (4,-50), dan (20,50). Dengan memasukkan ke persamaan di atas, diperoleh nilai gradien (m) sebesar 6,25 dan konstanta (c) sebesar -75.

Nilai gradien dan konstanta ini dimasukkan oleh pengguna melalui port serial, dan dapat dimodifikasi sesuai dengan sensor yang digunakan. Dengan demikian sistem akuisisi data ini dapat menangani sensor apa saja yang bersifat linear.

4.2 Perintah melalui komunikasi serial

Fungsi utama komunikasi serial digunakan untuk memperoleh data, selain itu fungsi penting yang lain adalah memasukkan nilai gradien dan konstanta untuk menyesuaikan jenis sensor dan kalibrasi. Fungsi tambahan lain adalah setting waktu, satuan, dan interval. Contoh respon setelah sistem diberikan perintah HELP melalui aplikasi Hyperterminal dapat dilihat pada Gambar 7.

Gambar 7. Pemberian perintah melalui hyperterminal

Perintah yang dibuat dalam sistem ini antara lain adalah permintaan data, setting waktu, setting kanal, setting kalibrasi, setting interval, dan informasi konfigurasi. Perintah-perintah ini terlihat ketika user mengirimkan karakter HELP+CRLF pada port serial.

Pada penelitian ini, perintah permintaan data dilakukan oleh SBC secara otomatis dengan interval waktu 10 detik. Perintah setting dapat dilakukan secara jarak jauh dari LIPI Bandung ke stasiun cuaca di Lembang dengan saluran komunikasi frekuensi 2,4GHz.

| Seminar Nasional Embedded Systems, Bandung 20 September 2012 79

5. Kesimpulan

Sistem akuisisi data dapat dibuat secara sederhana

dan dapat memberikan data realtime dengan

menggunakan mikrokontroler ATMega128. Sistem ini sudah diujicoba dan berjalan dengan baik dan stabil untuk mengambil data cuaca di stasiun cuaca P2I LIPI.

Perbaikan sistem dapat dilakukan dengan

meningkatkan resolusi ADC, memilih tegangan referensi yang lebih baik, dan memilih mikrokontroler dengan memori yang lebih kecil untuk menghemat biaya.

6. Daftar pustaka

[1] Syamsi, Djohar, dan Oka Mahendra, Pemanfaatan

Layalan SMS untuk Pengiriman Data Pengukuran Secara Paket, Prosiding Seminar Nasional Riset

Teknologi Informasi, Volume IV, 2009, halaman 187.

[2] Mahendra, Oka dan Djohar Syamsi, Datalogger

Cerdas dengan Kemampuan Timer, Trigger, dan Kalibrasi, Prosiding Seminar Nasional Riset

Teknologi Informasi, Volume IV, 2009, halaman 87

[3] Rosiek, S, and F.J. Battless, A

microcontroller-based data-acquisition system for meteorological station monitoring, Journal of Energy Conversion

and Management,

www.elsevier.com/locate/enconman, available online at 18 July 2008.

[4] Fisher, K. and Hirut Kebede, A low-cost

microcontroller-based system to Monitor Crop Temperature and Water Monitoring, Journal of

Computers and Electronics in Agriculture Volume 74, 2010, pp 168-173

[5] Katrancioglu, Sevan, Kenan Savas, and Hasan Erdal, A Modular and Low-cost Data Acquisition

Card Design with Multitasking Support. Procedia

Social and Behavioral Sciences Volume 2. 2010. pp 5266–5270

[6] Winoto, Ardi, Mikrokontroler AVR

ATMega8/32/16/8535 dan Pemogramannya dengan Bahasa C pada WinAVR, Penerbit Informatika,

2010.

[7] ___________, Datasheet: Rev. 2467X–AVR–06/11

8-Bit Atmel Microcontroller with 128Kbytes In-System Programmable Flash, Atmel, 2011.

4. Daftar Pertanyaan

1. Penanya: M. Iqbal (Universitas Sunan Muria Kudus)

Pertanyaan: Apakah sensor buatan sendiri/ lokal Jawaban: sensor masih impor.

Pertanyaan: Pemilihan arus 4-20 mA?

Jawaban: disesuaikan dengan kebutuhan sensor

yang sudah terpasang.

2. Penanya: Febriadi Santosa (Poltek Telkom)

Pertanyaan: Pada perhitungan gradien dalam

konstanta, nilai 6.25 diperoleh dari mana?

Jawaban: Gradien dan konstanta di sini yang

diinput oleh user. Angka 6.25 adalah scope fungsi x dan y

m = (y2-y1)/(x2-x1) = 6.25

x1= 4, y1=-50 x2=20, y2=50

3. Penanya: Sahrul Arif (LIPI)

Pertanyaan: Mengapa pemilihan lokasi di

Lembang

Jawaban: Keputusan puslit dengan mempertimbangkan beberapa kemudahan.

| Seminar Nasional Embedded Systems, Bandung 20 September 2012

| Seminar Nasional Embedded Systems, Bandung 20 September 2012 81