Top Banner
1 PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT LOGAM MENGGUNAKAN METODE FINITE ELEMENT AGUNG RIDWAN SN DEPARTEMEN FISIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2010
48

PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

Mar 16, 2019

Download

Documents

trannhan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

1

PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT

LOGAM MENGGUNAKAN METODE FINITE ELEMENT

AGUNG RIDWAN SN

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

2010

Page 2: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

2

ABSTRACT

AGUNG RIDWAN SN. Measuring Thermal Distribution of Metal Plate Using Finite Element

Method. Supervised by Mahfudin Zuhri, M.Si dan Faozan Ahmad, M.Si.

To measure temperature in an object, we use temperature sensor. But what if the

temperature which we are going to measure has many of nodes? Putting all sensors on that nodes

is less efficient. Solution for this problem is reducing the quantity of sensors and put it on

boundary system and use that for computation purpose. This research was using finite element

method two-dimensional with triangular element. The output for this research is distribution of

heat transfer on metal surface.

This research measuring thermal conductivity metal plate in steady state problem in two-

dimensional conductivity direction.

The comparison between measurement with digital thermometer EXTECH and

computational finite element method on node coordinate (21, 5.5) is 98.18%, node (21, 1.1) is

96.67%, node 28, 5.5) is 97.55%, node (21, 33.9) is 97.96%.

Keywords : finite element method, digital thermometer EXTECH, metal plate, data-logger.

Page 3: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

3

ABSTRAK

AGUNG RIDWAN SN. Pengukuran Distribusi Temperatur pada Pelat Logam Menggunakan

Metode Finite Element. Dibimbing oleh Mahfudin Zuhri, M.Si dan Faozan Ahmad, M.Si.

Pengukuran temperatur dapat dilakukan dengan menggunakan thermometer. Namun

bagaimana jika nilai temperatur yang ingin dicari lebih dari satu titik pengukuran. Apakah berarti

harus menggunakan banyak sensor dan memasangnya di tiap titik pengukuran? Tentu saja hal ini

menjadi tidak efisien. Solusi dari permasalahan tersebut adalah mengurangi penggunaan sensor

dan menempatkan sensor pada sistem boundary yang mana akan menjadi nilai referensi

perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen

hingga (Finite Element Method). Metode ini dapat mengefisienkan penggunaan sensor karena

hanya dipasang pada wilayah boundary saja. Hasil keluarannya adalah distribusi penyebaran

temperatur pada titik-titik di dalam boundary system.

Penelitian ini melakukan pengukuran konduktivitas termal dalam keadaan steady state

pada pelat logam dengan arah bidang rambat konduksi dua dimensi.

Hasil pengukuran distribusi temperatur dengan membandingkan pengukuran pada digital

thermometer EXTECH dengan perhitungan metode elemen hingga mendapat nilai ketepatan di

titik (21, 5,5) sebesar 98.18 %, titik (21, 1,1) sebesar 96,67%, titik (28, 5,5) sebesar 97.55%, titik

(21, 33,9) sebesar 97,96%.

Kata kunci : metode finite element, digital thermometer EXTECH, pelat logam, data logger.

Page 4: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

4

PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT

LOGAM MENGGUNAKAN METODE FINITE ELEMENT

AGUNG RIDWAN SN

SKRIPSI

Sebagai salah satu syarat untuk memperoleh gelar

Sarjana Sains pada

Program Studi Fisika

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

2010

Page 5: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

5

RIWAYAT HIDUP

Penulis dilahirkan di Jakarta pada tanggal 1 Mei 1987/2 Ramadhan 1407 H

buah dari pasangan Bambang Anggoro dan Darminingsih. Penulis merupakan

anak kedua dari dua bersaudara. Memiliki satu kakak yang bernama Endang

Pusnita R.

Pendidikan penulis dimulai tahun 1992 di sebuah TK (Taman Kanak-kanak)

kecil yang bernama TK. Dahlia. Kemudian melanjutkan ke Sekolah Dasar Negeri

(SDN) 1 Cirendeu pada tahun 1993 dan lulus tahun 1999. Pada tahun yang sama

penulis melanjutkan studi ke Sekolah Lanjutan Pertama Negeri (SLTPN) 1

Ciputat (sekarang SMPN 2 Kota Tangerang Selatan) dan lulus tahun 2002. Di

jenjang ini penulis sempat masuk kelas unggulan dan mulai mengalami banyak

perubahan pola pikir. Lalu penulis melanjutkan studi ke SMAN 1 Ciputat

(sekarang SMAN 1 Kota Tangerang Selatan) dan lulus tahun 2005.

Pada tahun 2005, penulis diterima melanjutkan studi di Institut Pertanian

Bogor (IPB) melalui jalur Seleksi Penerimaan Mahasiswa Baru (SPMB) program

Mayor-Minor. Setahun kemudian penulis diterima masuk di Departemen Fisika,

Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor pada

tahun 2006. Selama perkuliahan, penulis tidak hanya belajar namun juga sempat

mengikuti aktivitas organisasi di luar seperti Majelis Ta’lim Al Furqon, dan

menjadi panitia pada beberapa kesempatan acara yang diadakan oleh himpunan

profesi (HIMAFI). Penulis juga sempat menjadi Asisten Praktikum Elektronika

Lanjut (Bapak Ardian Arief, M.Si), Asisten Praktikum Teknologi Nirkabel

(Bapak Mahfuddin Zuhri, M.Si), Asisten Praktikum Sistem Operasi dan Jaringan

Komputer (Bapak Faozan Ahmad, M.Si), dan Asisten Cisco Networking

Academy Program IPB.

Page 6: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

6

LEMBAR PENGESAHAN

Judul : Pengukuran Distribusi Temperatur pada Pelat Logam

Menggunakan Metode Finite Element

Nama : Agung Ridwan SN

NRP : G4051818

Menyetujui :

Pembimbing I Pembimbing II

(Mahfuddin Zuhri, M.Si) (Faozan Ahmad, M.Si)

NIP:196911041997021001 NIP: 197909232007011001

Mengetahui :

Ketua Departemen

(Dr. Ir. Irzaman, M.Si.)

NIP: 196307081995121001

Disetujui tanggal:

Page 7: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

8

KATA PENGANTAR Alhamdulillahirobbil’alamin, puji dan syukur penulis panjatkan hanya kepada Allah

Subhanahu wa Ta’ala. Sholawat serta salam semoga tercurah kepada Rasulullah Shallallahu

‘alaihi wa Sallam. Dengan rahmat-Nya penulis dapat menyelesaikan skripsi yang berjudul

“Pengukuran Distribusi Temperatur pada Pelat Logam Menggunakan Metode Finite Element”

sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains (S.Si) Departemen Fisika Institut

Pertanian Bogor.

Dalam penyusunan penelitian ini penulis ingin berterima kasih kepada pihak-pihak yang

telah banyak membantu baik berupa dukungan materil maupun moril:

Bapak Mahfuddin Zuhri, M.Si dan Bapak Faozan Ahmad, M.Si selaku dosen

pembimbing atas ilmu, waktu, saran dan kritik yang sangat berharga.

Ibu dan Bapak serta kakak tercinta yang selalu siap membantu dalam doa, motivasi, dan

lainnya. Maaf, kalau masih merepotkan. ^^

Ibnu Sudar, Abu Sufyan, Ibnu Salam, Mas Abdur Rahmat yang selalu cerewet tentang

skripsi penulis, serta seluruh warga At Tauhid, Al Furqon, Al Ghuroba, dan seluruh

ikhwan Salafiyyin atas nasehat dan semangatnya.

Seluruh Teman-teman Fisika 42. Terima kasih atas kebersamaan yang telah diberikan.

Khususnya untuk mikonerz dan exper-erz.

Ka Subhi makasih atas sensor dan supportnya, Pa Mamat makasih atas kesempatannya,

Auriza makasih atas codingnya, Fisika 40,41,43 & ALL: thanks for everything.

Pa Firman, Pa Toni, Pa Jun, Bu Dini, seluruh dosen, staf, dan laboran Fisika IPB.

Rekan-rekan DKSI IPB yang telah kehilangan penulis karena penyelesaian skripsi ini.

Semua pihak yang telah ikut berperan dalam penyusunan proposal ini yang mungkin

belum disebut satu-persatu.

Penulis menyadari bahwa penyusunan skripsi ini masih jauh dari kesempurnaan. Oleh

karena itu penulis mengharapkan masukan baik kritikan, saran maupun koreksi yang sifatnya

membangun. Semoga karya ini dapat bermanfaat untuk umat.

Wassalaamu’alaykum Warahmatullah Wabarakatuh

Bogor, Oktober 2010

Agung Ridwan SN

Page 8: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

9

DAFTAR ISI

Halaman

KATA PENGANTAR ..................................................................................................................... i

DAFTAR ISI ................................................................................................................................... ii

DAFTAR TABEL ........................................................................................................................... iii

DAFTAR GAMBAR ....................................................................................................................... iv

PENDAHULUAN ........................................................................................................................... 1

Latar Belakang ...................................................................................................................... 1

Tujuan ................................................................................................................................... 1

Hipotesa ................................................................................................................................ 1

TINJAUAN PUSTAKA .................................................................................................................. 1

Sensor Temperatur DS18b20 ................................................................................................. 1

Embedded Networked DSTINIm400 ..................................................................................... 2

Bahasa Pemrograman Java .................................................................................................... 2

Bahasa Pemrograman XML dan XSL .................................................................................... 3

Bahasa Pemrograman PHP dan AJAX................................................................................... 3

Metode Elemen Hingga ......................................................................................................... 3

Konduksi Thermal Dua Dimensi ........................................................................................... 4

Database MySQL .................................................................................................................. 5

SolidWorks 2009 SP 2.1 ....................................................................................................... 5

ALAT DAN METODE ................................................................................................................... 5

Waktu dan Tempat ................................................................................................................ 5

Alat dan Bahan ...................................................................................................................... 5

Metode Penelitian ................................................................................................................. 5

Persiapan Alat dan Bahan ............................................................................................... 5

Pembuatan Program ....................................................................................................... 6

Analisis Keluaran Data ................................................................................................... 6

HASIL DAN PEMBAHASAN ........................................................................................................ 6

Sensor Temperatur ................................................................................................................ 6

Pemanas ................................................................................................................................ 7

Data Logger Temperatur ....................................................................................................... 7

Metode Elemen Hingga ......................................................................................................... 7

KESIMPULAN DAN SARAN ........................................................................................................ 8

DAFTAR PUSTAKA ...................................................................................................................... 8

LAMPIRAN .................................................................................................................................... 9

Page 9: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

10

DAFTAR TABEL

No. Halaman

LAMPIRAN

1. Perbandingan data eksperimen (Extech) dengan data literatur (FEM) ...................................... 7

2. Data temperatur pemanas terhadap waktu ............................................................................... 11

3. Terminologi matriks untuk metode elemen hingga .................................................................. 13

4. MAC Address (64-bit unique) sensor temperatur DS18b20 ..................................................... 13

5. Resolusi sensor temperatur ds18b20........................................................................................ 13

6. Karakteristik sensor DS18b20 ................................................................................................. 13

Page 10: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

11

DAFTAR GAMBAR

No. Halaman

TEKS

1. Sensor suhu DS18B20 ............................................................................................................ 1

2. Blok diagram daya internal pada DS18B20 ............................................................................. 1

3. Blok diagram daya external pada DS18B20 ............................................................................ 1

4. Blok diagram DS18B20 .......................................................................................................... 1

5. Modul DSTINIm400 ............................................................................................................... 2

6. Diagram Modul DSTINIm400 ................................................................................................ 2

7. Heatsink Compounds .............................................................................................................. 5

8. Setup Pengukuran ................................................................................................................... 5

9. Diagram Alur Penelitian ......................................................................................................... 6

10. Format Data Keluaran DS18b20 ............................................................................................. 6

11. Hubungan temperatur dengan waktu ....................................................................................... 7

