Fakultas Ilmu Komputer
Universitas Brawijaya
8390
Implementasi Protokol
Routing Directed Diffusion
Pada
Wireless Sensor
Network
Menggunakan Media Komunikasi RF
Elsandio B. P. Fathoni1, Sabriansyah Rizqika Akbar2, Mochammad Hannats Hanafi Ichsan3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1bramudya.elsandio@gmail.com, 2sabrian@ub.ac.id, 3hannas.hanafi@ub.ac.id
Abstrak
Implementasi protokol routing pada wireless sensor network telah dilakukan khususnya pada arsitektur topologi jaringan flat. Dimana pada topologi jaringan flat terdapat beberapa protokol routing yang telah diimplementasikan salah satunya adalah protokol routing directed diffusion. Sayangnya, implementasi tersebut dilakukan menggunakan aplikasi simulasi jaringan. Oleh karena itu, pada penelitian ini penulis mengimplementasikan protokol routing directed diffusion pada wireless sensor network pada sebuah
real device yaitu menggunakan media komunikasi RF. Perangkat keras untuk membangun sebuah node
menggunakan mikrokontroler arduino nano 3.0 sebagai pemroses data sensor dan modul NRF24L01 sebagai media transmisi data. Pada implementasi directed diffusion, sink node mengirimkan interest
atau permintaan data yang berisi koordinat pengirim, jenis data yang diminta dan koordinat node tujuan. Data yang digunakan ialah data suhu dan kelembaban tanah yang ditentukan secara acak karena node
sensor tidak menggunakan modul sensor. Pengujian dilakukan dengan menguji status node dapat ditampilkan pada serial monitor, setiap node sensor dapat melakukan pemrosesan data sensor suhu dan kelembaban tanah, serta pengujian implementasi directeddiffusion yang berupa pengujian fungsional. Hasil dari pengujian, setiap node berhasil menampilkan status node pada serial monitor, setiap node
sensor dapat melakukan pemrosesan data suhu dan kelembaban tanah, serta sistem berhasil mengimplementasikan protokol routingdirecteddiffusion.
Kata kunci: Directed Diffusion, Wireless Sensor Network, Arduino Nano, NRF24L01
Abstract
Implementation of wireless sensor network routing protocols has been carried out specifically on flat topology architectures. Where in the flat topology there are several routing protocols that has been implemented, one of which is directed diffusion routing protocol. Unfortunately, the implementation is done using a network simulation application. Therefore, in this research, the authors implemented routing protocols directed diffusion on a wireless sensor network on a real device that uses RF communication media. Hardwares to build a node using arduino nano 3.0 microcontroller as sensor data processor and NRF24L01 module as data transmission medium. At the time of application of directed diffusion, the sink node send interest or request data containing the coordinates of the sender, the type of data and the coordinates of the destination node. The data used are the temperature and soil moisture data which is selected randomly. The research is done by testing the status of nodes that can be displayed on the serial monitor, each sensor node can perform sensors data and moisture data, as well as testing the directed diffusion as functional requirements. The results of the research is each node successfully displays the node status on the serial monitor, each sensor node can perform sensor data and moisture data, and the system successfully implements the direct diffusion routing protocol.
Keywords: Directed Diffusion, Wireless Sensor Network, Arduino Nano, NRF24L01
1. PENDAHULUAN
Pada era ini berbagai teknologi di bidang
embedded dan jaringan mengalami banyak perkembangan. Salah satunya ialah Wireless
(Sohraby, Minoli & Znati, 2007). Pada sebuah WSN terdapat 2 arsitektur topologi yaitu topologi flat dan topologi cluster. Topologi flat
merupakan arsitektur WSN dimana semua node
sensor yang ada di dalam jaringan memiliki kedudukan yang sama. Sedangkan pada topologi
cluster, peran node sensor disusun secara hirarki. Pada sebuah topologi flat terdapat beberapa protokol routing pengiriman dan pengumpulan data diantaranya Flooding, Sensor Protocol for Information via Negotiation (SPIN), Directed Diffusion (DD), Gradient Routing dan Rumour Routing. Routing adalah proses pengiriman paket data dari node sumber ke node tujuan. Dalam WSN, routing secara umum bekerja pada beberapa hop untuk mencapai tujuan (Jain & Khan, 2014).
Directed diffusion (DD) adalah sebuah mekanisme routing untuk pengumpulan data dimana konsumen (sink node) mencari sumber data dengan mengirimkan paket ke tujuan dan menemukan rute terbaik untuk menerima data (Intanagonwiwat dkk, 2003). DD merupakan pengembangan dari mekanisme pengiriman data flooding yang mana DD dapat mengurangi kemungkinan tabrakan data dan mengurangi jumlah transmisi data. DD dipilih sebagai objek penelitian karena merupakan protokol routing
pengembangan dari flooding dan memiliki efisiensi waktu lebih baik daripada protokol
routing SPIN dalam hal transmisi data.
Pengembangan dan analisis directed diffusion sebelumnya telah banyak dilakukan. Berdasarkan penelitian yang telah dilakukan sebelumnya oleh Sahid Ridho pada tahun 2016, dimana protokol routing directed diffusion
diimplementasikan pada WSN dengan berbasis
cluster. Pada implementasinya menggunakan J-sim dan pemrograman java. Dimana hasil pada penelitian tersebut yaitu peningkatan lifetime
sensor node pada seluruh jaringan cluster. Penelitian lainnya juga dilakukan oleh Gourav Sharma pada tahun 2009 dengan membandingkan dua protokol routing yaitu
flooding dengan directeddiffusion. Dimana pada implementasinya menggunakan simulator NS-2. Kelemahan dari penggunaan aplikasi simulator jaringan adalah simulasi selalu berjalan pada kondisi ideal. Berdasarkan masalah tersebut, penulis ingin mengimplementasikan protokol routingdirected diffusion pada sebuah wireless sensor network
pada sebuah real device yang memanfaatkan mikrokontroler Arduino Nano 3.0 dan menggunakan modul komunikasi NRF24L01.
Arduino Nano 3.0 dipilih karena memiliki dimensi board yang kecil yaitu 0,73 x 1,70 inchi. NRF24L01 dipilih sebagai media transmisi data karena pada penelitian yang telah dilakukan sebelumnya oleh Upik Jamil pada tahun 2018, dimana dilakukan perbandingan peforma antara NRF24L01, Xbee dengan ESP8266. Hasilnya NRF24L01 memiliki keunggulan dalam penerimaan data dan memori yang terpakai untuk program modul NRF24L01 hanya 32% dari kapasitas memori mikrokontroler Arduino Uno. Ada pula keuntungan lainnya yaitu lebar
buffer FIFO dari modul NRF24L01 yang sebesar 32 Bytes sudah cukup untuk menampung pengiriman dan penerimaan data.
Pada implementasinya, sistem diuji dengan menerapkan protokol routingdirected diffusion
dengan melakukan transmisi data suhu dan kelembaban tanah. Nilai data suhu dan kelembaban tanah dituliskan langsung pada program dan ditentukan secara acak karena node sensor tidak menggunakan modul sensor yang sebenarnya.
2. PERANCANGAN DAN
IMPLEMENTASI
Pada tahap perancangan dan implementasi, pertama-tama dilakukan perancangan sistem yang meliput perancangan perangkat keras, perancangan perangkat lunak dan perancangan topologi node. Lalu dilakukan implementasi perangkat keras dan implementasi perangkat lunak.
2.1. Perancangan Perangkat Keras
Perancangan perangkat keras berisi proses perancangan node dimana digambarkan skema rangkaian node.
2.1.1 Perancangan Node
Skema rangkaian node dirancang menggunaka aplikasi skematik perangkat keras
fritzing. Skematik rangkaian node akan menggabarkan bagaimana mikrokontroler arduino nano yang berperan sebagai pemroses data dihubungkan dengan modul komunikasi NRF24L01 yang berperan sebagai media transmisi data.
Skematik rangkaian node yang dibuat dengan hanya membuat 1 skematik, karena sink
Gambar 1. Skematik Rangkaian Node
Pada Gambar 1 terlihat bahwa terdapat 8 pin pada arduino nano yang digunakan, antara lain 6 pin digital yaitu pin D2 dan D9 sampai D13 serta 2 power pin yaitu pin 3,3V dan GND. Sedangkan pada NRF24L01 semua pin terpakai. Pin D2 terhubung dengan pin IRQ, pin D9 terhubung dengan pin CE, pin D10 terhubung dengan pin CSN, pin D11 terhubung dengan pin MOSI, pin D12 terhubung dengan pin SCK dan pin D13 terhubung dengan pin MISO.
2.2 Perancangan Perangkat Lunak
Pada perancangan perangkat lunak ini meliputi diagram alir sistem secara umum, diagram alir sink node, diagram alir node
tetangga sink node dan diagram alir node yang bukan tetangga sink node.
2.2.1 Diagram Alir Sistem
Berikut diagram alir sistem secara umum digambarkan pada Gambar 2(a) dan Gambar 2(b).
Gambar 2(a). Diagram Alir Sistem
Gambar 2(b). Diagram Alir Sistem
Pada Gambar 2(a) dan Gambar 2(b) dapat dilihat bahwa sink node memasukkan perintah permintaan data melalui serial monitor. Kemudian sink node melakukan broadcast interest. Node sensor tetangga sink node akan memeriksa apakah node tujuan sama dengan ID miliknya. Jika sama node tetangga sink akan langsung membalas interest dengan mengirimkan data sensor ke sink node. Sebaliknya jika bukan, maka node tetangga sink node akan broadcast ulang interest dengan menambahkan ID miliknya pada daftar ID pengirim. Saat node sensor tujuan menerima
interest, maka node tersebut akan melakukan
sorting interest berdasarkan jumlah hop terkecil. Kemudian node sensor akan mengirim data sensor melalui node sensor pengirim interest
sebelumnya untuk diteruskan kepada sinknode.
2.2.2 Diagram Alir Sink Node
Berikut diagram alir sink node digambarkan pada Gambar 3(a) dan Gambar 3(b).
Gambar 3(b). Diagram Alir Sink Node
Pada Gambar 3(a) dan Gambar 3(b) digambarkan bahwa sink node mulai bekerja dengan membaca input perintah dari serial monitor. Lalu dilakukan proses ekstrak data perintah dan melakukan parsing data untuk mengenali perintah. Kemudian perintah data sensor. Jika ada perintah data sensor, maka sink node akan melakukan broadcastinterest sampai pada batas waktu count sambil menunggu data sensor masuk. Ketika ada data sensor masuk, maka akan dilakukan ekstrak data untuk ditampilkan pada serial monitor.
2.2.3 Diagram Alir Node Tetangga Sink Node
Berikut diagram alir sistem node tetangga
sink node digambarkan pada Gambar 4(a) dan Gambar 4(b).
Gambar 4(a). Diagram Alir Node Tetangga Sink Node
Gambar 4(b). Diagram Alir Node Tetangga Sink Node
Pada Gambar 4(a) dan Gambar 4(b) digambarkan bahwa node tetangga sink node
mulai bekerja dengan mengambil data sensor dan menunggu input data. Kemudian saat terdapat input data, maka akan diekstrak dan dilakukan parsing data untuk mengenali isi data. Jika terdapat data sensor pada pesan, maka node
sensor akan forward pesan ke alamat tujuan. Sebaliknya node sensor akan melakukan cek ID tujuan, jika sama dengan ID miliknya maka sensor node akan mengirimkan data sensor yang diminta sink node. Dan jika ID tujuan tidak sama dengan ID miliknya, maka node sensor akan
broadcast data.
2.2.4 Diagram Alir Node Yang Bukan Tetangga Sink Node
Berikut diagram alir node yang bukan tetangga sink node digambarkan pada Gambar 5(a) dan Gambar 5(b).
Gambar 5(b). Diagram Alir Node Yang Bukan Tetangga Sink Node
Pada Gambar 5(a) dan Gambar 5(b) digambarkan bahwa node yang bukan tetangga
sink node mulai bekerja dengan mengambil data sensor dan menunggu pesan masuk. Kemudian saat terdapat pesan masuk pesan akan ditampung hingga berjumlah 5 pesan atau kurang dari waktu maksimal timeout. Jika kondisi penuh maka
node sensor akan melakukan sorting pesan berdasarkan jumlah hop terkecil. Node sensor akan melakukan cek ID tujuan, jika sama dengan ID miliknya maka sensor node akan mengirimkan data sensor yang diminta sink node
kepada ID node sensor yang menjadi pengirim terakhir. Dan jika ID tujuan tidak sama dengan ID miliknya, maka node tidak akan mengeksekusi pesan.
2.3 Perancangan Topologi
Perancangan topologi merupakan gambaran dari topologi jaringan yang diterapkan pada sistem. Topologi yang digunakan adalah topologi flat. Berikut perancangan topologi digambarkan pada Gambar 6.
Gambar 6. Skema Topologi Jaringan Node
Pada Gambar 6 dapat dilihat bahwa ID node
diinisialisasi berdasarkan letak koordinat pada topologi jaringan. Sink node berada pada koordinat (4,9) dan sisanya adalah node sensor. Titik koordinat hanya digunakan sebagai penamaan ID node, bukan sebagai acuan dalam peletakan posisi node.
2.4 Implementasi Perangkat Keras
Sistem diimplementasikan dengan membangun 7 buah node dimana terdapat 1 sink
dan 6 node sensor. Berikut hasil implementasi perangkat keras ditunjukkan oleh Gambar 7.
Gambar 7. Implementasi Perangkat Keras
Pada Gambar 7 merupakan penampilan dari sistem yang tampak dari atas. Dapat dilihat bawah terdapat 7 node yang dimana setiap mikrokontroler arduino nano dihubungkan dengan modul NRF24L01 pada sebuah trainer board. Semua node diberi daya melalui kabel USB yang dihubungkan oleh USB hub.
2.5 Implementasi Perangkat Lunak
Implementasi perangkat lunak dilakukan dengan menanamkan kode program pada masing-masing node baik sink node maupun
node sensor. Kode program ditanamkan pada mikrokontroler arduino nano yang telah dituliskan sebelumnya dengan memanfaatkan perangkat lunak Arduino IDE dan library RF24.
3. PENGUJIAN DAN ANALISIS
Pengujian pada penelitian ini dibagi menjadi 3 skenario pengujian yaitu,
1. Pengujian setiap node dapat menampilkan status node pada serial monitor.
2. Pengujian setiap sensor node dapat menampilkan data sensor pada serial monitor.
3.1. Pengujian Setiap Node Dapat Menampilkan Status Node Pada Serial Monitor
Setiap node diuji untuk menampilkan status
node pada serial monitor. Status node yang ditampilkan berisi ID node dan tipe node.
Tujuan dari pengujian ini adalah untuk mengetahui atau memastikan bahwa node telah terhubung dengan serial monitor dan siap untuk beroperasi.
Berikut adalah hasil dari pengujian setiap
node dapat menampilkan status node pada serial monitor akan disajikan pada Tabel 1.
Tabel 1. Hasil Pengujian Menampilkan Status Node
Pada Serial Monitor
ID
Node Tipe Node Status Node
49 Sink node Berhasil Ditampilkan
41 Sensor Node Berhasil Ditampilkan
15 Sensor Node Berhasil Ditampilkan
17 Sensor Node Berhasil Ditampilkan
45 Sensor Node Berhasil Ditampilkan
73 Sensor Node Berhasil Ditampilkan
77 Sensor Node Berhasil Ditampilkan
Berdasarkan data yang diperoleh dari Tabel 1, setiap node berhasil menampilkan status node
pada serial monitor.
3.2. Pengujian Setiap Sensor Node Dapat Menampilkan Data Sensor Pada Serial Monitor
Setiap node diuji untuk menampilkan data sensor suhu dan kelembaban tanah pada serial monitor.
Tujuan dari pengujian ini adalah untuk mengetahui atau memastikan bahwa node dapat melakukan pemrosesan data sensor secara acak dari kode program yang telah ditanamkan. Karena node sensor tidak menggunakan modul sensor sesungguhnya.
Berikut adalah hasil dari pengujian setiap
node sensor dapat menampilkan data sensor pada serial monitor akan disajikan pada Tabel 2.
Tabel 2. Hasil Pengujian Menampilkan Data Sensor Pada Serial Monitor
ID
Node Tipe Node Data Sensor
41 Sensor Node Berhasil Ditampilkan
15 Sensor Node Berhasil Ditampilkan
17 Sensor Node Berhasil Ditampilkan
45 Sensor Node Berhasil Ditampilkan
73 Sensor Node Berhasil Ditampilkan
77 Sensor Node Berhasil Ditampilkan
Berdasarkan data yang diperoleh dari Tabel 2, setiap sensor node berhasil menampilkan data sensor pada serial monitor. Nilai dari sensor yang ditampilkan adalah nilai sensor suhu dan kelembaban tanah.
3.3. Pengujian Fungsional
Pengujian fungsional dibagi menjadi 2 proses pengujian, yaitu pengujian pengiriman data sensor suhu dan pengujian pengiriman data sensor kelembaban tanah.
Tujuan dari pengujian fungsional adalah untuk mengetahui apakah sistem dapat mengimplementasikan protokol routingdirected diffusion.
3.3.1 Pengujian Pengiriman Data Sensor Suhu
Sistem diuji dengan cara sink node
melakukan permintaan data sensor suhu ke setiap node sensor yang ada secara bertahap. Kemudian melakukan cek apakah node sensor tujuan dapat membalas permintaan sink node
atau tidak. Proses dilakukan hingga seluruh node
sensor berhasil mengirimkan data sensor suhu ke
sinknode.
Berikut adalah hasil dari pengujian fungsional pengiriman data sensor suhu yang disajikan pada Tabel 3 sebagai ulasan hasil pengiriman dan penerimaan interest dan Tabel 4 sebagai ulasan hasil pengiriman data sensor suhu.
Tabel 3. Hasil Pengiriman Dan Penerimaan Interest
Node
(1,5) Interest Diterima
(1,7) Interest Diterima
(4,1) Interest Diterima
(4,5) Interest Diterima
(7,3) Interest Diterima
(7,7) Interest Diterima
Berdasarkan data yang diperoleh dari Tabel 3, sink node berhasil mengirimkan interest ke seluruh node sensor dan seluruh node sensor berhasil menerima interest dari sinknode.
(1,5) Dikirim Data Sensor Diterima
(1,7) Dikirim Data Sensor Diterima
(4,1) Dikirim Data Sensor Diterima
(4,5) Dikirim Data Sensor Diterima
(7,3) Dikirim Data Sensor Diterima
(7,7) Dikirim Data Sensor Diterima
Berdasarkan data yang diperoleh dari Tabel 4, seluruh sensor node berhasil mengirimkan data sensor suhu ke sink node dan sink node
berhasil menerima data sensor suhu dari seluruh
node sensor.
3.3.2 Pengujian Pengiriman Data Sensor Kelembaban Tanah
Sistem diuji dengan cara sink node
melakukan permintaan data sensor kelembaban tanah ke setiap node sensor yang ada secara bertahap. Kemudian melakukan cek apakah
node sensor tujuan dapat membalas permintaan
sink node atau tidak. Proses dilakukan hingga seluruh node sensor berhasil mengirimkan data sensor kelembaban tanah ke sinknode.
Berikut adalah hasil dari pengujian fungsional pengiriman data sensor kelembaban tanah yang disajikan pada Tabel 5 sebagai ulasan hasil pengiriman dan penerimaan interest dan Tabel 6 sebagai ulasan hasil pengiriman data sensor kelembaban tanah.
Tabel 5. Hasil Pengiriman Dan Penerimaan Interest
Node
(1,5) Interest Diterima
(1,7) Interest Diterima
(4,1) Interest Diterima
(4,5) Interest Diterima
(7,3) Interest Diterima
(7,7) Interest Diterima
Berdasarkan data yang diperoleh dari Tabel 5, sink node berhasil mengirimkan interest ke seluruh node sensor dan seluruh node sensor berhasil menerima interest dari sinknode.
Tabel 6. Hasil Pengujian Pengiriman Data Sensor Suhu
(1,5) Dikirim Data Sensor Diterima
(1,7) Dikirim Data Sensor Diterima
(4,1) Dikirim Data Sensor Diterima
(4,5) Dikirim Data Sensor Diterima
(7,3) Dikirim Data Sensor Diterima
(7,7) Dikirim Data Sensor Diterima
Berdasarkan data yang diperoleh dari Tabel 6, seluruh sensor node berhasil mengirimkan data sensor kelembaban tanah ke sinknode dan
sink node berhasil menerima data sensor kelembaban tanah dari seluruh node sensor.
4. KESIMPULAN
Berdasarkan penelitian yang telah dilakukan, setiap node baik sinknode dan node
sensor dibangun dengan menggunakan mikrokontroler arduino nano sebagai pemroses data dan modul NRF24L01 sebagai media transmisi data. Setiap node diberikan ID berdasarkan titik koordinat pada topologi jaringan. Dan berdasarkan hasil dari pengujian yang telah dilakukan maka dapat disimpulkan bahwa dari 7 node yang diimplementasikan, seluruhnya dapat menampilkan status node pada serial monitor. Kemudian seluruh node sensor berhasil menampilkan data sensor suhu dan data sensor kelembaban tanah pada serial monitor. Pada hasil pengujian fungsional, sistem dapat mengimplementasikan protokol routingdirected diffusion pada skenario pengiriman data sensor suhu dan data sensor kelembaban tanah.
Diharapkan pada penelitian selanjutnya, setiap node sensor dapat menggunakan modul sensor yang sebenarnya, lalu setiap node dapat melakukan permintaan data sensor sehingga tidak hanya satu node saja. Kemudian node
sensor mampu untuk mengirimkan lebih dari satu jenis data sensor dalam setiap pengiriman.
5. DAFTAR PUSTAKA
Intanagonwiwat, C., Govindan, R., Estrin, D., Heidemann, J., & Silva, F. 2003. Directed Diffusion For Wireless Sensor Networking. Journal IEEE/ACM Transactions on Networking (TON), 11, 2-16.
Jain, V., & Khan, N., A. 2014. Simulation Analysis of Directed diffusion and SPIN Routing Protocol in Wireless sensor network. Conference on IT in Business, Industry and Government (CSIBIG), 1, 1-6.
Teknologi Informasi dan Ilmu Komputer, 2, 1510-1517.
Ridho, S., & Yasri, I. 2016. Analisa Model Directed diffusion (DD) Berbasis Cluster Pasa Wireless sensor network (WSN). Jurnal Online Mahasiswa Fakultas Teknik : Universitas Riau, 3, 1-14.
Sharma, G., Bala, S., & Verma, A., K. 2009. Comparison of Flooding and Directed Diffusion for Wireless Sensor Network.
Annual IEEE India Conference, 1, 1-4. Sohraby, K., Minoli, D., & Znati, T., F. 2007.