BAB IV PENGUJIAN SISTEM
Pengujian sistem yang dilakukan penulis merupakan pengujian terhadap perangkat keras dan perangkat lunak secara keseluruhan dan digunakan untuk mengetahui apakah sistem dapat berjalan sesuai yang diharapkan. Sistem yang diuji tersebut antara lain:
4.1
Pengujian Output Sensor Suhu
4.1.1 Tujuan Pengujian sensor suhu dilakukan untuk mengetahui informasi suhu sebenarnya yang terdiri dari dua node pada tempat atau kondisi yang sama pada saat pengukuran. Data yang dihasilkan oleh sensor diolah oleh arduino supaya dapat menghasilkan nilai suhu yang sebenarnya.
4.1.2 Alat yang digunakan Peralatan yang dibutuhkan pada setiap node dalam pengujian ini adalah sebagai berikut: 1. Arduino. 2. Sensor suhu /DHT11. 3. Kabel USB printer. 4. Komputer. 5. Thermometer.
35
36
4.1.3 Prosedur pengujian 1. Hubungkan sensor suhu pada arduino dengan kabel pada pin yang ditentukan. 2. Hubungkan arduino dengan komputer menggunakan kabel USB. 3. Selanjutnya aktifkan komputer dan jalankan program Arduino. 4. Upload program yang digunakan untuk membaca output sensor suhu. 5. Buka serial monitor untuk melihat output dari sensor tersebut. 6. Amati dan bandingkan output sensor dengan thermometer.
4.1.4 Hasil pengujian Pada pengujian sensor suhu dengan alat ukur yaitu thermometer, sensor suhu DHT11 akan memulai membaca suhu saat arduino dinyalakan. Pengujian dapat dilakukan seperti pada Gambar 4.1.
Gambar 4.1 Node yang Sudah Diaplikasikan pada Tanaman Jarak. Melalui hasil percobaan sensor suhu setelah melalui fungsi ini, program yang digunakan adalah:
37
void loop() { int chk = DHT11.read(2); switch (chk) { case 0: error=0; break; case -1: error=1; break; case -2: error=1; break; default: error=1; break; } suhu=(unsigned long)DHT11.temperature, 2; Serial.println(suhu); }
Gambar 4.2 Pengertian Data yang Dikirim dari Suatu Node. Setelah arduino dijalankan akan muncul tampilan seperti Gambar 4.3. Pada tampilan tersebut memiliki arti seperti pada Gambar 4.2, yaitu warna biru adalah id dari node sedangkan nilai sensor suhu ditunjukan angka pada kolom yang berwarna kuning dan kolom merah adalah nilai sensor kelembaban.
Gambar 4.3 Hasil Data dari End Point1 dan End Point2. Pada pengujian ini saat pembacaan sensor, sensor akan membaca ulang dengan delay satu menit. Hal ini disebabkan perubahan suhu membutuhkan proses sekitar 1-2menit.
38
Hasil pada sensor dan thermometer dapat dilihat pada Tabel berikut: Tabel 4.1 Hasil Pengamatan Sensor Suhu dengan Thermometer.
No
Sensor Node 1
Sensor Node 2
alat Ukur
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
32 31 31 31 31 31 31 31 31 31 31 31 32 32 32 32 32 32 32 32 31 31 31 31 31 31 31 31 31 31
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 31 30 30 31 31 30 30 30 30 30 30 30 30 30 30
Selisih Sensor dengan Alat Ukur Node 1 Node 2 2 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 2 0 2 0 1 1 1 1 2 0 2 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
39
Dari hasil Tabel 4.1 bahwa pengukuran sensor suhu yaitu DHT11, mampu bekerja dengan baik. Tingkat persentase error dari sensor suhu tersebut adalah 3.87% pada node1 sedangkan 0.43% pada node2, hasil perhitungan tersebut didapat dari rata-rata jumlah error pada masing-masing node. Menurut data sheet sensor DHT11 memiliki rentang temperatur : 0-50 ° C kesalahan ± 2 ° C, sehingga hasil dari pengukuran masih dalam toleransi.
Gambar 4.4 Alat Pengukur Suhu / Thermometer. 4.2
Pengujian Output Sensor Kelembaban
4.2.1 Tujuan Pengujian sensor kelembaban dilakukan untuk mengetahui informasi kadar air tanah sebenarnya pada tempat lokasi yang diukur.
4.2.2 Alat yang digunakan Peralatan yang dibutuhkan dalam pengujian ini adalah sebagai berikut: 1. Arduino. 2. Sensor kelembaban / SEN0114. 3. Kabel USB printer. 4. Komputer. 5. Alat ukur kelembaban /moisture meter.
40
4.2.3 Prosedur pengujian Langkah-langkah untuk melakukan pengujian sensor kelembaban adalah sebagai berikut : 1. Hubungkan sensor kelembaban pada arduino dengan kabel pada pin yang ditentukan. 2. Hubungkan arduino dengan komputer menggunakan kabel USB. 3. Selanjutnya aktifkan komputer dan jalankan program Arduino. 4. Upload program yang digunkan untuk membaca output sensor kelembaban. 5. Buka serial monitor untuk melihat output dari sensor tersebut. 6. Kemudian tunggu kurang lebih 1 menit untuk menstabilkan output sensor tersebut. 7. Amati dan bandingkan output sensor dengan moisture meter.
4.2.4 Hasil pengujian Pada pengujian sensor suhu dengan alat ukur yaitu moisture meter, sensor kelembaban yaitu SEN0114 akan memulai membaca kelembaban tanah saat arduino terhubung dengan komputer/catu daya. Pengujian dapat dilakukan seperti pada Gambar 4.5.
Gambar 4.5 Sensor Kelembaban yang Diaplikasikan pada Tanah.
41
Hasil percobaan sensor suhu setelah melalui fungsi ini, dengan cuplikan program : unsigned long soilm=(analogRead(3)); if(soilm>=0 && soilm<=358) { soil=soilm/11.93; } else if(soilm>=359 && soilm<=460) { soil=(soilm-359)/2.10; soil=soil+30; } else if(soilm>=461) { soil=(soilm-461)/1.7; soil=soil+79; }
Gambar 4.6 Moisture Meter. Pada pengujian ini saat pembacaan sensor, sensor akan membaca ulang dengan delay 1menit. Karena sensor SEN0114 mempunyai output analog, sehingga dibutuhkan sekitar 1 menit untuk mendapatkan nilai output yang stabil. Kemudian pada saat melihat hasil output sensor, bandingkan dengan moisture meter. Hasil pada sensor dan moisture meter dapat dilihat pada Tabel 4.2 sebagai berikut:
42
Tabel 4.2 Hasil Pengamatan Sensor Kelembaban dengan Moisture Meter.
No
Sensor Node 1
Sensor Node 2
alat Ukur
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
27 27 27 27 26 26 27 27 27 28 47 45 47 49 50 50 51 52 52 53 100 100 100 100 100 100 100 100 100 100
27 27 27 27 28 28 28 28 28 28 48 46 47 48 48 48 48 48 48 49 100 100 100 100 100 100 100 100 100 100
28 27 25 24 23 22 24 25 25 26 46 47 49 49 49 50 50 50 50 50 100 100 100 100 100 100 100 100 100 100
Selisih Sensor dengan Alat Ukur Node 1 Node 2 1 1 0 0 2 2 3 3 3 5 4 6 3 4 2 3 2 3 2 2 1 2 2 1 2 2 0 1 1 1 0 2 1 2 2 2 2 2 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Dengan melihat Tabel 4.2 maka dapat diketahui bahwa tingkat persentase error dari sensor kelembaban tersebut adalah 4% pada node1 sedangkan 5.14% pada node2, hasil perhitungan tersebut didapat dari rata-rata jumlah error pada
43
masing-masing node. Dengan melihat nilai error, dapat diambil kesimpulan bahwa nilai error tidak terlalu besar.
4.3
Pengujian Protokol Komunikasi
4.3.1 Tujuan Pengujian protokol konunikasi bertujuan untuk mengetahui apakah pengiriman data dari setiap node ke node yang dituju benar dan menunjukkan validasi data apabila ada perubahan data dari end point1.
4.3.2 Alat yang digunakan Peralatan yang digunakan pada setiap node dalam pengujian ini adalah sebagai berikut: 1. Arduino dan xbee s2 beserta shield. 2. Sensor DHT11 dan sensor kelembaban (hanya digunakan pada node end point1 dan end point2). 3. Komputer. 4. Program Arduino. 5. Kabel USB printer.
4.3.3 Prosedur pengujian 1. Hubungkan setiap node pada PC dengan kabel USB. 2. Selanjutnya aktifkan PC dan jalankan program Arduino. 3. Upload program masing yang digunakan pada node yang sudah ditentukan. 4. Setelah upload program selesai, buka serial monitor.
44
5. Amati dan bandingkan output masing-masing.
4.3.4 Hasil pengujian Dari percobaan ini apabila upload program berhasil dikerjakan maka program yang sudah diupload di arduino sudah berjalan. Kemudian akan muncul tampilan pengiriman data masing-masing dari node seperti pada Gambar 4.7:
Gambar 4.7 Hasil Pengiriman dan Penerimaan Data antar End Point dengan Coodinator. Proses awal dimulai dari masing-masing sensor yang mengirimkan output menuju end point, kemudian end point menambahkan angka yang berfungsi sebagai id(data) di masing-masing end point dan menggabungkan kedua data tersebut yaitu data suhu dan kelembaban. Setelah proses pemberian id dan penggabungan data maka end point mengirimkan data tersebut ke coodinator, dimana pada node coodinator ini terdapat dua proses yang sebelumnya melakukan proses pengiriman kepada endpoint user.
45
Gambar 4.8 Diagram WSN Monitoring Tanaman Jarak. Proses pertama adalah saat coodinator belum mempunyai data awal, yang dimaksud data awal adalah data yang pertama kali diterima oleh coodinator dari setiap endpoint. Sehingga apabila coodinator baru pertama kali menerima data, maka coodinator langsung mengirimkan data tersebut ke router user. Sedangkan proses kedua adalah apabila coodinator sudah memiliki nilai awal, maka coodinator akan mengirim balik ke endpoint untuk mengecek data karena ada perubahan data dari yang sebelumnya. Kemudian pada endpoint tersebut akan membandingkan data yang dikirim oleh coodinator dengan data yang diterima oleh coodinator. Apabila data yang dibandingkan oleh endpoint tersebut tidak sama maka endpoint tidak akan memprosesnya, tetapi apabila data tersebut sama maka endpoint tersebut mengirimkan data dua digit awal dari data tersebut saja. Selanjutnya apabila coodinator menerima data dua digit saja(id) maka coodinator baru mengirimkan data yang diterima sebelumnya ke router user. Proses kedua ini akan terjadi apabila direset pada bagian arduino (coodinator) dan apabila daya untuk coodinator dicabut.
46
Pada Gambar 4.7 menampilkan pengiriman data dari setiap node kepada node yang dituju (node endpoint kepada coodinator / coodinator kepada endpoint). Misalnya data dari endpoint2(node2) mengirimkan data 2231081 yang berarti data dari node2 mempunyai nilai suhu 31°C dan nilai kelembaban 81%RH kepada coodinator. Kemudian coodinator menerima data 2231081 karena coodinator hanya menerima data dari node2 dengan range >2000000 dan <3000000, dengan cuplikan program seperti ini:
else if (data_masuk>2000000 && data_masuk<3000000 || data_masuk==22) { if(data_lama2==0) { data_lama2=data_masuk; Serial.println(data_lama2 + 20000000); } else if(data_masuk==22 && data_lama2!=0) { Serial.println(data_cek2+20000000); } else if(data_masuk==data_lama2 || data_masuk==data_cek2) { Serial.println(data_lama2 + 20000000); } else if(data_masuk!=data_lama2) { data_cek2=data_masuk; data_lama2=data_cek2; Serial.println(data_cek2); } Pada proses ini tidak jauh beda dengan proses pengiriman node1 dan penerimaan oleh coodinator. Hanya terdapat perbedaan apabila node2 mempunyai awalan data 22 sedangkan dari node1 adalah 11, serta coodinator menandai apabila data tersebut dari node1 memiliki data range >1000000 dan <2000000.
47
Pengiriman data dari node2 ke coodinator, akan selalu terdapat perbedaan data. Misalnya node2 mengirimkan data 2231081 tetapi data selanjutnya adalah 2231100, apabila terjadi seperti ini coodinator akan mengrim balik kepada node2 untuk diperiksa apakah data yang dikirim oleh node2 adalah 2231100. Kemudian saat node2 menerima data 2231100 maka data tersebut dicocokkan dengan data node2 yang telah dikirimkan sebelumnya dengan cuplikan program seperti ini :
if (Serial.available()) { data_in=Serial.parseInt(); if(data_in>2000000 && data_in<3000000) { if(data_out==data_in) { Serial.print(cek);//cek =22 } } Apabila pemeriksaan data tersebut tidak sama dengan data sebelumnya maka node2 tidak akan memprosesnya tetapi melakukan proses pembacaan sensor dari awal dengan syarat proses menunggu data dari coordinator selesai. Sedangkan apabila pemeriksaan data tersebut sama maka node2 akan mengirim data 2 digit pertama dari data yang dikirimkan kepada coodinator, saat coodinator menerima data 22 maka coodinator akan mengirimkan data ke node selanjutnya(router user).
Gambar 4.9 Hasil Proses Validasi pada Endpoint.
48
Proses ini tidak hanya terjadi pada node2 ke coodinator tetapi juga node1 kepada coodinator. Dan hasil pengujian dalam Gambar 4.7 dapat ditunjukkan dalam Tabel 4.3. Tabel 4.3 Hasil Proses Protokol Komunikasi WSN. Endpoint No
Keterangan
Coodinator
Kirim
Terima
Kirim
E1→Co
1
2231100
2231100
22231100
Tidak
Ya
Tidak
Tidak
Ya
2
1131058
1131058
11131058
Ya
Tidak
Tidak
Tidak
Ya
3
2231081
2231081
2231081
Tidak
Ya
Tidak
Ya
Tidak
22
22
22231081
Tidak
Ya
Tidak
Tidak
Ya
1131025
1131025
1131025
Ya
Tidak
Ya
Tidak
Tidak
11
11
11131025
Ya
Tidak
Tidak
Tidak
Ya
2231009
2231009
2231009
Tidak
Ya
Tidak
Ya
Tidak
4
Terima
2231081
5 6
1131025
7 8
2231009
E2→Co
Co→E1
Co→E2
Co→Ru
22
22
22231009
Tidak
Ya
Tidak
Tidak
Ya
1131033
1131033
1131033
Ya
Tidak
Ya
Tidak
Tidak
11
11
11131033
Ya
Tidak
Tidak
Tidak
Ya
2231082
2231082
2231082
Tidak
Ya
Tidak
Ya
Tidak
22
22
22231009
Tidak
Ya
Tidak
Tidak
Ya
13
1131025
1131025
1131025
Ya
Tidak
Ya
Tidak
Tidak
14
2231100
2231100
2231100
Tidak
Ya
Tidak
Ya
Tidak Ya
9 10
1131033
11 12
2231082
15
1131025
11
11
11131025
Ya
Tidak
Tidak
Tidak
16
2231100
22
22
22231100
Tidak
Ya
Tidak
Tidak
Ya
1131033
1131033
1131033
Ya
Tidak
Ya
Tidak
Tidak
11
11
11131033
Ya
Tidak
Tidak
Tidak
Ya
17 18
1131033
Keterangan: 1. E1→Co = endpoint1 mengirim data ke coordinator 2. E2→Co = endpoint2 mengirim data ke coordinator 3. Co→E2 = coordinator mengirim data ke endpoint2 4. Co→Ru = coordinator mengirim data ke endpoint1
Pada proses pengiriman data dari node ke node pasti akan terjadi data crash atau terdapat data yang bertabrakan, misalnya dalam pengujian ini dalam Tabel 4.3 nomor 13. Proses dimulai dari endpoint1mengirimkan data 1131025, kemudian diterima oleh coodinator dengan data 1131025. Lalu coodinator mengirim balik ke endpoint1 karena data berbeda dengan data sebelumnya, pada
49
proses yang benar seharusnya coodinator menenrima kode 11 tetapi menerima 2231100. Proses ini terjadi karena data yang diterima coodinator dari endpoint1 dengan endpoint2 bertabrakan tetapi coodinator akan memproses data yang paling awal diterima terlebih dahulu dan selanjutnya.
4.4
Pengujian Jarak jangkau Kemampuan Pengiriman Data Xbee S2
4.4.1 Tujuan Pada pengujian ini bertujuan untuk mengetahui kemampuan jangkauan area Xbee S2 dalam melakukan pengiriman/penerimaan data pada Xbee S2.
4.4.2 Alat yang digunakan Peralatan yang digunakan pada setiap node dalam pengujian ini adalah sebagai berikut: 1. Arduino dan Xbee S2 beserta shield. 2. Sensor suhu dan kelembaban(pada node endpoint). 3. Kabel USB printer. 4. Komputer(pada node coodinator). 5. Baterai 9v(pada node endpoint).
4.4.3 Prosedur pengujian 1. Hubungkan node sebagai coodinator pada komputer dengan kabel usb. 2. Selanjutnya aktifkan komputer dan jalankan program Arduino. 3. Upload program sebagai coodinator yang digunakan pada node coodinator. 4. Setelah upload program selesai, buka serial monitor.
50
5. upload program untuk endpoint1 dan endpoint2 seperti pada saat upload program coodinator. 6. Ukur jarak antar Xbee, dan carilah jangkauan penerimaan maksimal.
4.4.4 Hasil pengujian Dari prosedur pengujian komunikasi data pada Xbee yang telah dilakukan di luar ruangan (Outdoor Area) didapatkan hasil pengamatan sebagai berikut : Tabel 4.4 Hasil Pengamatan Komunikasi Data pada Xbee Dalam Kondisi Di Luar Ruangan (Outdoor Area). No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Jarak Keterangan (meter) 10 Ok 20 Ok 30 Ok 40 Ok 50 Ok 60 Ok 70 Ok 80 Ok 90 Ok 100 Ok 101 Gagal 102 Gagal 103 Gagal 104 Gagal 105 Gagal
Pada kondisi outdoor dengan jarak 1-100meter pada antar node dapat berkomunikasi
dengan
baik,
tetapi
pada
jarak
101meter
tidak
dapat
berkomunikasi. Artinya komunikasi antar node tersebut terputus, sehingga tidak dapat menerima data dari node yang mengirimkan data pada node tersebut. Dengan demikian hasil yang didapat sama dengan spesifikasi pada data sheet xbee S2.