12. Diskritisasi Menggunakan Elemen Triangular ......................................................................... 7

13. Meshing menjadi beberapa elemen.......................................................................................... 7

14. Probe Nilai Temperature di Node Mesh Object ....................................................................... 7

LAMPIRAN

1. Sebuah pelat dengan kondisi batas temperatur yang berbeda ................................................... 14

2. Diskritisasi menggunakan elemen triangular ........................................................................... 14

3. Desain antarmuka pengambilan data menggunakan PHP & AJAX .......................................... 15

Page 11: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

12

LAMPIRAN

No. Halaman

LAMPIRAN

1. Rumus Ketepatan .................................................................................................................... 14

2. Contoh perhitungan menggunakan metode elemen hingga ...................................................... 14

3. Skema Mikrokontroller DSTINIm400 ..................................................................................... 16

4. Program utama (tws.java) ....................................................................................................... 17

5. Contoh konfigurasi pada (prefs.ini) ......................................................................................... 30

6. Program XML (weather.xml) .................................................................................................. 30

7. Program PHP (index.php) untuk mengambil data dari mikrokontroller ke PC Server .............. 32

8. Program PHP (table.php) untuk menampilkan tabel temperatur............................................... 33

9. Program PHP (dbkoneksi.php) untuk menghubungkan ke Database MySQL .......................... 34

10. Program PHP (logsaver.php) untuk menyimpan data temperatur ............................................. 34

11. Stylesheet CSS (style.css) ....................................................................................................... 36

12. SQL Struktur data tws table log .............................................................................................. 37

Page 12: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

13

PENDAHULUAN

Latar Belakang

Pengukuran temperatur dapat dilakukan

dengan menggunakan thermometer. Namun

bagaimana jika nilai temperatur yang ingin

dicari lebih dari satu titik pengukuran.

Apakah berarti harus menggunakan banyak

sensor dan memasangnya di tiap titik

pengukuran? Tentu saja hal ini menjadi

tidak efisien.

Solusi dari permasalahan tersebut

adalah mengurangi penggunaan sensor dan

menempatkan sensor pada titik-titik tertentu

kemudian dengan menggunakan metode

numerik akan dilakukan penghitungan

terhadap titik-titik tertentu yang ingin

diketahui dengan referensi nilai temperatur

sensor. Metode numerik yang dipakai pada

penelitian ini adalah metode elemen hingga

(Finite Element Method). Metode ini dapat

mengefisienkan penggunaan sensor karena

hanya dipasang pada wilayah boundary saja.

Hasil keluarannya adalah distribusi

penyebaran temperatur pada titik-titik di

dalam boundary system.

Penelitian ini melakukan pengukuran

konduktivitas termal dalam keadaan steady

state pada pelat alumunium dengan arah

bidang rambat konduksi dua dimensi.

Tujuan

Penelitian ini bertujuan untuk

mengetahui suhu di beberapa titik

permukaan pelat dengan menggunakan

metode elemen hingga.

Hipotesis Penyebaran distribusi temperatur dalam

keadaan steady state di tiap titik pada difusi

konduksi termal akan berbeda tapi dengan

nilai heat transfer (q) yang konstan.

TINJAUAN PUSTAKA

Sensor Temperatur DS18b20

Sensor DS18b20 merupakan jenis

sensor onewire yang dikeluarkan oleh

Dallas Semiconductor. DS18b20 merupakan

sensor suhu yang telah memiliki keluaran

digital sehingga tidak diperlukan rangkaian

ADC (Analog Digital Converter) dan

proporsional dengan suhu pada orde derajat

Celcius. Bentuk fisik dari DS18b20 dapat

terlihat pada Gambar 1, device ini

mempunyai tiga kaki yang terdiri dari GND

untuk ground, DQ untuk data masukan atau

data keluaran, dan VDD untuk daya device.

Salah satu keunggulan lain yaitu device ini

tidak memerlukan daya dari luar, daya dapat

diambil langsung oleh device ini dari kaki

DQ atau kaki untuk data, istilah lainnya

yaitu parasite power. Bentuk contoh

rangkaiannya dapat dilihat pada Gambar 2.

Jika DS18b20 yang digunakan sedikit maka

dapat menggunakan pendayaan dari luar,

melalui kaki VDD, rangkaiannya dapat dilihat

pada Gambar 3. Namun jika device yang

dipasangkan berjumlah banyak baiknya

menggunakan parasite power. Daya yang

dibutuhkan sensor ini berkisar antara 3,0 V

sampai 5,5 V.

Gambar 1. Sensor suhu DS18B20

Gambar 2. Blok diagram daya internal

pada DS18B20

Gambar 3. Blok diagram daya external

pada DS18B20

Gambar 4. Blok diagram DS18B20

Gambar 4 memperlihatkan struktur

DS18b20. Sebanyak 64-bit ROM pada

device menyimpan kode serial unik yang

digunakan sebagai pembeda device satu

dengan yang lain sehingga mikrokontroler

dapat mengenalinya. Kode unik itu disebut

Page 13: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

14

dengan MAC Address. Memori scratchpad

mengandung register 2-bit yang digunakan

untuk menyimpan keluaran digital dari

sensor temperatur. Sebagai tambahan,

scratchpad menyediakan akses ke 1-byte

Upper dan Lower alarm register trigger (TH

dan TL). Register TH dan TL adalah non-

volatile (EEPROM), sehingga alat ini dapat

mempertahankan data saat tidak

dihubungkan dengan catu daya.

DS18b20 menggunakan 1-wire bus

protokol eksklusif yang menerapkan bus

komunikasi menggunakan satu sinyal

kendali. Garis kendali memerlukan strong

pull-up resistor karena semua device

dihubungkan melalui 3-state atau port open

drain (pin DQ). Dalam sistem bus ini,

mikrokontroler mengidentifikasi dan

melakukan pengalamatan device pada bus

menggunakan kode 64-bit yang unik. [1]

Embedded Networked DSTINIm400

DSTINIm400 (Dallas Semiconductor

Tiny Internet Interface module) merupakan

sebuah modul yang dapat digunakan untuk

keperluan embedded networked system.

Modul ini sangat cocok digunakan dalam

perancangan embedded server. Hal ini

dikarenakan modul ini dapat bekerja seperti

komputer atau disebut juga Single Board

Computer. Modul ini bekerja dengan

menggunakan sistem operasi seperti halnya

sebuah komputer. Sistem operasinya

dinamakan dengan TinyOS (Tiny Operating

System). Dalam sistem operasi DSTINIm400

telah terdapat JRE (Java Runtime

Evironment) sehingga pengembangan

aplikasi dapat dilakukan dalam bahasa

tingkat tinggi (High-Level Language) yaitu

dengan menggunakan bahasa pemrograman

Java.

Pada dasarnya komponen inti dari

modul DSTINIm400 adalah sebuah

mikrokontroler jaringan (network

microcontroller) tipe DS80C400, dimana

mikrokontroller ini merupakan

mikrokontroler yang telah menyertakan

10/100 Ethernet, TCP IPv4/6 network stack

dan firmware yang telah di-burning ke

dalam ROM-nya. Selain TCP IP, DS80C400

ini juga mendukung komunikasi via protokol

UDP (User Datagram Protocol), DHCP

(Dynamic Host Configuration Protocol),

ICMP, dan IGMP. Oleh karena itu, modul

DSTINIm400 ini sangat reliable untuk

komunikasi jaringan lokal maupun internet.

Selain mikrokontroler DS80C400

sebagai komponen utama, DSTINIm400

juga memiliki memori flash dan RAM

sebesar 1MB, hal ini yang membuat

DSTINIm400 dapat beroperasi dengan

menggunakan sistem operasi. Untuk

keterangan lebih lanjut mengenai modul

DSTINIm400 ini, dapat mengacu pada

datasheet yang terlampir. Bentuk fisik dari

modul DSTINIm400 dapat dilihat pada

Gambar 5. Diagram modul DSTINIm400

dapat dilihat pada Gambar 6. [2]

Gambar 5. Modul DSTINIm400

Gambar 6. Diagram Modul DSTINIm400

Bahasa Pemrograman Java

Java merupakan bahasa pemograman

berorientasi objek yang dikembangkan oleh

perusahaan Sun Microsytems, yang terkenal

dengan Workstation High-end-nya. Java

merupakan pengembangan dari bahasa

pemograman C++ yang dirancang memiliki

ukuran yang lebih kecil, source dan binary

level-nya sederhana, dapat digunakan untuk

platform dan sistem operasi apapun. Dengan

jargon ”write once, run everywhere”

menunjukkan bahwa program java dapat

dijalankan pada mesin apa saja dengan

syarat mempunyai fasilitas JVM (Java

Virtual Machine). [3]

Untuk memudahkan kompilasi listing

program, menjalankan program, membuat

file aplikasi java, dan mengubah ekstensi

.class menjadi .tini, dalam penelitian ini

menggunakan IDE (Integrated Development

Environment) Borland JBuilder 9 Enterprise.

Keunggulan dari software ini yaitu :

Terdapat error correction dan auto

suggestion terhadap kesalahan

listing program yang dibuat.

Page 14: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

15

Tampilan GUI (Graphical User

Interface)

Mudah digunakan

Dapat menentukan path dengan

mudah

Dengan menambah library

TINIConverter dapat mengubah file

.class menjadi .tini

Dapat menempatkan secara langung

file .tini ke dalam mikrokontroller

TINI. [4]

Bahasa Pemrograman XML dan XSL

XML (Extensible Markup Language)

adalah bahasa markup, markup digunakan

untuk menyampaikan informasi tentang

beberapa teks atau data lain. XML berbeda

dari bahasa markup seperti HTML

(Hypertext Markup Language) karena

XML dapat memiliki jumlah elemen jenis

nama yang sering disebut informal tag

name, Sehingga memberikan kemampuan

yang lebih fleksibel kepada para

programmer web.

XML dikembangan oleh grup kerja

xml (awalnya SGML Editorial Review

Board) dibawah badan W3C (World Wide

Web Consortium) pada tahun 1996.

XML adalah class dari object data yang

disebut XML document. XML dokumen

dapat digunakan untuk menyimpan data

yang Anda simpan sebagai huruf, laporan,

manual dan sebagainya atau data yang

mungkin anda hubungkan dengan

database. [5]

XSL dirancang untuk digunakan

dengan XML dokumen untuk

mentransformasikan data dalam bentuk

yang sesuai untuk presentasi dalam

konteks tertentu atau menjadi alternatif

struktur XML. XSL cocok untuk

membuat dokumen HTML dari server-side

XML dengan HTML yang dihasilkan

diproses oleh pengguna Web browser

dengan cara biasa. XSL memiliki output

untuk mengaktifkan modus HTML output

yang akan ditentukan. Selain itu, XSL

dapat digunakan untuk memproduksi

HTML browser untuk desktop, dan WML

(Wireless Markup Language) untuk mobile

browser yang sama dari XML penyimpan

data. [6]

Bahasa Pemrograman PHP dan AJAX

PHP adalah bahasa server-side yang

termasuk bahasa pemrograman kode sumber

terbuka (opensource). Maksud server-side

berarti kode sumber berada disisi server.

Sedangkan AJAX (Asynchronuous

Javascript and XML) adalah teknik untuk

me-request dan respond halaman web yang

bekerja terus-menerus secara background.

Pada penelitian ini menggunakan framework

jQuery versi 1.3.2.

Keunggulan PHP yaitu:

- Kode sumber terbuka. - Mendukung penulisan dari bahasa

prosedural hingga Object Oriented Programming (OOP).

- Ringan digunakan. - Tidak membutuhkan compiler hanya

butuh web server saja. - Tidak harus mendefinisikan variabel

di awal program. Variabel dapat digunakan kembali.

- Skalabilitas sehingga dipakai oleh perusahaan besar seperti facebook.

Keunggulan AJAX yaitu:

