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 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.
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
0 5 10 15 20 25 30 35
10 detik 20 detik 30 detik 40 detik 50 detik 60 detik
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
Gambar 4.3 Grafik Penurunan Suhu Langsung
0 5 10 15 20 25 30 35
10 detik 20 detik 30 detik 40 detik 50 detik 60 detik
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 28o 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
SUHU STATUS PELTIER
STATUS HEATSHINK
FAN
Jika Temperatur > 28o
Celcius Termo Elektrik ON HSF ON
Jika Temperatur <= 23o
Celcius Termo Elektrik OFF HSF OFF
4.4. 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.
Table 4.4 Pengujian Suhu Tampilan LCD
No. Suhu terukur
Termometer (oC)
Suhu Tampilan pada LCD (oC) 1. 23 23o 2. 24 24o 3. 25 25o 4. 26 26o 5. 27 27o 6. 28 28o
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.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.
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 V-
4.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
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 V-
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.
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
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.
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.h>
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); } }
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!"); }
// 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); // start conversion, with parasite power on at the end delay(1000); // maybe 750ms is enough, maybe not
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) {
// "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; }
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); }}
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.h>
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);
lcd.print("TECHOQUASCAPE -"); lcd.setCursor(0, 1); lcd.print("SUHU "); lcd.setCursor(5, 1); lcd.print(temperature); delay(100);