20
HASIL DAN PEMBAHASAN Pembuatan alat kontrol dan pengujian sensor sesuai dengan rancangan dan metode yang telah direncanakan. Selanjutnya, hasil – hasil percobaan akan dibahas menurut bagin – bagian dari system control. Sensor Temperatur Device yang di pakai untuk sensing temperatur adalah DS18B20. Device ini sudah terintegrasi dengan sensor temperatur semikonduktor didalamnya, dan terdapat dalam 2-byte memori scratchpad yang menyimpan data temperatur yang sudah setara degan derajat celcius. Sehingga pengujiannya tidak dapat secara langsung karena keluaranya sudah dalam bentuk digital dengan format seperti pada Gambar 17.
public class WeatherStation { …. private DSPortAdapter adapter1; … adapter1 = OneWireAccessProvider.getAdapter(Pr efs.getAdapterType(), Prefs.getAdapterComPort()); … System.out.println("Found Adapter1: " + adapter1.getAdapterName()); … adapter1.beginExclusive(true); … }
Pada class ini kita ingin megakses adapter 1-wire karena kita memakai sensor yang mendukung 1-wire. Fungsi dari adapter adalah sebagai: Inisialisasi komunikasi jaringan Bertugas sebagai penerjemah dari host port dan 1-wire network yang dikontrol Mengirim pulsa pemograman Mengatur pencarian alamat device public class TempDevice extends OWDevice { … private OneWireContainer28 device = null; … device = new OneWireContainer28(adapter, getSerialNum()); … … byte[] state = device.readDevice(); device.setTemperaturResolution(devi ce.RESOLUTION_12_BIT, state);
Gambar 17. Format data keluaran DS18B20
Oleh karena itu, untuk pengujian kami menggunakan mikrokontroller TINI sebagai data collector, dan hasilnya akan dibandingkan dengan pembacan temperatur dari Extech Digital Thermometer. Untuk mengakses DS18B20 dari TINI kita membutuhkan software atau firmwork yang kita buat dengan bahasa pemograman java dan dijalankan diTINI. Firmwork terdiri dari class – class yang saling mendukung, yang digunakan disini adalah TWS (Tini Web Sever) versi 5.01. Firmwork ini dapat kita edit sesuai kebutuhan. Dua class yang penting untuk mengakses DS18B20, yaitu class TempDevice dan WeatherStation.
device.writeDevice(state); … … byte[] state = device.readDevice(); device.doTemperaturConvert(state); state = device.readDevice(); result=(float)device.getTemperatur( state); // convert to degs F if (Prefs.isTempDegsF()) result = result*9.0f/5.0f+32f; … … }
Setelah kita dapatkan adapter, kemudian hasil tesebut kita ambil ke class TempDevice. Class ini bertugas untuk mengakses secara langsung device 1-wire
21
melalui container. Container adalah akses high-level yang tersedia oleh keluarga device dalam hal ini adalah DS18B20. Dalam container terdapat method yang salah satunya adalah untuk mendapatkan temperatur dari device yaitu method getTemperatur. Salah satu keunggulan lain dari DS18B80 device adalah kita dapat menentukan resolusi dari keluaran sensor dengan software tampa tambahan hardware. Resolusi yang mungkin adalah 9 bit (0.5oC), 10 bit (0.25oC), 11 bit (0.125 oC) dan 12 bit (0.0625 oC). Resolusi dapat kita bentuk melalui container dengan syntax setTemperaturResolution. Pengaturan resolusi tadi secara langsung akan mempengaruhi waktu konfersi temperatur dari sensor, terlihat pada Gambar 18.
Dari Gambar 19 dapat dilihat bahwa terdapat perbedaan hasil pembaacan temperatur oleh DS18B20 dan EXTECH. Pembacaannya memiliki perbedaan sekitar 1oC, oleh karena itu perlu adanya kalibrasi pada divice DS18B20, yaitu dengan mengurangkan hasil pembacaan DS18B20 dengan 1. Dari data yang sama didapatkan bahwa pengukuran dengan DS18B20 didapat tingkat presisi sebesar 86.5 %. Data terlampir pada lampiran 1. Setelah melakukan kalibrasi, dilakukan ulang pengukuran temperatur setiap sensor yang digunakan dengan pembanding EXTECH thermometer ditunjukan pada Gambar 20 :
Gambar 18. Waktu konfersi DS18B20 ke temperatur Pada percobaan pendahuluan didapatkan data temperatur dari DS18B20 dengan alat Extech Digital Thermometer. Ditunjukan pada Gambar 19. Gambar 20. Grafik hubungan sensor 1 dan EXTECH thermometer terhadap waktu
Gambar 19. Grafik hubungan waktu dengan DS18b20 dan EXTECH thermometer Gambar 21. Grafik hubungan sensor 2 dan EXTECH thermometer terhadap waktu
22
Gambar 22. Grafik hubungan sensor 3 dan EXTECH thermometer terhadap waktu
sensor mempunyai respon waktu rata – rata sekitar 4 s, respon waktu adalah waktu yang dibutuhkan untuk sensor merubah output dari perubahan input. Maka dapat disimpulkan semua DS18B20 mempuyai akurasi yang baik untuk kita gunakan pada penelitian ini. Dari grafik Gambar 20 sampai Gamber 23 dapat dilihat bahwa terdapat kemiripan yaitu pada daerah temperatur ruangan hasil penbacaan tiap – tiap sensor mendekati temperatur referensi,tapi ketika temperatur dinaikan pembacaan temperatur mulai kurang baik karena luas permukan DS18B20 lebih luas dibandingkan dengan luas permukaan sensor EXTECH maka EXTECH Thermometer akan lebih cepat panas di bandingkan DS18B20. Untuk lebih menyesuaikan nilai pembacaan sensor dengan nilai referensi, pemanas pada ruangan harus lebih disempurnakan agar panas yang dihasilkan merata. Sistem Pemanas Pemanas yang digunakan sangat sederhana yaitu Hair dryer, namun dapat menghasilkan udara panas yang cukup dan dapat mendorong panas tersebut menyebar ke seluruh ruangan. Pada percobaan hair dryer yang dipakai adalah dua buah. Dengan daya sekitar 400W perbuah pemanas ini mampu memanaskan ruangan maksimal sekitar 490C. seperti terlihat pada Gambar 24. Data Gambar 24 terlampir pada lampiran 6.
Gambar 23. Grafik hubungan sensor 4 dan EXTECH thermometer terhadap waktu Pada Gambar 20, merupakan hasil yang didapat oleh DS18B20 ke 1 atau kita sebut sensor 1 yang mempuyai alamat hexadecimal 9D000001986C7C28 dengan akurasi sebesar 94.6%. Data Gambar 20 terlampir pada lampiran 2. Gambar 21 didapat oleh DS18B20 ke 2 atau sensor 2 dengan alamat hexadeecimal F400000109860728 dengan akurasi mencapai 95 %. Data Gambar 21 terlampir pada lampiran 3. Gambar 22 didapat dari DS18B20 ke 3 atau sensor 3 mempunyai alamat hexadecimal 500000010A003E28 yang mempunyai akurasi sebesar 97%. Data Gambar 22 terlampir pada lampiran 4. Gambar 23 diperoleh dari DS18b20 ke 4 atau sensor 4 yang mempunyai alamat hexadecimal 65000001096B3A28 dengan akurasi mencapai 94,4%. Data Gambar 23 terlampir pada lampiran 5. Masing masing
Gambar 24. Hubugan temperatur oleh pemanas dengan waktu Dari kurva Gambar 24 didapatkan hubungan antara temperatur dari pemanas dengan waktu dapat dibagi menjadi dua wilayah kurva. Hal ini dikarenakan kenaikan temperatur yang tidak linier. yaitu wilayah 1
23
dari awal pengambilan sampai 300 s, wilayah 2 dari 320 s sampai 2060 s, ditunjukan pada Gambar 25 dan Gambar 26.
oleh karena itu pemanas menggunakan hair dryer agak kurang efektif. Untuk kontrol diperlukan pemanas yang waktu kenaikan untuk setiap derajat harus linier atau mendekati sama. Sistem pendingin Pendingin yang digunakan harus sesederhana mungkin. Akan tetapi mampu untuk mendinginkan udara dalam greenhouse. Pendingin yang biasanya dipakai dalam sebuah ruangan adalah AC. Oleh karena itu, sistem pendingin yang dipakai pada penelitian ini meniru sisitemnya. Kompresor diubah oleh es balok dan kondensornya menggunakan kipas. Setelah melakukan pengujian didapatkan, seperti terlihat pada grafik pada Gambar 27. Data Gambar 27 terlampir pada lampiran 7.
Gambar 25. Hubugan temperatur oleh pemanas dengan waktu pada daerah 1 Dari Gambar 25 didapat persamaan garis: y = 0.049x + 26.41 dari persamaan tersebut dapat diketahui bahwa untuk menaikkan temperatur 10 dari range temperatur 270 sampai kira – kira 40 diperlukan waktu sekitar 20.4 detik.
Gambar 27. Hubugan temperatur oleh pendingin dengan waktu Dari Gambar 27 diperoleh persamaan: y = -0.004x + 26.16
Gambar 26. Hubugan temperatur oleh pemanas dengan waktu pada daerah 2 Dari Gambar 26 didapatkan persamaan garis y = 0.003x + 42.36 dari persamaan tersebut dapat dihitung bahwa untuk menaikan 1o dari range temperatur 40 sampai dengan 48 diperlukan waktu 333 detik. Dari kedua range temperatur tersebut dapat dilihat bahwa terdapat perbedaan yang sangat besar dalam hal waktu penaikan temperatur,
dari persamaan tersebut diketahui bahwa waktu yang diperlukan pendingin untuk menurunkan 1o yaitu sekitar 250 detik. Pendingin yang dibuat kurang efektif karena waktu yang diperlukan untuk menurunkan temperatur lama dan pendingin ini hanya mendinginkan sampai 24o. karena es yang seharusnya berubah dari fase padat ke fase gas sedikit dan kurang maksimal dan panas yang diturunkan kecil. Program Kontrol Temperatur Secara umum program kontrol pada greenhouse terlihat pada Gambar 28.
24
Prefs_Version Mulai
Inisialisasi
Dapatkan temperatur
E=0
E <0
= 5.0 … … # 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 = 65000001096B3A28,0,0 … Temperatur_Hi_Red = 25 Temperatur_Lo_Green = 20 … Web_Server_Root_Directory = /web/ Web_Server_Default_Page = weather.xml Web_Server_Port = 80 … …
E = SP - PV
E>0
diam
pendingin
pemanas
Dapatkan temperatur
Selesai
Gambar 28. Diagram alir program control Langkah pertama adalah inisialisasi konfigurasi program, yang terletak pada file prefs.ini contoh file dapat diihat dilampiran. Pada file tersebut terdapat beberapa kofigurasi yang harus diisi seperti tempat halaman utama web, tempat menyimpan data dan yang terpenting adalah daftar alamat sensor yag kita pakai dan memasukan jangkauan set point, seperti contoh dibawah ini.
Setelah inisialisasi konfigurasi, kemudian melakukan inisialisasi program. Hal tersebut dilakukan oleh main class TWS.java dan memanggil class – class yang terhubung dengannya termasuk class TempDevice namun ada sedikit perubahan pada class WeatherStation karena memakai 4 sensor yaitu penambahan : public class WeatherStation { … protected TempDevice ts1; protected TempDevice ts2; protected TempDevice ts3; protected TempDevice ts4; … 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"); … … public void getWeather() { … ts1.read(); ts2.read(); ts3.read(); ts4.read(); … } }
25
Setelah melakukan pemanggilan class – class yang bersangkutan main class akan berjalan dan mendapatkan temperatur melalui method getWeather()pada class WeatherStation dan akan memanggil kembali setelah 10 detik. Pada main program terlihat seperti: public class TWS { private WeatherStation ws; … if ((second % 10) == 0){ … ws.getWeather(); … float temperaturt = (ws.ts1.getCurrentMeasurement()+ws. ts2.getCurrentMeasurement() +ws.ts3.getCurrentMeasurement()+ws. ts4.getCurrentMeasurement())/4; if (temperaturt > pr.getBetaBriteHiTemp()){ pemanas.set(); pendingin.clear(); kipas.clear (); }else if (temperaturt < pr.getBetaBriteLoTemp()){ pemanas.clerar(); pendingin.set(); kipas.set(); } else { pemanas.set(); pendingin.set(); kipas.set(); } } }
Setelah mendapat temperatur rata – rata dari empat sensor, main class akan melakukan perbandingan dengan set point yang didapat dari prefs.ini dan mendapatkan error. Nilai error inilah yang akan digunakan untuk melakukan tindakan selanjutnya jika error memiliki nilai positif atau lebih besar dari nol artinya temperatur greenhouse terlalu dingin dari set point maka pemanas akan menyala. Jika error bernilai negative atau lebih kecil dai nol yang berarti temperatur greenhouse terlalu panas dari setpoin maka pendingin akan berjlan. Jika idak diantara keduanya maka pemanas dan pendingin matikan. Seperti terlihat pada syntax di atas. Main program akan mengecek kembali temperatur dan sisitem kontrol setelah 10 detik
terus menerus sampai program dimatikan. Hasil data akan disimpan dalam TINI dalam bentuk file berakhiran log, hal ini di atur oleh class DataLogger dan Logger. pengaturan penyimpanan log file berada pada file prefs.ini. Untuk memonitoring greenhouse yang kita buat, terdapat fasilitas user interface. Sehingga lebih menarik dan memudahkan ketika memonitoring. Prinsipnya yaitu client-server, TINI kita jadikan server sedangkan komputer yang mengakses kita jadikan client. Pada sisi client, user interface dapat di akses melalui jaringan dengan menggunakan web browser seperti internet exploler dan Mozilla firefox, karena user interfacenya di buat dengan bahasa XHTML, yaitu HTML yang berisi data XML dengan XLS. Syntaxnya yaitu : html> <script> function loadXMLDoc(fname) { var xmlDoc; … function displayResult() { xml=loadXMLDoc("weather.xml"); xsl=loadXMLDoc("weather_image.xsl") ; … …