- Auto reload request suatu halaman sehingga menjadi halaman yang dinamis.

- Bekerja secara background dengan menggunakan sumber daya client.

- Cepat, karena setiap saat ada perubahan akan segera di-request.

- Dapat membuat website semakin responsif dan dinamis. [7]

Data dari XML ‘dijemput’ oleh script

php yang secara asinkron dipanggil terus-

menerus oleh AJAX tiap dua detik.

Metode Elemen Hingga

Metode Elemen Hingga (FEM) adalah

sebuah teknik numerik yang digunakan

untuk memperkirakan suatu problem fisis

dari persamaan diferensial parsial pada

persoalan yang menyangkut aliran fluida,

analisa struktur, dan lainnya dengan

mendiskritisasikan suatu objek menjadi

bagian kecil (elemen hingga). Metode

pendekatan yang sering digunakan saat

merumuskan problem fisis ke dalam

diskritisasi metode elemen hingga, yaitu

metode Galerkin dan metode Variasi [8][9].

Pada penelitian ini menggunakan metode

Galerkin yang didasarkan pada minimasi

residu yang tertinggal setelah suatu solusi

pendekatan disubtitusikan ke dalam

persamaan diferensial dari suatu problem

fisis.

Ide utama dari metode elemen hingga

adalah untuk memecahkan elemen yang

sangat kompleks dengan batasan yang tidak

ditentukan menjadi suatu elemen dengan

batasan yang kecil. Masing-masing elemen

Page 15: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

16

diperhitungkan sebagai bagian dalam

permasalahan utama, dimana terdapat

hubungan antarelemen yang saling

berkaitan melalui informasi global tentang

deformasi, yang biasanya berhubungan

dengan karakteristik elemen. Keakuratan

metode elemen hingga dapat ditingkatkan

dengan cara menyempurnakan mesh pada

model dengan menambahkan elemen dan

nodes. Metode ini disebut dengan hp-FEM.

Keunggulan dari metode elemen hingga

adalah dapat menyelesaikan persoalan

sistem yang kompleks dimana tidak dapat

diselesaikan dengan perhitungan analitis,

dapat menghitung dari persamaan linear

hingga persamaan nonlinear, penghitungan

secara komputasi ini menjadi sangat efisien,

dan untuk beberapa permasalahan metode

ini mungkin adalah satu-satunya cara.

Komputer digunakan untuk melakukan

jutaan penghitungan yang diperlukan untuk

mensimulasikan elemen-elemen penyusun

suatu model yang kompleks yang digunakan

dalam pemodelan atau simulasi ini. Software

yang digunakan adalah SolidWorks 2009

SP 2.1 versi standard.

Konduksi Thermal Dua Dimensi

Pada penelitian ini menggunakan

distribusi konduksi thermal pada pelat logam

dalam bidang dua dimensi arah rambatnya.

Konduksi thermal dua dimensi

dituliskan dengan: [10]

𝒒𝑥 = −𝑘𝑥𝑥𝜕𝑇

𝜕𝑥 (1)

𝒒𝑦 = −𝑘𝑦𝑦𝜕𝑇

𝜕𝑦 (2)

dimana :

q : konduksi thermal [J]

kxx = kyy : konduktivitas thermal [J/oCms]

T : Temperatur [oC]

Jika dituliskan dengan matrix menjadi:

𝑞 = 𝑞𝑥𝑞𝑦 = −

𝑘𝑥𝑥 00 𝑘𝑦𝑦

𝜕𝑇

𝜕𝑥𝜕𝑇

𝜕𝑦

= −𝑫∇𝑇 (3)

Kemudian sesuai dengan teorema divergensi

gauss, maka didapat strong formulation

konduksi panas dua dimensi:

𝑑𝑖𝑣 𝑡𝑫∇𝑇 + 𝑡𝑄 =𝜕

𝜕𝑥 𝑡𝑘𝑥𝑥

𝜕𝑇

𝜕𝑥

+𝜕

𝜕𝑥 𝑡𝑘𝑦𝑦

𝜕𝑇

𝜕𝑦

+𝑡𝑄 = 0 (4)

Kalikan dengan fungsi bobot (weight

function) lalu integralkan terhadap domain

lalu menghasilkan:

(∇𝑣)𝑇

𝐴

𝑡𝑫∇𝑇𝑑𝐴 = − 𝑣𝑡𝑞 ℒ𝑞

𝑑ℒ

− 𝑣𝒕𝑞𝑛ℒ𝑇𝑑ℒ

+ 𝑣𝑡𝑄𝑑𝐴𝐴

(5)

dengan

𝑇 = 𝑇 pada ℒ𝑇

𝑞𝑛 = 𝑞 pada ℒ𝑞

Kemudian diskritisasikan domain

menjadi elemen berhingga. Dengan

menggunakan metode Galerkin maka

variabel utama (yaitu temperatur) dan fungsi

bobot menggunakan interpolasi yang sama.

𝑇 𝑥,𝑦 = 𝑁1 𝑥,𝑦 𝑇1 + 𝑁2 𝑥,𝑦 𝑇2

+𝑁3 𝑥, 𝑦 𝑇3 + 𝑁4 𝑥, 𝑦 𝑇4

= 𝑁1 𝑥, 𝑦 𝑁2 𝑥, 𝑦 𝑁3 𝑥, 𝑦 𝑁4 𝑥, 𝑦

𝑇1

𝑇2

𝑇3

𝑇4

= 𝑵 𝑥, 𝑦 𝒂 (6)

Karena v dan a adalah konstan, dan setelah

dilakukan subtitusi maka menghasilkan:

𝑩𝑇𝐴

𝑡𝑫𝐁𝑑𝐴𝒂 = − 𝑵𝑇𝑡𝑞 ℒ𝑞

𝑑ℒ

− 𝑵𝑻𝒕𝑞𝑛ℒ𝑇𝑑ℒ

+ 𝑵𝑇𝑡𝑄𝑑𝐴𝐴

(7)

Dimana:

𝑩 = ∇𝑵 (8)

Diketahui:

𝑲 = 𝑩𝑇𝐴

𝑡𝑫𝐁𝑑𝐴𝒂 (9)

sebagai stiffness matrix (matriks kekakuan)

𝒇𝑏 = − 𝑵𝑇𝑡𝑞 ℒ𝑞

𝑑ℒ − 𝑵𝑻𝒕𝑞𝑛ℒ𝑇𝑑ℒ (10)

sebagai boundary load vector

𝒇ℓ = 𝑵𝑇𝑡𝑄𝑑𝐴𝐴

(11)

sebagai internal load vector

𝑲𝒂 = 𝒇𝑏 + 𝒇ℓ (12)

atau

𝑲𝒂 = 𝒇 (13)

dengan

𝒇 = 𝒇𝑏 + 𝒇ℓ (14)

Keterangan:

K adalah matrix 4x4

𝒂 =

𝑇1

𝑇2

𝑇3

𝑇4

, 𝑵 = 𝑁1 𝑁2 𝑁3 𝑁4

𝒇 =

𝑞1

𝑞2𝑞3

𝑞4

, 𝑩 =

𝜕𝑁1

𝜕𝑥

𝜕𝑁2

𝜕𝑥

𝜕𝑁3

𝜕𝑥

𝜕𝑁4

𝜕𝑥

𝜕𝑁1

𝜕𝑦

𝜕𝑁2

𝜕𝑦

𝜕𝑁3

𝜕𝑦

𝜕𝑁4

𝜕𝑦

Contoh perhitungan menggunakan metode

elemen hingga terlampir.(Lampiran 2)

Page 16: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

17

Database MySQL

MySQL adalah Relational Database

Management System (RDBMS) yang

didistribusikan secara gratis dibawah lisensi

GPL (General Public License). Dimana

setiap orang bebas untuk menggunakan

MySQL, namun tidak boleh dijadikan

produk turunan yang bersifat closed source

atau komersial. MySQL sebenarnya

merupakan turunan salah satu konsep utama

dalam database sejak lama, yaitu SQL

(Structured Query Language). SQL adalah

sebuah konsep pengoperasian database,

terutama untuk pemilihan atau seleksi dan

pemasukan data, yang memungkinkan

pengoperasian data dikerjakan dengan

mudah secara otomatis. Keandalan suatu

sistem database (DBMS) dapat diketahui

dari cara kerja optimizer-nya dalam

melakukan proses perintah-perintah SQL,

yang dibuat oleh user maupun program-

program aplikasinya. Sebagai database

server, MySQL dapat dikatakan lebih

unggul dibandingkan database server

lainnya dalam query data. Hal ini terbukti

untuk query yang dilakukan oleh single user,

kecepatan query MySQL bisa sepuluh kali

lebih cepat dari PostgreSQL dan lima kali

lebih cepat dibandingkan Interbase. Selain

itu MySQL juga memiliki beberapa

keistimewaan, antara lain : portability, open

source, multiuser, performance tuning,

column types, command dan functions,

security, scalability dan limits, connectivity,

localisation, interface, clients dan tools, dan

struktur table. [12]

SolidWorks 2009 SP 2.1

Pada penelitian ini menggunakan

software SolidWorks versi 2009 Service

Pack 2.1 dengan lisensi a.n. Institut

Pertanian Bogor. Program ini mirip seperti

program CAD, namun tidak hanya untuk

menggambar saja tetapi juga dapat

digunakan untuk analisis suatu problem

fisis. Dalam memecahkan suatu problem

SolidWorks menggunakan metode elemen

hingga tipe hp-FEM, sehingga waktu

penghitungannya lebih cepat dengan tingkat

keakuratan yang cukup presisi. Namun

sayang dalam melakukan komputasi,

SolidWorks sangat menghabiskan sumber

daya CPU komputer. [13]

ALAT DAN METODE

Waktu dan Tempat

Penelitian ini dilakukan di

Laboratorium Mikrokontroler dan Bengkel

Mekanik Departemen Fisika Fakultas

Matematika dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor mulai dari bulan

Mei 2009 sampai bulan Oktober 2010.

Alat dan Bahan

Alat yang digunakan pada penelitian ini

meliputi PC (Personal Computer),

termometer digital EXTECH 421305, digital

multimeter, adapter power supply, signal

generator, microcontroller DSTINIm400,

protoboard, solder, penyedot timah,

stopwatch, tulang ikan, kabel tipe RJ11,

kabel UTP (Unshielded Twisted-Pair) tipe

crossover, dan konektor RJ45.

Bahan-bahan yang digunakan pada

penelitian ini meliputi sensor temperatur

onewire DS18B20, komponen elektronika,

PCB (Printed Board Circuit) kosong,

heater, heatsink high thermal conductivity,

timah, dan logam aluminium.

Gambar 7. Heatsink Compounds

Gambar 8. Setup Pengukuran

Metode Penelitian

1. Persiapan Alat dan Bahan

Mengkalibrasi nilai temperatur heater

sebesar 100oC, dan kalibrasi antara sensor

dengan thermometer EXTECH 421305.

Kemudian ujung pelat logam dipotong dan

dihaluskan sehingga dapat menempel

dengan heater.

Su

mb

er

Kalo

r

Sensor Temperatur

Es

Balo

k

Es Balok

Pelat Logam

Page 17: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

18

2. Pembuatan Program

Pembuatan program dilakukan secara

bertahap, yakni pembuatan program java

kemudian di-compile menghasilkan .class.

Dari .class dikonversi menjadi .tini.

Kemudian selanjutnya, menyiapkan

database MySQL dan membuat program

PHP yang akan menangkap nilai temperatur

di dalam XML untuk langsung disimpan ke

dalam database. Kemudian menyiapkan

simulasi model objek komputasi sesuai

dengan eksperimen.

3. Analisis keluaran data

Menginput data yang telah tersimpan di

database ke dalam simulasi program di

SolidWorks. Kemudian menganalisis hasil

eksperimen dengan hasil perhitungan

numerik metode elemen hingga.

Adapun diagram alur penelitian ini

