BAB IV IMPLEMENTASI DAN PENGUJIAN
Pada Bab ini penulis menjelaskan mengenai langkah-langkah praktek untuk memproses data suhu air yang diperoleh kemudian diolah selanjutnya di tampilkan hasil pengukuran yang didapat dari semua proses pengujian untuk mengetahui tingkat keberhasilan dari hasil analisa yang telah dibahas sebelumnya. Tujuan dari pengujian ini adalah untuk mengetahui kinerja dari sistem yang berupa kehandalan dan ketepatan eksekusi antara program dengan modul yang dibuat untuk mengontrol sistem yang ada, dan tidak menutup kemungkinan adanya error (bugs) serta kekurangan-kekurangan dalam sistem yang telah dibuat. Untuk memudahkan dalam menganalisa dan menghindari adanya eror, maka sebelum semua program digabungkan menjadi program yang terintegrasi, maka sebaiknya dilakukan pengujian program dari masing-masing bagian secara terpisah. Pengujian keseluruhan yang dilakukan pada bab ini. 4.1.
Pengujian Elemen Termo Elektrik Pengujian Elemen Termo Elektrik dimaksudkan untuk mengetahui berapa
lama proses pendinginan pada tangki akuarium, sebagai acuan diletakkan termometer digital pada air yang akan diukur suhunya. Suhu air diukur dengan kelipatan 10 detik pada setiap perubahannya dengan ukuran tabung P x L x T / 30 x 30 x 17 cm = 15,3000 cm3 atau 15.3 liter air. Pengujian elemen peltier sebagai pendingin dilakukan dengan cara memasukkan air kedalam tangki akuarium dan meletakkan termoelektrik dibelakang kaca akuarium seperti pada gambar yang tertera pada poin 3.5.2. Tata Letak Termo Elektrik dan Heatshink Fan. Pengujian ini dilakukan pada tanggal 13 Desember 2015 pukul 15:52 WIB berlokasi di Kios Arya Aquarium Jl. Srengseng Raya No. 138 – Jakarta Barat dengan suhu lingkungan terukur 32o C. Hasil dari pengujian ini diperlihatkan pada Tabel 4.1.
43 http://digilib.mercubuana.ac.id/
44
Tabel 4.1 Pengujian Pendinginan Air tidak Langsung No.
Waktu / Durasi
Jumlah Derajat Suhu
1.
10 detik
30.2o C
2.
20 detik
29.3o C
3.
30 detik
27.8o C
4.
40 detik
27.2o C
5.
50 detik
26.5o C
6.
60 detik / 1 menit
24.3o C
Hasil pengujian pendingin menggunakan elemen Termoelektrik pada Tabel
4.1
memperlihatkan
kemampuan
elemen
Termoelektrik
dalam
mendinginkan 15.3 liter air, dimana suhu lingkungan terukur 32oC dan suhu awal air pada saat itu 31,5o C, setelah 60 detik (1 menit) elemen Termoelektrik diberikan tegangan 12 VDC dan arus 6 Amper dan terjadi penurunan suhu air sebesar XoC. Penurunan suhu air 1oC, 2oC, dan 3oC dari suhu awal hampir sama waktu penurunan yang dibutuhkan per 1oC-nya, tetapi ketika suhu air mencapai penurunan 4oC, 5oC, dan 6oC waktu yang dibutuhkan untuk mendinginkan semakin lama. Gambar 4.1 memperlihatkan grafik penurunan suhu air terhadap waktu.
http://digilib.mercubuana.ac.id/
45
Grafik Penurunan Suhu 35 30 25 20 15 10 5 0 10 detik
20 detik
30 detik
40 detik
50 detik
60 detik
Gambar 4.1 Grafik Penurunan Suhu tidak Langsung 4.2.
Pengujian Elemen Termo Elektrik Langsung Pengujian elemen termo elektrik secara langsung maksudnya adalah
pengujian pendinginan air dalam tangki akuarium dilakukan secara langsung pada sisi
dingin
elemen
termo
elektrik
dengan
ditambahkan
kompnen
alumunium/heatshink yang dicelupkan kedalam air, adapaun rangkaian nya terdapat pada gambar 4.2 sebagai berikut.
Gambar 4.2 Heatshink untuk Pendinginan
http://digilib.mercubuana.ac.id/
46
Hasil yang diperoleh untuk pengujian pendinginan air pada tangki akuarium secara langsung dicelupkan didapatkan bahwa proses ini bisa memakan waktu yang cukup singkat karena tanpa proses perantara kaca akuarium lagi melainkan termo elektrik langsung mendinginkan air. Pengujian dilakakan pada hari yang sama dan tanggal yang sama serta ditempat yang sama namun mendapatkan hasil yang berbeda, adapun hasil penelitian yang penulis dapatkan diperlihatkan pada tabel 4.2. Tabel 4.2 Pengujian Pendinginan Air secara Langsung No.
Waktu / Durasi
Jumlah Derajat Suhu
1.
10 detik
30.2o
2.
20 detik
28.3o
3.
30 detik
27.6o
4.
40 detik
25.2o
5.
50 detik
24.1o
6.
60 detik / 1 menit
23.4o
Grafik Penurunan Suhu 35 30 25 20 15 10 5 0 10 detik
20 detik
30 detik
40 detik
50 detik
Gambar 4.3 Grafik Penurunan Suhu Langsung
http://digilib.mercubuana.ac.id/
60 detik
47
4.3.
Pengujian ON/OFF pada Termo Elektrik dengan Relay Termo Elektrik pada sistem pengendali temperatur Aquascape bekerja
tidak full-time melaikan berjalan sesuai dengan kebutuhan tanaman dan ekosistem, sistem pendingin akan hidup (ON) apabila suhu diatas 28 o C dan sistem pendingin akan mati (OFF) apabila suhu dibawah 23o C. Berikut Tabel Switching ON/OFF dan hasil implemtasi mengenai sistem kerja peltier untuk digunakan sebagai pendingin air dalam Aquascape : Tabel 4.3 Switching ON/OFF pada Termo Elektrik STATUS SUHU
STATUS PELTIER
HEATSHINK FAN
Jika Temperatur > 28o Celcius Jika Temperatur <= 23o Celcius
4.4.
Termo Elektrik ON
HSF ON
Termo Elektrik OFF
HSF OFF
Pengujian Keluaran Suhu dengan LCD Dari hasil proses diatas nilai yang dibaca oleh Arduino adalah nilai
keluaran sensor suhu ds 18b20, selanjutnya keluaran dari proses Arduino akan dikonversi menjadi nilai suhu yang terbaca dan akan ditampilkan ke LCD. Hasil pengujian rangkaian sensor suhu yang terbaca oleh sensor yang ditampilkan pada LCD melalui Arduino, Tabel kelauaran untuk ditampilkan pada LCD dapat dilihat pada Tabel 4.2.
http://digilib.mercubuana.ac.id/
48
Table 4.4 Pengujian Suhu Tampilan LCD Suhu terukur
Suhu Tampilan pada LCD
Termometer (oC)
(oC)
1.
23
23o
2.
24
24o
3.
25
25o
4.
26
26o
5.
27
27o
6.
28
28o
No.
Hasil pengujian suhu yang pada Tabel 4.2 terlihat bahwa tidak ada selisih antara suhu yang terukur dengan termometer dan suhu terbaca oleh sensor yang kemudian ditampilkan pada LCD, hal ini dapat disimpulkan bahwa pembacaan rangkaian sensor suhu dari ds 18b20 yang diolah melalui Arduino kemudian ditampilkan pada LCD sudah bekerja dengan baik dan sesuai dengan yang diharapkan. 4.5.
Pengujian Pin pada Board Arduino Pengujian ini dilakukan untuk mengetahui apakah port pada arduino dapat
berfungsi dengan baik atau tidak. Pengujian rangkaian arduino dilakuakn dengan memberikan program sederhana. Potongan program dibawah ini adalah listing program yang digunakan untuk pengujian rangkaian arduino :
Gambar 4.4 Skematik Pengujian Board Arduino
http://digilib.mercubuana.ac.id/
49
Gambar 4.5 Skematik Pengujian Board Arduino Dengan mengupload listing program diatas, kita dapat mengetahui apakah arduino dalam keadaan baik dengan cara meletakkan kaki positif LED pada pin 13, dan negatifnya diletakkan pada port GND arduino. Setelah mengupload program dan menempatkan LED pada pin 13, maka LED akan menyala selama satu detik dan kemudian padam selama satu detik, demikian seterusnya. Jika LED dapat menyala dan padam selama satu detik secara terus menerus, maka rangkaian board arduino dalam keadaan baik.
http://digilib.mercubuana.ac.id/
50
4.6.
Implementasi Rancangan Hardware Perancangan rangkaian hardware pada Arduino dan power supply dengan
jalur-jalur kabel yang akan diimplentasikan pada proses pensolderan agar alat dapat berfungsi dan dapat berjalan sesuai dengan rancangan yang telah dirancang pada bab 3 sebelumnya. 4.6.1. Implementasi Rangkaian Arduino dan Power Supply Implementasi pada bagian ini adalah menghubungkan Arduino dengan power supply dengan masing-masing pin yang telah dirancang sebelumnya dengan maksud power supply memberikan tegangan listrik terhadap Arduino. Adapun pin dan port kabel pada masing-masing ditampilkan pada gambar 4.4.
Gambar 4.6 Implementasi Rangkaian Kabel Arduino dan Power Supply Pin yang digunakan pada masing-masing harware antara lain : Pada Arduino digunakan pin Volt yang dihubungkan pada pin V+. Pada Arduino digunakan pin GND yang dihubungkan pada pin V4.6.2. Implementasi Rangkaian Relay, Termoelektrik dan Fan Implementasi pada bagian ini adalah menghubungkan antara pin yang terdapat pada relay dengan termoelektrik dan juga fan dengan demikian proses kerja pada bagian ini adalah relay melakukan switching on/off kepada
http://digilib.mercubuana.ac.id/
51
termoelektrik, yang sebelumnya sudah ada proses perintah yang dijalankan oleh arduinio untuk instruksi on/off tersebut dapat dikatakan relay hanya berfungsi apabila telah dapat perintah dari arduino.
Gambar 4.7 Implementasi Rangkaian Relay dengan Termoelektrik dan Fan Pin yang digunakan pada masing-masing harware antara lain : Pada Arduino digunakan pin Volt yang dihubungkan pada pin V+ termoelektrik dan fan yang dipararelkan. Pada Arduino digunakan pin GND yang dihubungkan pada pin Vtermoelektrik dan fan yang dipararelkan.
http://digilib.mercubuana.ac.id/
52
4.6.3. Implementasi Rangkaian Arduino dan Relay Implementasi pada bagian ini adalah menghubungkan antara pin yang terdapat pada Arduino dengan relay yang mana pada proses ini Arduino memberikan perintah berupa data digital 1 atau 0 yang berfungsi agar relay melakukan switching On/Off terdap termoelektrik dan fan. Adapaun gambar rangkaian nya di tampilkan pada gambar 4.6 berikut.
Gambar 4.8 Implementasi Rangkaian Kabel Arduino dan Relay Pin yang digunakan pada masing-masing harware antara lain : Pada Arduino digunakan pin 5v yang dihubungkan pada pin Vcc pada relay. Pada Arduino digunakan pin GND yang dihubungkan pada pin GND pada relay. Pada Arduino digunakan pin 31 yang dihubungkan pada pin IN4 pada relay.
http://digilib.mercubuana.ac.id/
53
4.6.4. Implementasi Rangkaian Arduino dan Sensor Suhu Implementasi pada bagian ini adalah menghubungkan antara pin yang terdapat pada Arduino dengan sensor suhu yang mana pada proses ini sensor suhu mendeteksi berapa suhu yang terdapat pada air lalu sensor suhu mengirimkan data digital yang akan seterusnya di olah oleh Arduino. Adapaun gambar rangkaian nya di tampilkan pada gambar 4.7 berikut.
Gambar 4.9 Implementasi Rangkaian Kabel Arduino dan Sensor Suhu Pin yang digunakan pada masing-masing harware antara lain : Pada Arduino digunakan pin 5v yang dihubungkan pada pin Vcc pada sensor suhu. Pada Arduino digunakan pin GND yang dihubungkan pada pin GND pada sensor suhu. Pada Arduino digunakan pin 13 yang dihubungkan pada pin IN1 pada sensor suhu.
http://digilib.mercubuana.ac.id/
54
4.6.5. Implementasi Rangkaian Arduino dan LCD Implementasi pada bagian ini adalah menghubungkan antara pin yang terdapat pada Arduino dengan LCD, pada proses ini hasil deteksisuhu oleh sensor suhu yang diperoleh dan olah oleh Arduino kemudian ditampilkan pada sebuah layar LCD. Adapaun gambar rangkaian nya di tampilkan pada gambar 4.7 berikut.
Gambar 4.10 Implementasi Rangkaian Kabel Arduino dan Sensor Suhu 4.7.
Penulisan Kode pada Arduino Penulisan
kode/script
yang
ditanamkan
(embed)
pada
papan
Mikrokontroller Arduino Mega dengan menggunakan Arduino IDE dimana void setup () adalah kode yang akan dieksekusi ketika Arduino dalam keadaan hidup dan hanya sekali dijalankan, sedangkan void loop() adalah kode yang dieksekusi secara berulang-ulang ketika arduino tersebut dalam keaadaan hidup.
http://digilib.mercubuana.ac.id/
55
4.7.1. Kode pada Sensor Suhu DS 18B20 Implementasi kode pada sensor suhu DS 18B20 dengan menanamkan (embed program) pada Arduino untuk mengoptimalkan kinerja deteksi suhu air yang berada tangki akuarium. Berikut potongan kode yang ditanamkan pada sensor suhuDS 18B20 : #include
OneWire ds(12); // on pin 10 (a 4.7K resistor is necessary)
void setup() { Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: float temperature = getTemp(); Serial.println(temperature); // Definisi suhu antara 23 - 28 derajat celcius if(temperature > 28) { digitalWrite(relay3, LOW); }else if(temperature <= 23){ digitalWrite(relay3, HIGH); } }
http://digilib.mercubuana.ac.id/
56
float getTemp(){ byte i; byte present = 0; byte type_s; byte data[12]; byte addr[8]; float celsius, fahrenheit; if ( !ds.search(addr)) { Serial.println("No more addresses."); Serial.println(); ds.reset_search(); delay(250); } Serial.print("ROM ="); for( i = 0; i < 8; i++) { Serial.write(' '); Serial.print(addr[i], HEX); } if (OneWire::crc8(addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); } Serial.println();
http://digilib.mercubuana.ac.id/
57
// the first ROM byte indicates which chip switch (addr[0]) { case 0x10: Serial.println(" Chip = DS18S20"); // or old DS1820 type_s = 1; break; case 0x28: Serial.println(" Chip = DS18B20"); type_s = 0; break; case 0x22: Serial.println(" Chip = DS1822"); type_s = 0; break; default: Serial.println("Device is not a DS18x20 family device."); } ds.reset(); ds.select(addr); ds.write(0x44, 1); delay(1000);
// start conversion, with parasite power on at the end
// maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
http://digilib.mercubuana.ac.id/
58
present = ds.reset(); ds.select(addr); ds.write(0xBE);
// Read Scratchpad
Serial.print(" Data = "); Serial.print(present, HEX); Serial.print(" "); for ( i = 0; i < 9; i++) {
// we need 9 bytes
data[i] = ds.read(); Serial.print(data[i], HEX); Serial.print(" "); } Serial.print(" CRC="); Serial.print(OneWire::crc8(data, 8), HEX); Serial.println(); // Convert the data to actual temperature // because the result is a 16 bit signed integer, it should // be stored to an "int16_t" type, which is always 16 bits // even when compiled on a 32 bit processor. int16_t raw = (data[1] << 8) | data[0]; if (type_s) { raw = raw << 3; // 9 bit resolution default if (data[7] == 0x10) {
http://digilib.mercubuana.ac.id/
59
// "count remain" gives full 12 bit resolution raw = (raw & 0xFFF0) + 12 - data[6]; } } else { byte cfg = (data[4] & 0x60); // at lower res, the low bits are undefined, so let's zero them if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms //// default is 12 bit resolution, 750 ms conversion time } celsius = (float)raw / 16.0; fahrenheit = celsius * 1.8 + 32.0; Serial.print(" Temperature = "); Serial.print(celsius); return celsius; }
http://digilib.mercubuana.ac.id/
60
4.7.2.
Kode pada Relay dan Termo Elektrik Implementasi kode pada Termo Elektrik dengan menanamkan
(embed program) pada Arduino untuk proses pendinginan air, apabila suhu pada air tidak sesuai dengan nilai yang telah didefiniskan sebelumnya maka relay
menjalankan
perintah
yang
diberikan
oleh
Arduino
untuk
menghidupkan/mematikan Termo Elektrik. Berikut potongan kode yang ditanamkan pada Termo Elektrik : int relay3 = 30; // pin arduino untuk relay yang berfungsi ON/OFF termoelektrik void setup() { pinMode(relay3, OUTPUT); digitalWrite(relay3,1); } void loop() { // put your main code here, to run repeatedly: float temperature = getTemp(); Serial.println(temperature); // Definisi suhu antara 23 - 28 derajat celcius if(temperature > 28) { digitalWrite(relay3, LOW); }else if(temperature <= 23){ digitalWrite(relay3, HIGH); }}
http://digilib.mercubuana.ac.id/
61
4.7.3. Kode pada LCD (Lyquid Crystal Display) Implementasi kode pada Termo Elektrik dengan menanamkan (embed program) pada Arduino untuk proses pendinginan air, apabila suhu pada air tidak sesuai dengan nilai yang telah didefiniskan sebelumnya maka relay menjalankan perintah yang diberikan oleh Arduino untuk menghidupkan/mematikan Termo Elektrik. Berikut potongan kode yang ditanamkan pada Termo Elektrik : #include LiquidCrystal lcd(26, 27, 22, 23, 24, 25);
void setup() { // put your setup code here, to run once: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("TECHNOQUASCAPE"); lcd.setCursor(0, 1); lcd.print("-- TA 2015 --"); delay(3000); lcd.clear(); }
void loop() { //Start LCD lcd.setCursor(0, 0);
http://digilib.mercubuana.ac.id/
62
lcd.print("TECHOQUASCAPE -"); lcd.setCursor(0, 1); lcd.print("SUHU "); lcd.setCursor(5, 1); lcd.print(temperature); delay(100);
http://digilib.mercubuana.ac.id/