digambarkan dengan:

Gambar 9. Diagram Alur Penelitian

HASIL DAN PEMBAHASAN

Sensor Temperatur

Device sensor yang dipakai adalah

DS18b20. Didalamnya terdapat sensor

temperatur semikonduktor dimana terdapat

2-byte register memori scratchpad yang

dapat menyimpan data temperatur. Keluaran

dari sensor ini sudah berupa data digital

sehingga tidak diperlukan lagi konverter

ADC. Format pengalokasian memori

DS18b20 digambarkan sebagai berikut:

Gambar 10. Format Data Keluaran

DS18b20

Untuk menentukan kevalidan data

temperatur maka keluaran sensor temperatur

dibandingkan menggunakan alat Extech

Digital Temperature seri 421305. Jika

ternyata belum mendapat nilai yang tepat

dan itu bukan kesalahan program, maka

akan dicek ulang disisi device (sensor, kabel,

tegangan, dan lainnya). Namun jika

penyebabnya adalah kesalahan program

maka akan diprogram ulang dan dilakukan

pengujian sensor lagi.

Range temperatur yang dapat diterima

oleh sensor DS18b20 berkisar antara -55 oC

s.d. 125 oC. Dengan keakuratan sensor yang

baik pada kisaran -10 oC s.d. 85

oC, dengan

toleransi + 0,5 oC. Oleh karena itu, jika

sensor mendapat temperatur lebih dari

125oC maka sensor akan rusak dan jika

sensor men-sensing nilai temperatur lebih

dari 85oC maka keakuratannya akan semakin

buruk. Inilah salah satu sebab mengapa ada

sensor yang tidak terbaca saat pengujian

pembacaan data sensor, yakni disebabkan

oleh solder yang bertemperatur tinggi

(180oC) dan menginduksi ke sensor.

Jika di-debug running program

pengambilan data sensor maka akan terlihat

di database selang waktu berkisar 6-10 detik

tiap interval pengambilan datanya. Hal ini

disebabkan program perlu membaca file

konfigurasi (prefs.ini terlampir) dan

meng-update setiap data yang baru ke dalam

log file (ddmmyy.log) dan file XML

(weather.xml terlampir) [14]. Pada saat

mikrokontroller mengupdate data baru ke

weather.xml kemudian PC Server akan

mengambil data tersebut dan menyimpannya

ke dalam database MySQL. Namun pada

penelitian sebelumnya [4] mengatakan

bahwa sensor DS18b20 memiliki rata-rata

selang interval selama 4 detik dengan

tingkat akurasi diatas 86.5%.

Sensor ds18b20 memiliki 4 bit resolusi,

yaitu 9, 10, 11, dan 12 (Tabel 5). Pada

Analisis Data

(Metode Elemen Hingga)

Data

Temperatur

Valid?

Persiapan Alat dan Bahan

Pembuatan dan

Pengujian Program

Ya

Tidak

Kesalahan

Program?

Ya

Tidak

Laporan Hasil Analisis

Page 18: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

19

penelitian ini menggunakan resolusi 9 bit

dengan besar resolusi 0.5 oC dimana hal ini

didefinisikan pada baris program berikut: device.setTemperatureResolution(d

evice.RESOLUTION_9_BIT, state);

Pemanas Pemanas (heater) yang digunakan

adalah seterika listrik dengan spesifikasi

besar tegangan = 220 V, daya = 300-350 W,

Temperatur maksimal = 210 oC. Pemanas ini

diusahakan agar bekerja pada kisaran nilai

temperatur + 100 oC.

Antara pelat logam dengan pemanas

dioleskan heatsink thermal conductivity

dengan spesifikasi besar thermal

conductivity > 1,22 W/m.k dan thermal

resistance < 0.201 oC-in

2/w. Fungsi

pengolesan ini bertujuan untuk membantu

penghantaran aliran konduksi kalor dari

pemanas ke pelat logam dan menghindari

adanya celah diantara keduanya. Grafik

hubungan antara temperatur dengan waktu

digambarkan sebagai berikut:

Gambar 11. Hubungan temperatur

dengan waktu

Data Logger Temperatur

Saat ds18b20 men-sensing temperatur,

data diterima oleh modul mikrokontroller

DSTINIm400 dan hasilnya ditampilkan

dalam bentuk XML dengan user interface

(UI) web-based. Dengan menggunakan

regular-expression (regex) pada

pemrograman PHP, tag XML yang berisi

data temperatur diambil nilainya dan

disimpan ke dalam database MySQL

(Lampiran 15) di komputer yang bertindak

sebagai server.

Saat melakukan fetching data, agar data

dapat terambil secara terus-menerus maka

pada penelitian ini digunakan teknik

pemrograman AJAX. Dalam selang waktu 4

sampai dengan 6 detik akan didapat data

temperatur. Selang waktu ini bukan delay

dari AJAX tetapi delay saat pemrosesan

pengambilan data dari sensor ke

mikrokontroller.

Metode Elemen Hingga

Penelitian ini menggunakan elemen

berbentuk triangular. Pada software

SolidWorks dapat diatur banyak elemen

yang digunakan, semakin banyak elemen

yang digunakan maka akan semakin

membutuhkan waktu yang cukup lama untuk

melakukan komputasi.

Gambar 12. Elemen triangular pertama,

kedua, dan ke-n

Penelitian ini membandingkan nilai

temperatur yang ada di node-node elemen

hingga dengan nilai temperatur secara

eksperimen di titik koordinat yang sama.

Diambil empat titik node, yaitu pada node

13 (28, 5,5), node 16 (21, 5,5), node 19 (21,

165), dan node 20 (21, 1,1) (Gambar 14)

dengan melakukan lima kali perulangan.

(Tabel 1).

Tabel 1. Perbandingan data eksperimen (Extech) dengan data perhitungan (FEM)

Koordinat (cm) SolidWorks

Temp Extech (Celcius) Temp

Rata-rata x y ulangan 1 ulangan 2 ulangan 3 ulangan 4 ulangan 5

21 5,5 22,00 23,00 22,70 22,00 22,30 22,00 22,40

21 11 33,06 33,00 31,50 31,50 31,80 32,00 31,96

28 5,5 22,00 22,50 22,90 22,20 22,10 23,00 22,54

21 16,5 33,91 33,70 33,30 32,90 33,00 33,20 33,22

0,00

20,00

40,00

60,00

80,00

100,00

120,00

1

16

31

46

61

76

91

10

6

12

1

13

6

15

1

16

6

18

1

19

6

21

1

22

6

Tem

pera

tur (

Celc

ius)

Waktu (detik)

3(28,16.5

)

1(28,5.5)

2(21,11.5

)

3(28,16.5)

4(28,16.5)

2(21,11.5)

Page 19: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

20

Gambar 13. Meshing menjadi

beberapa elemen

Gambar 14. Probe nilai temperatur di

node mesh object

Saat nilai temperatur referensi telah

didapat dan telah dibuat desain simulasi,

memasukkan variabel input, dan atribut-

atributnya pada software SolidWorks maka

input boundary akan dievaluasi terhadap

persamaan 10 dan persamaan 11. Setelah itu

akan didapat nilai matriks f. Kemudian

dihitung nilai matriks kekakuan (K) terhadap

persamaan 9. Sesuai persamaan 13 akan

didapat nilai temperatur pada matriks d.

Perhitungan ini berlaku di tiap elemen yang

kemudian dinamakan dengan perhitungan

matriks secara lokal. Setelah itu, di-assembly

(hasil masing-masing elemen) menjadi nilai

global. Karena tiap titik node telah terhitung

nilai temperaturnya, maka akan terlihat

distribusi penyebaran temperaturnya. Jumlah

mesh elemen penelitian ini sedikit sehingga

terlihat penyebaran distribusi yang ‘kasar’.

KESIMPULAN DAN SARAN

Kesimpulan Berdasarkan hasil dan pembahasan

diatas maka dapat disimpulkan sebagai

berikut:

Dengan referensi nilai temperatur sensor disuatu titik, dapat diketahui penyebaran distribusi temperatur disuatu objek menggunakan metode elemen hingga. (Table 1)

Semakin banyak elemen maka akan semakin mendekati solusi eksak.

Metode elemen hingga dapat mengefisiensikan penggunaan sensor dengan mengambil nilai boundary.

Ketepatan pengukuran rata-rata sebesar 97.6%.

Saran Saran yang dapat diberikan dari

penelitian ini adalah:

Jika menggunakan banyak sensor, lebih baik mengambil daya dari kaki DQ yang berfungsi sebagai parasite power.

Menggunakan solder yang berkualitas dan hendaknya mengukur temperatur solder terlebih dahulu agar tidak merusak sensor.

Dengan User Interface Web, maka percobaan ini dapat dijadikan sebagai remote laboratory dengan menambahkan IP public sehingga dapat diakses melalui media internet.

DAFTAR PUSTAKA

[1] Anonim. DS18S20b High-Precision

1-Wire Digital Thermometer.

www.maxim-ic.com. 10 Januari

2007.

[2] Loomis, Don. 2001. The TINI™

Specification and Developer’s Guide.

Addison-Wesley: Boston.

[3] Deitel, Harvey M., Deitel, Paul J.

2004. Java How to Program Sixth

Edition. Prentice Hall: New Jersey.

[4] Priatna, Subhi. 2009. Rancang

Bangun Prototipe Sistem Kontrol

Temperatur Greenhouse melalui

Jaringan Wireless Berbasis

Mikrokontroller DSTINI. Skripsi.

Institut Pertanian Bogor.

[5] Anonim.

http://www.w3.org/TR/REC-xml/ .

25 November 2008.

[6] Arsenal, Bobi. 2007. Monitoring

Temperatur Melalui Jaringan

Menggunakan DSTINI400. Tugas

Akhir. Institut Pertanian Bogor.

[7] Darie, Cristian., Bogdan, Brinzarea.,

Cherecheş-Toşa, Filip., Bucica,

Mihai. 2006. AJAX and PHP,

Building Responsive Web

Applications. Packt Publishing:

Birmingham.

Page 20: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

21

[8] Nikishkov, G.P. 2004. Introduction to

The Finite Element Method. Lecture

Note. University of Aizau, Japan.

(19 Januari).

[9] Desai, Candrakant S. 1988. Dasar-

Dasar Metode Elemen-Hingga.

Jakarta: Penerbit Erlangga.

[10] Fish, Jacob., Belytschko, Ted. 2007.

A First Course of A Finite Element.

JohnWiley&Sons: England.

[11] Lewis, Roland W., Nithiarasu,

Perumal., Seetharamu, Kankanhalli

N., Fundamentals of the Finite

Element Method of Heat and Fluid

Flow. 2004. England: John Wiley &

Sons.

[12] Anonim.

http://id.wikipedia.org/wiki/MySQL.

7 Mei 2009.

[13] Adams, Vince. Do FEA Tools Give

Same Answer? A Comparison of

Finite Element Analysis Software.

IMPACT Engineering Solutions, Inc.

[14] Bitson, Tim. 2006. Weather Toys,

Building and Hacking Your Own 1-

Wire Weather Station. Wiley

Publishing: Indianapolis.

Page 21: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

23

LAMPIRAN

Page 22: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

24

Tabel Lampiran 2. Data temperatur pemanas terhadap waktu

Waktu (s) Temp (Celcius)

41,00 43,30

42,00 43,70

43,00 43,70

44,00 44,70

45,00 43,80

46,00 46,00

47,00 45,10

48,00 46,40

49,00 45,90

50,00 46,80

51,00 48,30

52,00 49,20

53,00 49,60

54,00 48,80

55,00 50,10

56,00 50,30

57,00 49,70

58,00 52,10

59,00 51,70

60,00 51,70

61,00 51,20

62,00 53,00

63,00 54,00

64,00 55,20

65,00 54,40

66,00 56,10

67,00 54,70

68,00 55,30

69,00 57,70

70,00 57,70

71,00 58,10

72,00 59,80

73,00 57,40

74,00 61,30

75,00 61,70

76,00 62,30

77,00 62,60

78,00 62,80

79,00 63,40

80,00 63,60

Waktu (s) Temp (Celcius)

81,00 64,50

82,00 65,20

83,00 65,40

84,00 66,70

85,00 67,00

86,00 67,50

87,00 67,70

88,00 68,80

89,00 69,40

90,00 70,30

91,00 71,00

92,00 71,50

93,00 72,30

94,00 73,30

95,00 72,30

96,00 73,90

97,00 74,50

98,00 74,50

99,00 75,30

100,00 76,20

101,00 75,60

102,00 75,60

103,00 77,50

104,00 78,20

105,00 78,40

106,00 79,30

107,00 79,60

108,00 79,60

109,00 80,10

110,00 80,50

111,00 81,20

112,00 81,50

113,00 81,70

114,00 82,90

115,00 83,20

116,00 83,40

117,00 84,50

118,00 84,50

119,00 84,50

120,00 85,70

Waktu (s) Temp (Celcius)

1,00 28,40

2,00 28,50

3,00 28,70

4,00 29,20

5,00 29,20

6,00 29,40

7,00 29,60

8,00 30,40

9,00 30,50

10,00 30,70

11,00 30,90

12,00 30,12

13,00 30,14

14,00 30,14

15,00 30,20

16,00 30,21

17,00 30,25

18,00 30,27

19,00 30,30

20,00 30,32

21,00 30,34

22,00 30,36

23,00 30,37

24,00 30,40

25,00 30,50

26,00 30,51

27,00 35,20

28,00 35,40

29,00 35,60

30,00 35,90

31,00 35,10

32,00 35,74

33,00 37,10

34,00 37,40

35,00 38,20

36,00 38,40

37,00 39,00

38,00 39,70

39,00 40,80

40,00 42,50

Page 23: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

25

Waktu (s) Temp (Celcius)

121,00 86,20

122,00 86,40

123,00 86,60

124,00 87,10

125,00 87,30

126,00 87,50

127,00 87,90

128,00 88,00

129,00 88,10

130,00 88,70

131,00 88,70

132,00 89,10

133,00 89,50

134,00 89,10

135,00 90,10

136,00 89,90

137,00 90,00

138,00 90,60

139,00 89,40

140,00 89,80

141,00 90,90

142,00 91,10

143,00 91,10

144,00 91,00

145,00 90,80

146,00 90,40

147,00 91,00

148,00 91,10

149,00 91,60

150,00 91,50

151,00 91,50

152,00 91,90

153,00 91,80

154,00 92,20

155,00 92,30

156,00 92,10

157,00 92,80

158,00 92,90

159,00 93,00

160,00 93,20

Waktu (s) Temp (Celcius)

161,00 93,40

162,00 93,40

163,00 93,50

164,00 93,80

165,00 93,90

166,00 94,20

167,00 94,30

168,00 94,40

169,00 94,50

170,00 94,50

171,00 94,50

172,00 94,80

173,00 94,60

174,00 94,90

175,00 94,90

176,00 95,00

177,00 95,20

178,00 95,20

179,00 95,30

180,00 95,50

181,00 95,30

182,00 95,30

183,00 95,40

184,00 95,50

185,00 95,70

186,00 95,80

187,00 95,90

188,00 95,80

189,00 96,20

190,00 96,30

191,00 96,30

192,00 96,70

193,00 96,70

194,00 96,90

195,00 97,60

196,00 98,20

197,00 98,10

198,00 98,50

199,00 98,60

200,00 98,60

Waktu (s) Temp (Celcius)

201,00 98,80

202,00 99,30

203,00 99,00

204,00 99,50

205,00 99,50

206,00 99,80

207,00 99,40

208,00 99,80

209,00 100,20

210,00 99,90

211,00 100,10

212,00 100,40

213,00 100,30

214,00 100,40

215,00 100,70

216,00 100,80

217,00 100,50

218,00 100,70

219,00 100,70

220,00 100,70

221,00 99,30

222,00 98,70

223,00 99,40

224,00 99,10

225,00 99,70

226,00 100,10

227,00 99,90

228,00 99,80

229,00 100,20

230,00 100,30

231,00 100,30

232,00 100,30

233,00 100,70

234,00 100,50

235,00 100,60

236,00 100,90

237,00 100,00

238,00 99,80

239,00 99,60

240,00 99,80

Page 24: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

26

Tabel Lampiran 3. Terminologi matriks untuk metode elemen hingga [10]

Matriks Elastisitas Difusi Konduksi Panas

K Stiffness Difusivitas Konduktansi

F Gaya Fluks Fluks

D Perpindahan Konsentrasi Temperatur

Tabel Lampiran 4. MAC Address (64-bit unique) sensor temperatur DS18b20

Device Name MAC Address

Sensor 1 9D000001986C7C28

Sensor 2 F400000109860728

Sensor 3 500000010A003E28

Sensor 4 730000019871E628

Sensor 5 9700000198546920

Tabel Lampiran 5. Resolusi sensor temperatur ds18b20

R1 R2 RESOLUSI

(BIT)

MAX WAKTU

KONVERSI

BESAR

RESOLUSI (oC)

0 0 9 93.75ms (tconv/8) 0.5

0 1 10 187.5ms (tconv/4) 0.25

1 0 11 375ms (tconv/2) 0.125

1 1 12 750ms (tconv) 0.0625

Tabel Lampiran 6. Karakteristik sensor DS18b20

Page 25: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

27

Lampiran 1. Rumus Ketepatan

𝐾𝑒𝑡𝑒𝑝𝑎𝑡𝑎𝑛 = 1 −|𝑙𝑖𝑡𝑒𝑟𝑎𝑡𝑢𝑟 −𝑝𝑒𝑟𝑐𝑜𝑏𝑎𝑎𝑛 |

𝑙𝑖𝑡𝑒𝑟𝑎𝑡𝑢𝑟 × 100% (15)

Lampiran 2. Contoh perhitungan menggunakan metode elemen hingga.[11]

Sebuah pelat mendapat keadaan isotermal sebesar 100oC di semua sisinya kecuali di sisi atas

yang sebesar 500oC. Jika konduktivitas termal konstan dengan nilai sebesar 10 W/m

oC, bagaimana

distribusi temperaturnya dengan menggunakan metode elemen hingga elemen triangular.

Pelat tersebut dibagi menjadi 8 bagian yang sama ukurannya dengan bentuk elemen triangular,

seperti yang terlihat pada Gambar 15. Berikut ini merupakan matriks K untuk elemen 1, 3, 5,dan 7:

b1 = y2 – y4 = -0.50; c1 = x4 – x2 = -0.50

b2 = y4 – y1 = 0.50; c2 = x1 – x4 = 0.00

b4 = y1 – y2 = 0.00; c4 = x2 – x1 = 0.50

Gambar 15. Sebuah pelat dengan kondisi batas temperatur yang berbeda

Gambar 16. Diskritisasi menggunakan elemen triangular

Matriks elemen K untuk elemen 1, 3, 5, dan 7 dapat dituliskan sebagai

𝐾 1 = 𝐾 3 = 𝐾 5 = 𝐾 7 =𝑡𝑘

4𝐴

𝑏12 + 𝑐1

2 𝑏1𝑏2 + 𝑐1𝑐2 𝑏1𝑏4 + 𝑐1𝑐4

𝑏1𝑏2 + 𝑐1𝑐2 𝑏22 + 𝑐2

2 𝑏2𝑏4 + 𝑐2𝑐4

𝑏1𝑏4 + 𝑐1𝑐4 𝑏2𝑏4 + 𝑐2𝑐4 𝑏42 + 𝑐4

2

(16)

dimana luas area elemen dapat dituliskan sebagai

2𝐴 = det 1.0 0.0 0.01.0 0.5 0.01.0 0.0 0.5

= 0.25 𝑚2 (17)

dengan mensubtitusikan luas area ke persamaan 16 didapat

𝐾 1 = 𝐾 3 = 𝐾 5 = 𝐾 7 =𝑡𝑘

2

2.0 −1.0 −1.0−1.0 1.0 0.0−1.0 0.0 1.0

(18)

begitu juga dengan elemen yang lainnya dapat dihitung pula:

Page 26: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

28

𝐾 2 = 𝐾 4 = 𝐾 6 = 𝐾 8 =𝑡𝑘

2

1.0 −1.0 0.0−1.0 2.0 −1.00.0 −1.0 1.0

(19)

setelah di-assemble keseluruhan matriks tiap elemen menjadi

dapat dilihat bahwa nilai yang tidak diketahui hanyalah T5 saja yang mana selanjutnya dapat

dihitung dari node ke-5

8𝑇5 = 2𝑇2 + 2𝑇4 + 2𝑇6 + 2𝑇8 (21)

Lalu dengan mensubtitusikan T2 = T4 = T6 = 100oC dan T8 = 500

oC, didapat nilai T5 = 200

oC.

Solusi analisis untuk problem seperti ini dapat dihitung dengan: (Holman 1989)

𝑇 𝑥,𝑦 = 𝑇𝑡𝑜𝑝 − 𝑇𝑠𝑖𝑑𝑒 2

𝜋

−1 𝑛+1+1

𝑛sin

𝑛𝜋𝑥

𝑤 𝑠𝑖𝑛ℎ

𝑛𝜋𝑦

𝑤

𝑠𝑖𝑛ℎ 𝑛𝜋𝐻

𝑤

∞𝑛=1 + 𝑇𝑠𝑖𝑑𝑒 (22)

dan akan didapat hasil yang sama seperti dalam perhitungan menggunakan metode elemen hingga.

Lampiran Gambar 17. Desain antarmuka pengambilan data menggunakan PHP & AJAX

Page 27: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

29

Lampiran 3. Skema Mikrokontroller DSTINIm400

Page 28: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

30

Lampiran 4. Program utama (tws.java)

/******************************************************************************

Project Name: TiniWeatherServer

File name: tws.java (main)

Version: 5.0.1

Last Updated: 11/16/07

(C) 2007 T. Bitson, All Rights Reserved

Edited by Subhi Priatna

Things to add:

email on device error out

move chart logger into OWDevice

*****************************************************************************/

import java.net.*;

import java.io.*;

import java.util.*;

import com.dalsemi.system.*;

public class TWS

{

public static final String VERSION = "TWS 5.0.1"; public static final boolean IS_TINI = System.getProperty("os.arch").equals("TINI");

protected static boolean debugFlag = false;

protected static String system = "";

protected static Object lock;

protected static DataLogger todaysLog, yesterdaysLog = null;

private static long startTime;

private static boolean firstTime = true;

private static final char BACKSPACE = 0x08;

private static final String DEG_SYMBOL = BACKSPACE + "I";

private Prefs pr;

private WeatherStation ws;

private Wunderground wu;

private TimeSetter ts;

private WebPage webPage;

private WebWorker webWorker;

public TWS()

{

// create the lock object

lock = new Object();

// create a webWorker

webWorker = new WebWorker(lock);

// instantiate a new weather station

ws = new WeatherStation();

// create a weather underground object

wu = new Wunderground();

// create the web page

webPage = new WebPage();

// create a new time setter class, we'll run it later

ts = new TimeSetter();

// get the start time of this session

Date d = new Date();

startTime = d.getTime();

}

Page 29: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

31

// main program loop: Start the various servers, get the weather and update the

web page

public void mainLoop()

{

boolean go = true;

boolean resetFlag = true;

Charter chart = null;

BitPort bp = null;

Date date = new Date();

int minute, hour ,second ;

int lastSecond = -99;

int lastMinute = -99;

int lastHour = -99;

InputStreamReader in = new InputStreamReader(System.in);

// get bit port to Tini's activity LED

if (IS_TINI)

{

if (TINIOS.getCPU() == TINIOS.DS80C400)

bp = new BitPort(BitPort.Port3Bit5);

else

bp = new BitPort(BitPort.Port5Bit2);

}

try

{

// create the web server thread and start it

Thread webServer = new Thread(webWorker);

webServer.setName("Web Server");

webServer.start();

// build a log file name & create a log file object

todaysLog = new DataLogger();

// build a chart data file

chart = new Charter();

// if (Prefs.isChartingEnabled())

// {

// chart.reset();

// }

// enable the Watchdog Timer with a 120 second timeout

if (Prefs.isWatchdogEnabled())

TINIOS.setWatchdogTimeout(120000);

// main program loop - loop forever, getting weather data

while(go)

{

// sleep for 1 second

Thread.sleep(1000);

// toggle activity led to show we're alive

if (IS_TINI)

{

if (bp.read() == 1)

bp.clear();

else

bp.set();

}

// feed the 'dog

if (Prefs.isWatchdogEnabled())

TINIOS.feedWatchdog();

// check current time

date.setTime(System.currentTimeMillis());

second = date.getSeconds();

minute = date.getMinutes();

hour = date.getHours();

// only loop once a 20 second

if ((second % 10) == 0)

{

Page 30: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

32

//reset setiap 6 jam

if (hour == 18 && minute == 00) //RESET 6 JAM ATAU JAM6?

{

// re-read prefs file

Prefs.read();

if (debugFlag)

System.out.println("Reseting Logs");

// if data logging is on, start a new log file

if (Prefs.isDataLoggingEnabled())

{

// first, get rid of yesterday's log file

if (yesterdaysLog != null)

yesterdaysLog.deleteLog();

// then store today's log as the 'new' yesterday's log

yesterdaysLog = todaysLog;

// finally, start a new log file for today

todaysLog = new DataLogger();

}

// if charting is enabled, restart chart data files

if (Prefs.isChartingEnabled())

chart.reset();

// reset the highs & lows

ws.resetAllStats();

}

if (hour == 12 && minute == 00)

{

// re-read prefs file

Prefs.read();

if (debugFlag)

System.out.println("Reseting Logs");

// if data logging is on, start a new log file

if (Prefs.isDataLoggingEnabled())

{

// first, get rid of yesterday's log file

if (yesterdaysLog != null)

yesterdaysLog.deleteLog();

// then store today's log as the 'new' yesterday's log

yesterdaysLog = todaysLog;

// finally, start a new log file for today

todaysLog = new DataLogger();

}

// if charting is enabled, restart chart data files

if (Prefs.isChartingEnabled())

chart.reset();

// reset the highs & lows

ws.resetAllStats();

}

if (hour == 06 && minute == 00)

{

// re-read prefs file

Prefs.read();

if (debugFlag)

System.out.println("Reseting Logs");

// if data logging is on, start a new log file

if (Prefs.isDataLoggingEnabled())

{

// first, get rid of yesterday's log file

if (yesterdaysLog != null)

Page 31: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

33

yesterdaysLog.deleteLog();

// then store today's log as the 'new' yesterday's log

yesterdaysLog = todaysLog;

// finally, start a new log file for today

todaysLog = new DataLogger();

}

// if charting is enabled, restart chart data files

if (Prefs.isChartingEnabled())

chart.reset();

// reset the highs & lows

ws.resetAllStats();

}

// check if its midnite, if so re-read prefs & restart logs

if (hour == 00 && minute == 00)

{

// re-read prefs file

Prefs.read();

if (debugFlag)

System.out.println("Reseting Logs");

// if data logging is on, start a new log file

if (Prefs.isDataLoggingEnabled())

{

// first, get rid of yesterday's log file

if (yesterdaysLog != null)

yesterdaysLog.deleteLog();

// then store today's log as the 'new' yesterday's log

yesterdaysLog = todaysLog;

// finally, start a new log file for today

todaysLog = new DataLogger();

}

// if charting is enabled, restart chart data files

if (Prefs.isChartingEnabled())

chart.reset();

// reset the highs & lows

ws.resetAllStats();

}

// now go get the current weather data

if (debugFlag)

System.out.println("Getting weather at " + date.toString());

// ***** here's the call that actually gets the weather data *****

ws.getWeather();

// if data logging is enabled, log measured data

if (Prefs.isDataLoggingEnabled())

todaysLog.logData(date, ws);

// if charting is enabled, update chart files

if (Prefs.isChartingEnabled())

chart.log(date, ws);

// if time = 10 minute, crunch weather data & update web page

if ((minute % 1) == 0) //ARTINYA TRUE

{

// calc index to 24 hour data

int index = (hour * 6) + (minute / 10);

if (debugFlag)

System.out.println("24 Hour Index = " + index);

// calc averages, trend data, 24-hour diff, etc.

ws.crunchData(index);

Page 32: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

34

// now update the weather web page

webPage.updateWeatherPage(date, ws);

// update the history data

ws.updateHistories();

// update Wunderground

if (Prefs.isWUPostingEnabled())

wu.send(date, ws);

// reset weather measurement averages

ws.resetAllAverages();

}

// if its 1am, mail the error log

if (hour == 01 && minute == 00)

{

// if error log mail is enabled and log has data, mail it

if (Prefs.isErrorLoggingEnabled() && Logger.checkFileSize() > 0)

{

// mail the error log

Mailer.mailLog("TWS Log", Prefs.getErrorLogFileName());

// now delete it

Logger.deleteLog();

}

}

// if its 2am, mail yesterday's weather log

if (hour == 02 && minute == 00)

{

// if logging is enabled, mail log

if (Prefs.isLogMailingEnabled() && yesterdaysLog != null)

Mailer.mailLog(yesterdaysLog.getFilename(),

yesterdaysLog.getFilePathname());

}

// if its 3:30 am, set the clock

if (hour == 03 && minute == 30)

{

// update the real-time clock

if (Prefs.isAutoTimeSetEnabled())

new Thread(ts).start();

}

// update the time

lastSecond = second;

lastMinute = minute;

lastHour = hour;

// clean up the mess we left behind

java.lang.System.gc();

}

// check keyboard if not running on Tini

if (!IS_TINI)

{

if (in.ready())

if (in.read() == 'q')

go = false;

}

}

}

catch(Throwable t)

{

Logger.log("mainLoop(): " + t);

t.printStackTrace();

}

finally

{

ws.close();

}

Page 33: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

35

}

public static boolean setTimeZone()

{

try

{

if (debugFlag)

System.out.println("Setting Tini's Timezone...");

// get the OS timezone

String tz = com.dalsemi.system.TINIOS.getTimeZone().trim();

if (debugFlag)

System.out.println("Timezone = " + tz);

// get if time zone is default

if (!tz.equals("GMT"))

{

// compare to the java time zone i.e. has it already been set?

if (!TimeZone.getDefault().getID().equals(tz))

{

// now try to set the java timezone

TimeZone zone = TimeZone.getTimeZone(tz);

if (zone == null)

{

try

{

if (tz.charAt(0) != '-')

tz = "+" + tz;

com.dalsemi.system.TINIOS.setTimeZone(tz);

zone = TimeZone.getDefault();

}

catch(NumberFormatException nfe)

{ }

}

if (zone!=null)

TimeZone.setDefault(zone);

}

}

}

catch(Exception e)

{

Logger.log("Error Setting the Timezone - Check Tini's Clock");

return false;

}

return true;

}

// main routine - program starts here

public static void main(String[] args)

{

System.out.print(VERSION + " Started on " + System.getProperty("os.arch"));

System.out.println(" using " + System.getProperty("os.name"));

if (args.length != 0)

{

if (args[0].equals("-d"))

{

System.out.println("debug on");

debugFlag = true;

}

}

// set Tini's Timezone

if (IS_TINI)

setTimeZone();

System.out.println("TWS Local Time = " + new Date());

try

{

// get the preferences

Page 34: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

36

Prefs.read();

Logger.log("TWS " + VERSION + " Started on " +

System.getProperty("os.arch"));

// create an instance of the weather server

TWS tws = new TWS();

// start the main loop

tws.mainLoop();

}

catch(Throwable t)

{

Logger.log("Exception: Main() " + t);

}

finally

{

Logger.log("TiniWeatherServer Stopped");

System.exit(1);

}

}

}

/******************************************************************************

Project Name: TiniWeatherServer

File name: TempDevice.java

Version: 2.0

Last Updated: 04/04/07 T. Bitson edited by Subhi Priatna

*****************************************************************************/

import com.dalsemi.onewire.*;

import com.dalsemi.onewire.adapter.*;

import com.dalsemi.onewire.container.*;

public class TempDevice extends OWDevice

{

protected float result = NO_VALUE;

private OneWireContainer28 device = null;

public TempDevice(DSPortAdapter adapter, OWHub hub, String identifier)

{

super(identifier);

this.hub = hub;

// do we have a valid serial number?

if (getSerialNum().substring(14).equals("28"))

{

// activate the hub channel for ths device

hub.activateChannel(getHubChannel(), getHubPort());

device = new OneWireContainer28(adapter, getSerialNum());

if (device != null)

{

// looks like the device is valid, enable it

deviceDisabled = false;

// does this temp sensor have greater than .5 deg resolution?

try

{

if (device.hasSelectableTemperatureResolution())

{

// if so, set resolution to max

byte[] state = device.readDevice();

device.setTemperatureResolution(device.RESOLUTION_9_BIT, state);

device.writeDevice(state);

Logger.log("Temp Device Supports High Resolution");

}

}

catch (OneWireException e)

{

Logger.log("Error Setting Resolution: " + e);

}

}

// couldn't create the one wire container

else

Page 35: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

37

{

Logger.log("Temperature Sensor Not Found - Disabling Device");

device = null;

}

// deactivate hub channel

hub.deactivateChannel(getHubChannel(), getHubPort());

}

// invalid serial number string

else

{

Logger.log("Invalid or No " + identifier + " Device - Device Disabled");

}

}

public boolean read()

{

if (deviceDisabled)

return false;

// activate the hub channel for ths device

hub.activateChannel(getHubChannel(), getHubPort());

try

{

// is device there?

if (device.isPresent())

{

// read temperature

if (debugFlag)

System.out.println("Temperature: " + device.getName() + " " +

device.getAddressAsString());

byte[] state = device.readDevice();

device.doTemperatureConvert(state);

state = device.readDevice();

result = (float)device.getTemperature(state)-1;

// convert to degs F

if (Prefs.isTempDegsF())

result = result * 9.0f/5.0f + 32f;

if (debugFlag)

System.out.println("Temperature = " + result + " degs");

// sum up all measurements for average

sum += result;

num++;

// check highs & lows

if (result > high)

high = result;

if (result < low)

low = result;

// if we're here, we must have a good measurement

// deactivate hub channel

hub.deactivateChannel(getHubChannel(), getHubPort());

return true;

}

else // device isn't there

{

Logger.log("Temperature Sensor Not Present");

}

}

catch (OneWireException e)

{

Logger.log("Error Reading Temperature: " + e);

}

// increment error count and check if we have exceeded allowed errors

Page 36: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

38

errors++;

if (errors >= Prefs.getAllowedErrors())

{

Logger.log("Temperature Sensor Disabled");

deviceDisabled = true;

result = NO_VALUE;

}

// deactivate hub channel

hub.deactivateChannel(getHubChannel(), getHubPort());

return false;

}

public float getCurrentMeasurement()

{

return result;

}

public String getCurrentMeasurementStr()

{

return formatFloat(result, numDigits);

}

public void midnightReset()

{

// reset the highs and lows

high = -99;

low = 99;

//reset the device error count

errors = 0;

// if this is a valid device, re-enable it

if (device != null)

deviceDisabled = false;

}

}

/******************************************************************************

*

* Project Name: TiniWeatherServer

* File name: WeatherStation.java

* Version: 1.0.0

* Last Updated: 07/15/07

*

*

* This class provides the primary interface to the weather station. It

* utilizes the Pref class to provide weather station specific data such

* as device serial number (ID) and calibration values. A measurement

* of each device is performed by using the getWeather() method. Averages

* and trends of the data are stored in each device instance.

*

*****************************************************************************/

import java.util.*;

import com.dalsemi.onewire.*;

import com.dalsemi.onewire.adapter.*;

import com.dalsemi.onewire.container.*;

public class WeatherStation

{

private boolean debugFlag = TWS.debugFlag;

// primary weather station devices

protected TempDevice ts1;

protected TempDevice ts2;

protected TempDevice ts3;

protected TempDevice ts4;

protected TempDevice ts5;

protected OWDevice bs1;

private DSPortAdapter adapter1;

Page 37: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

39

private OWHub hub;

private static float[] y;

private float lastRain = 0;

public WeatherStation()

{

if (debugFlag)

System.out.println("Initializing Weather Station");

// get an instance of the 1-Wire adapter using the prefs

if (debugFlag)

System.out.println("Initializing Weather Station");

// get an instance of the 1-Wire adapter using the prefs

try

{

// get an insrance of Tini's External 1-Wire adapter

if (TWS.IS_TINI)

adapter1 = new TINIExternalAdapter();

else

{

if (debugFlag)

System.out.println("Trying to open adapter " + Prefs.getAdapterType() +

" on port " + Prefs.getAdapterComPort());

adapter1 = OneWireAccessProvider.getAdapter(Prefs.getAdapterType(),

Prefs.getAdapterComPort());

}

if (debugFlag)

System.out.println("Found Adapter1: " + adapter1.getAdapterName());

adapter1.beginExclusive(true);

}

catch (OneWireException e)

{

Logger.log("Error: Unable to connect to 1-Wire adapter, exiting Program - "

+ e);

System.out.println("Error: Unable to connect to 1-Wire adapter, exiting

Program - " + e);

System.exit(1);

}

// get the hub

hub = new OWHub(adapter1, Prefs.getHubIDs());

// array for trend data

y = new float[3];

// create instances of the various 1-Wire devices using the identifier

// for the device from the prefs file.

ts1 = new TempDevice(adapter1, hub, "Temp_Sensor_1");

ts2 = new TempDevice(adapter1, hub, "Temp_Sensor_2");

ts3 = new TempDevice(adapter1, hub, "Temp_Sensor_3");

ts4 = new TempDevice(adapter1, hub, "Temp_Sensor_4");

ts5 = new TempDevice(adapter1, hub, "Temp_Sensor_5");

// load the appropriate class depending on the barometer type

// dewpoint is a special case

}

public void getWeather()

{

// read each sensor. The results are saved and can be retreived using

// the getCurrentMeasurement() method

ts1.read();

ts2.read();

ts3.read();

ts4.read();

ts5.read();

resetBus(adapter1);

// print the results

if (debugFlag || !TWS.IS_TINI)

{

System.out.println("Current Temp 1 = " + ts1.getCurrentMeasurement());

System.out.println("Current Temp 2 = " + ts2.getCurrentMeasurement());

Page 38: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

40

System.out.println("Current Temp 3 = " + ts3.getCurrentMeasurement());

System.out.println("Current Temp 4 = " + ts4.getCurrentMeasurement());

System.out.println("Current Temp 5 = " + ts5.getCurrentMeasurement());

System.out.println("\n");

}

}

public void crunchData(int index)

{

// this routine should get called just before updating the web page. it

// is optimized for 10-minute intervals, but should work for any times.

// Set the history index for all devices

OWDevice.setHistoryIndex(index);

// update the wind high value

// calculate the rain rate

// update the trend data for devices that use trending

ts1.updateTrend();

ts2.updateTrend();

ts3.updateTrend();

ts4.updateTrend();

ts5.updateTrend();

}

public void updateHistories()

{

// update the history for each device

// this is done after the web page update!

ts1.updateHistory();

ts2.updateHistory();

ts3.updateHistory();

ts4.updateHistory();

ts5.updateHistory();

}

public void resetAllAverages()

{

// reset the averages for the devices

// this is also done after the web page update

ts1.resetAverages();

ts2.resetAverages();

ts3.resetAverages();

ts4.resetAverages();

ts5.resetAverages();

// reset the wind gust for this period

}

public void resetAllStats()

{

// this routine should be called at midnite to reset the highs & lows

ts1.midnightReset();

ts2.midnightReset();

ts3.midnightReset();

ts4.midnightReset();

ts5.midnightReset();

}

public void resetBus(DSPortAdapter adapter)

{

try

{

adapter.reset();

}

catch (OneWireException e)

{

Logger.log("Error Reseting 1-WIre Bus");

}

}

public void close()

{

// closes the weather station. Presently, all that needs to be done

// is to free up the 1-Wire adapter

try

{

adapter1.endExclusive();

adapter1.freePort();

Logger.log("Adapter Closed");

}

Page 39: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

41

catch (OneWireException e)

{}

}

}

/************************************************************************

Project Name: TINIWeatherStation

File name: Charter.java

Version: 2.0

Last Updated: 07/24/07 T. Bitson

This file provides the classes to store the weather data in the

neceesary files for the charting routines. Charting is enabled

in the prefs.ini file

*************************************************************************/

import java.io.*;

import java.util.*;

public class Charter

{

private static final int NUM_FILES = 5;

private static final String[] FILENAME = {"temp.log",

"temp2.log",

"temp3.log",

"temp4.log",

"temp5.log"};

private static final char DELIM = ',';

private static final String NEWLINE = "\r\n";

private static boolean debugFlag = TWS.debugFlag;

// clears the files and creates them if they dont exist

public void reset()

{

try

{

FileOutputStream file;

// create empty files. This will clear out old data

for (int i = 0; i < NUM_FILES; i++)

{

if (debugFlag)

System.out.println("Clearing Chart Data File " + Prefs.getWebPagePath()

+ FILENAME[i]);

file = new FileOutputStream(Prefs.getWebPagePath() + FILENAME[i], false);

file.close();

}

}

catch (java.io.IOException e)

{

Logger.log("Charter.init(): " + e);

}

}

// write each measurement to a log file

public void log(Date d, WeatherStation ws)

{

FileOutputStream file;

String time = convert2Time(d);;

try

{

if (debugFlag)

System.out.println("Updating Chart Data at " + time);

synchronized(TWS.lock)

{

// write the temperature & dewpoint data

Page 40: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

42

if (ws.ts1.isAvailable())

{

file = new FileOutputStream(Prefs.getWebPagePath() + FILENAME[0], true);

file.write((time + DELIM).getBytes());

file.write((ws.ts1.getCurrentMeasurementStr() + NEWLINE ).getBytes());

file.close();

}

// write temperature 2

if (ws.ts2.isAvailable())

{

file = new FileOutputStream(Prefs.getWebPagePath() + FILENAME[1], true);

file.write((time + DELIM).getBytes());

file.write((ws.ts2.getCurrentMeasurementStr() + NEWLINE).getBytes());

file.close();

}

// write temperature 3

if (ws.ts3.isAvailable())

{

file = new FileOutputStream(Prefs.getWebPagePath() + FILENAME[2], true);

file.write((time + DELIM).getBytes());

file.write((ws.ts3.getCurrentMeasurementStr() + NEWLINE).getBytes());

file.close();

}

// write temperature 4

if (ws.ts4.isAvailable())

{

file = new FileOutputStream(Prefs.getWebPagePath() + FILENAME[3], true);

file.write((time + DELIM).getBytes());

file.write((ws.ts4.getCurrentMeasurementStr() + NEWLINE).getBytes());

file.close();

}

// write temperature 5

if (ws.ts5.isAvailable())

{

file = new FileOutputStream(Prefs.getWebPagePath() + FILENAME[4], true);

file.write((time + DELIM).getBytes());

file.write((ws.ts5.getCurrentMeasurementStr() + NEWLINE).getBytes());

file.close();

}

}

}

catch(Exception e)

{

Logger.log("Charter.log() " + e.toString());

}

}

// converts a time in millisecs to hh:mm

private String convert2Time(Date d)

{

int hour = d.getHours();

int minute = d.getMinutes();

String timeString = "";

// build hour

if (hour < 10)

timeString += "0";

timeString = timeString + Integer.toString(hour) + ":";

// build minute

if (minute < 10)

timeString += "0";

timeString = timeString + Integer.toString(minute);

return (timeString);

}

}

Page 41: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

43

Lampiran 5. Contoh konfigurasi pada (prefs.ini)

# TiniWeatherServer Preferences File

#

# Default settings for Tini

#

Prefs_Version = 5.0

#

#

# Primary 1-Wire Adapter

Adapter_Type = DS9097U

Adapter_Com_Port = TINIExternalAdapter

#

# Hub Info

Number_Of_Hub_Channels = 0

Hub_Channel_1 = 0000000000000000

Hub_Channel_2 = 0000000000000000

Hub_Channel_3 = 0000000000000000

#

# 1-Wire Sensors - device serial number + hub channel & port

Temp_Sensor_1 = 9D000001986C7C28,0,0

Temp_Sensor_2 = F400000109860728,0,0

Temp_Sensor_3 = 500000010A003E28,0,0

Temp_Sensor_4 = 730000019871E628,0,0

Temp_Sensor_5 = 9700000198546928,0,0

Temp_Units_is_Degs_F = false

# System Settings

Errors_Before_Device_Disable = 10

Watchdog_Timer_Enable = false

Error_Logging_Enable = true

Error_Logging_Path_Name = /web/tws.log

Data_Logging_Enable = true

Mail_Logs_Enable = false

MailTo_Address = [email protected]

MailFrom_Address = [email protected]

Auto_Time_Set_Enable = true

Time_Server_Address = time.nist.gov

# Web Server Settings

Web_Server_Root_Directory = /web/

Web_Server_Default_Page = weather.xml

Web_Server_Port = 80

Web_Server_Log_Enable = false

Web_Log_Filename = /web/web.log

# Web Page Settings

Weather_Page_Path = /web/

XML_Page_Name = weather.xml

XSL_Page_Name = weather_image.xsl

Web_Counter_Start = 0

Charting_Enabled = true

# Weather Underground

WU_Posting_Enabled = false

WU_Username = username

WU_Password = password

# Beta Brite sign Settings

Enable_BetaBrite = false

BetaBrite_Port = serial4

Temperature_Hi_Red = 24

Temperature_Lo_Green = 24

Lampiran 6. Program XML (weather.xml)

<?xml version="1.0" encoding="iso-8859-1"?>

<?xml-stylesheet href="weather.xsl" type="text/xsl"?>

<xml>

<page>

<version>TWS 5.0.0c</version>

<date>8/4/07 7:20 AM</date>

<freemem>458k</freemem>

<hits>284859</hits>

<uptime> 12 Days, 10 Hours, 40 Mins</uptime>

</page>

<temperature1>

<current>78.3</current>

Page 42: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

44

<high>82.4</high>

<low>78.2</low>

<trend>0.2</trend>

<day>2.4</day>

</temperature1>

<temperature2>

<current>-</current>

<high>-</high>

<low>-</low>

<trend>-</trend>

<day>-</day>

</temperature2>

<humidity>

<current>72.5</current>

<high>73.2</high>

<low>57.1</low>

<trend>1.3</trend>

<day>-7.4</day>

</humidity>

<dewpoint>

<current>69.0</current>

<high>69.3</high>

<low>65.9</low>

<trend>0.7</trend>

<day>-0.4</day>

</dewpoint>

<wind>

<current>0.8</current>

<direction> E </direction>

<high>4.9</high>

<peak>1.2</peak>

<trend>0.0</trend>

<day>-0.2</day>

</wind>

<pressure>

<current>30.03</current>

<high>30.03</high>

<low>29.98</low>

<trend>0.04</trend>

<day>0.01</day>

</pressure>

<rain>

<ytd>7.00</ytd>

<midnite>0.00</midnite>

<rate>0.00</rate>

<day>0.00</day>

</rain>

<lightning>

<current>0.0</current>

<high>1.0</high>

<trend>0.0</trend>

<day>-0.0</day>

</lightning>

</xml>

Page 43: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

45

Lampiran 7. Program PHP (index.php) untuk mengambil data dari mikrokontroller ke PC Server

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>Get Temperature Data by agrdsn</title>

<link rel="stylesheet" href="style.css" type="text/css" />

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript" src="./jquery-1.3.2.min.js"></script>

<script language="javascript">

function get_data() {

$('#ambil_data').html('<small>Mohon tunggu... Sedang mengambil data

dan menyimpan ke dalam database MySQL. <a

href="http://localhost/tini/ajax/" style="color:red;text-

underline:none;">stop</a></small></smal><p><img src="./ajax-

loader.gif" width="220" height="19" /></p>');

setTimeout('getTemp()', 1000);

}

function getTemp() {

$("#random").show("slow").fadeIn();

$("#random").load("getTemp.php", '',callback);

}

function callback() {

$("#random").show("slow");

setTimeout("getTemp();", 1000*2);

}

//$(document).ready(getTemp);

</script>

</head>

<body>

<!-- division of page -->

<div id="page">

<h3>Get Temperature Data</h3>

<?php include_once "date.php"; ?>

<hr>

<!-- division of the left -->

<div id="left">

<?php

/* show the svg chart

$doc = new DOMDocument();

$doc->loadHTML('<html><body><embed

src="../charts/svg_chart2/chart.svg" width="600"

height="450" type="image/svg+xml" /></body></html>');

echo $doc->saveHTML();*/

include_once('./table.php');

?>

</div>

<!-- division of right -->

<div id="right"> <?php include_once('prosedur.php'); ?>

<div id="random"></div>

<div id="ambil_data">

<p>Mulai ambil data :

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button"

onclick="get_data()" value="Get Data!" /></p>

</div>

</div>

<!-- division of bottom -->

<div id="bottom">

Copyright &copy;2009 agung.ridwan.sn <br />

Best Viewed on Mozilla Firefox

</div>

</div>

</body>

</html>

Page 44: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

46

Lampiran 8. Program PHP (table.php) untuk menampilkan tabel temperatur

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xml:lang="en-us" xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

<title>Temperature Data</title>

<link rel="stylesheet" href="table-sorter/jq.css" type="text/css" media="print,

projection, screen">

<link rel="stylesheet" href="table-sorter/style.css" type="text/css" media="print,

projection, screen">

<script type="text/javascript" src="table-sorter/jquery-latest.js"></script>

<script type="text/javascript" src="table-sorter/jquery.js"></script>

<script type="text/javascript" src="table-sorter/chili-1.js"></script>

<script type="text/javascript" src="table-sorter/docs.js"></script>

<script type="text/javascript">

$(function() {

$("#tablesorter-demo").tablesorter({sortList: [[0,0]], widgets:['zebra']});

});

</script>

</head>

<body>

<?php

include_once 'dbkoneksi.php';

//4. Definisikan query

$sql = "SELECT `datetime`, `temp1`, `temp2`, `temp3`, `temp4`, `temp5` FROM `log`

ORDER BY `id` DESC";

//5. Eksekusi query dan hasil disimpan dalam object resultset

// resultset : object dari kumpulan data2 hasil query yang berbentuk table

$result = mysql_query($sql,$koneksi) or die (mysql_error().' :Query Gagal'.$sql);

$juduls = array("No.","Date","Temp 1","Temp 2","Temp 3","Temp 4","Temp 5");

?>

<table id="tablesorter-demo" class="tablesorter" border="0" cellpadding="0"

cellspacing="1">

<thead>

<tr>

<?php

foreach($juduls as $j)

{

echo '<th class="header">'.$j.'</th>';

}

?>

</tr>

</thead>

<tbody>

<?php

//6. Populasi/tampilkan data

$counter = 1;

while ($row = mysql_fetch_array($result))

{

if(!counter%2){

echo '<tr class="even"><td>'.$counter.'</td>';

echo '<td>'.$row['datetime'].'</td>';

echo '<td>'.$row['temp1'].'</td>';

echo '<td>'.$row['temp2'].'</td>';

echo '<td>'.$row['temp3'].'</td>';

echo '<td>'.$row['temp4'].'</td>';

echo '<td>'.$row['temp5'].'</td></tr>';

}else{

echo '<tr class="odd"><td>'.$counter.'</td>';

echo '<td>'.$row['datetime'].'</td>';

echo '<td>'.$row['temp1'].'</td>';

echo '<td>'.$row['temp2'].'</td>';

echo '<td>'.$row['temp3'].'</td>';

Page 45: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

47

echo '<td>'.$row['temp4'].'</td>';

echo '<td>'.$row['temp5'].'</td></tr>';

$counter++;

}

}

?>

</tbody>

</table>

</body>

Lampiran 9. Program PHP (dbkoneksi.php) untuk menghubungkan ke Database MySQL

<?php

//1. Definisikan variable koneksi database

define('DBSERVER','localhost');

define('DBUSER','root');

define('DBPASS','yourpassword');

define('DBNAME','tws');

//2. Lakukan koneksi ke database server

$koneksi = mysql_connect(DBSERVER,DBUSER,DBPASS);

if ($koneksi) //bernilai false jika gagal

{

// echo '<h1>Koneksi berhasil ..</h1>';

}

else

{

echo '<h1>Koneksi gagal ..</h1>';

}

//3. Akses basis data

if (mysql_select_db(DBNAME,$koneksi))

{

// echo '<h1>Basis data '.DBNAME.' ditemukan!</h1>';

}

else {

echo '<h1>Basis data '.DBNAME.' tidak ditemukan!</h1>';

}

?>

Lampiran 10. Program PHP (logsaver.php) untuk menyimpan data temperatur <html>

<head>

<title>Get Temperature with SimpleXML</title>

</head>

<body>

<?php

// alamat DSTINIm400: 192.168.1.3

$url = fopen ("http://192.168.1.3/", "r");

if (!$url) {

echo "<br><h2>Failed to open file.</h2>";

echo "Please check your connectivity.";

exit;

}

else {

$xml = simplexml_load_file("http://192.168.1.3");

foreach($xml->temperature1 as $temp1) {

echo "T1 = ".$temp1->current.". MAC: 9D000001986C7C28.<br />";

}

foreach($xml->temperature2 as $temp2) {

echo "T2 = ".$temp2->current.". MAC: F400000109860728.<br />";

}

foreach($xml->temperature3 as $temp3) {

echo "T3 = ".$temp3->current.". MAC: 500000010A003E28.<br />";

}

foreach($xml->temperature4 as $temp4) {//diganti dr 65000001096B3A28 -

>4A00000198812628

Page 46: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

48

echo "T4 = ".$temp4->current.". MAC: 730000019871E628.<br />";

}

foreach($xml->temperature5 as $temp5) {

echo "T5 = ".$temp5->current.". MAC: 9700000198546928.<br />";

}

foreach($xml->page as $tgl) {

echo "Date taken at ".$tgl->date.".<br />";

}

// Some add files

// Insert log to database

mysql_connect('localhost', 'root', 'yourpassword')

or die("Could not connect : " . mysql_error());

mysql_select_db('tws')

or die("Could not select database");

//$data = get_data("SELECT `datetime`, `temp1`, `temp2`, `temp3`, `temp4` FROM

`log` ORDER BY `datetime` DESC LIMIT 0,10");

//print_result($data);

$last_time = $data[0]['datetime'];

//var_dump($last_time);

//temporary

$t1 = $temp1->current;

$t2 = $temp2->current;

$t3 = $temp3->current;

$t4 = $temp4->current;

$t5 = $temp5->current;

$tg = $tgl->date;

/*

// Get current date and temp from XML

$currents = array($t1,$t2,$t3,$t4);

foreach($currents as $value) {

if ($value['tag']=='DATE' or $value['tag']=='CURRENT') $currents[] =

$value['value'];

} */

$datetime = tini2mysql_datetime($tg);

//var_dump($currents);

if (strcmp($last_time, $datetime) < 0) {

put_data("INSERT INTO `log` (`datetime`, `temp1`, `temp2`, `temp3`, `temp4`,

`temp5`)

VALUES ('$datetime', '$t1', '$t2', '$t3', '$t4', '$t5')");

}

/*

echo "t1 = ".$t1."<br>";

echo "t2 = ".$t2."<br>";

echo "t3 = ".$t3."<br>";

echo "t4 = ".$t4."<br>";

echo "tg = ".$tg."<br>";

*/

}

// Convert datetime to MySQL format

function tini2mysql_datetime($tini_datetime) {

$datetime = explode(' ', $tini_datetime);

$date = $datetime[0];

for ($i=1; $i<count($datetime); $i++) {

if ($datetime[$i] != '') {

$time = $datetime[$i];

break;

}

}

$ampm = $datetime[$i+1];

$date = explode('/', $date);

if ($date[0]<10) $date[0] = '0'.$date[0];

if ($date[1]<10) $date[1] = '0'.$date[1];

$date = '2'.$date[2].'-'.$date[1].'-'.$date[0];

$time = explode(':', $time);

if ($ampm == 'PM') $time[0] = $time[0] + 12;

if ($time[0]<10) $time[0] = '0'.$time[0];

Page 47: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

49

$sec = date("s");

$time = $time[0].':'.$time[1].':'.$sec;

return $date.' '.$time;

}

function put_data($query) {

return mysql_query($query) or die('Error ' . substr($query,0,6) . ': ' .

mysql_error());

}

?>

Lampiran 11. Stylesheet CSS (style.css) /* CSS Document */

#page{

margin:0px auto;

width:950px;

border: 1px solid gray;

}

#page #atas{

text-align: center;

font-family: helvetica;

}

#page #left{

width: 600px;

height: 100%;

float:left;

background-color: white;

padding-left: 2em;

}

#page #right{

width: 300px;

height: 1000px;

float: right;

background-color: #ecf3fb;

border-left: 1px solid gray;

}

#page #right #ambil_data{

padding-left: 20px;

background-color: green;

color: white;

font-style: bold;

}

#page #right #random{

font-size:10pt;

}

#page #bottom{

clear: both; /*biar muncul di Firefox*/

background-color: gray;

text-align: center;

font-size: 10pt;

font-family: helvetica;

height: 40px;

color: white;

overflow: auto; /*kalau di firefox,bisa turun.tapi IE+opera kagak.f(x):bisa

tambahin scroll*/

}

Page 48: PENGUKURAN DISTRIBUSI TEMPERATUR PADA PELAT … · perhitungan komputasi. Metode numerik yang dipakai pada penelitian ini adalah metode elemen hingga (Finite Element Method). ...

50

Lampiran 12. SQL Struktur data tws table log

-- Host: localhost

-- Waktu pembuatan: 25. Juni 2010 jam 11:30

-- Versi Server: 5.0.51

-- Versi PHP: 5.2.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";# MySQL balikkan hasil kosong (a.k. baris

yang kosong).

--

-- Database: `tws`

--

CREATE DATABASE tws2;

USE tws2;

--

-- Struktur dari tabel `log`

--

CREATE TABLE IF NOT EXISTS `log` (

`id` int(11) NOT NULL auto_increment,

`datetime` timestamp NOT NULL default CURRENT_TIMESTAMP on update

CURRENT_TIMESTAMP,

`temp1` float NOT NULL,

`temp2` float NOT NULL,

`temp3` float NOT NULL,

`temp4` float NOT NULL,

`temp5` float NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=543 ;

--

-- Struktur dari tabel `log`

--

CREATE TABLE IF NOT EXISTS `log` (

`id` int(11) NOT NULL auto_increment,

`datetime` timestamp NOT NULL default CURRENT_TIMESTAMP on update

CURRENT_TIMESTAMP,

`temp1` float NOT NULL,

`temp2` float NOT NULL,

`temp3` float NOT NULL,

`temp4` float NOT NULL,

`temp5` float NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=543 ;