Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer Vol. 1, No. 12, Desember 2017, hlm. 1578-1588
e-ISSN: 2548-964X http://j-ptiik.ub.ac.id
Implementasi Gateway berbasis NRF24L01 dan ESP8266 pada Protokol Message Queue Telemetry Transport - Sensor Network (MQTT-SN) Harry Mulya1, Sabriansyah Rizkiqa Akbar2, Edita Rosana Widasari3 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email:
[email protected],
[email protected],
[email protected] Abstrak Wireless Sensor Network (WSN) merupakan jaringan nirkabel yang terdiri dari beberapa sensor node. WSN dapat diimplementasikan menggunakan protokol Message Queue Telemetry Transport (MQTT). MQTT adalah protokol yang berjalan diatas protokol TCP/IP, sehingga setiap node yang tidak memiliki antarmuka jaringan tidak dapat menggunakan protokol ini. protokol Message Queue Telemetry Transport - Sensor Node (MQTT-SN) diciptakan untuk menghubungkan perangkat-perangkat tersebut. Gateway merupakan perantara antara sensor node yang berjalan di protokol MQTT-SN dengan broker yang berjalan di protokol MQTT. Advertisement dan discovery merupakan mekanisme yang digunakan agar client dapat melacak identitas gateway, sehingga client dapet terkoneksi dengan gateway. Mekanisme ini sangat penting karena merupakan proses pertama sebelum melakukan proses lainnya seperti proses publishing. Pada penelitian ini penulis mencoba menerapkan mekanisme tersebut pada mikrokontroler arduino pro-mini dan NRF24L01 sebagai modul komunikasinya. Hasil dari penelitian ini adalah client mampu mengenali ID gateway yang ada dan gateway berhasil meneruskan data dari client sampai ke broker, yang ditandai diterimanya data oleh subscriber. Kata Kunci: Wireless sensor network, MQTT-SN, NRF24L01, gateway, advertise, discovery
Abstract Wireless Sensor Network (WSN) is a wireless network that consists of multiple sensor nodes. WSN can be implemented using a Message Queue Protocol Telemetry Transport (MQTT). MQTT is a protocol that runs of the TCP / IP protocol, so each node that doesn't have a network interface can't use this protocol. Message Queue Telemetry Transport protocol - Sensor Node (MQTT-SN) was created to connect the devices. The gateway is an intermediary between the sensor nodes that run in the MQTTSN protocol with the broker that runs on the MQTT protocol. Advertisement and discovery is a mechanism used for the client to traces the identity of the gateway, so the client can connect with the gateway. This mechanism is very important because it is the first process before doing other processes such as publishing process. Therefore, this research proposed to implement the mechanism on microcontroller arduino pro-mini and NRF24L01 as communication module. The result of this research is the client able to recognize the existing gateway ID and gateway managed to pass data onto the client to the broker, which marked the receipt of the data by the subscriber. Keywords: Wireless sensor network, MQTT-SN, NRF24L01, gateway, advertise, discovery
mendistribusikan informasi yang di dapat secara nirkabel. WSN dapat di implementasikan dengan berbagai protokol, salah satunya adalah protokol Message Queue Telemetry Transport (MQTT). Protokol Message Queue Telemetry Transport (MQTT) adalah protokol yang menggunakan konsep publish/subscribe dalam melakukan pengiriman data. MQTT menerapkan model client/server, dimana server pusat atau yang biasa disebut “broker” bertugas
1. PENDAHULUAN Dewasa ini teknologi Wireless Sensor Network (WSN) telah digunakan sebagai salah satu teknologi populer dari konsep Internet of Things (IoT) (Khalil, 2014), Wireless Sensor Network (WSN) merupakan jaringan nirkabel yang terdiri dari beberapa sensor node yang diletakkan di banyak tempat berbeda untuk memantau kondisi suatu area dan Fakultas Ilmu Komputer Universitas Brawijaya
1578
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
menerima dan meneruskan pesan ke klien sehingga seluruh node terlibat dalam proses komunikasi (Prada, 2016). MQTT pada prinsip kerjanya berjalan diatas protokol TCP/IP, yang artinya setiap node yang tidak memiliki antarmuka jaringan tidak dapat menggunakan protokol ini (A. & H, 2007). Seiring semakin banyaknya kebutuhan untuk menghubungkan banyak perangkat atau node yang tidak memiliki antarmuka jaringan maka munculah sebuah protokol Message Queue Telemetry Transport – Sensor Node (MQTT-SN). Message Queue Telemetry Transport – Sensor Node (MQTT-SN) yaitu protokol yang prinsip kerjanya seperti MQTT, namun secara spesifik MQTT-SN mampu di implementasikan pada jaringan sensor yang tidak memiliki antarmuka jaringan (Govindan & Azad, 2015). Untuk menghubungkan sensor node yang berjalan di protokol MQTT-SN dengan broker yang berjalan di protokol MQTT maka dibutuhkan sebuah perantara yang bisa mengubah format data dari MQTT-SN ke MQTT. Perantara ini biasa disebut “Gateway”. Agar client dapat terkoneksi dengan gateway maka dibutuhkan sebuah mekanisme agar client bisa melacak identitas dari gateway. Pada protokol MQTT-SN mekanisme tersebut dinamakan advertisement dan discovery. MQTT-SN diciptakan khusus untuk diimplementasikan pada perangkat xbee. Xbee adalah modul komunikasi yang memanfaatkan gelombang frekuensi radio 2.4Ghz. Selain xbee ada pula perangkat lain yang sama-sama menggunakan frekuensi radio 2.4Ghz, yaitu NRF24L01. Modul ini memiliki 3 pilihan opsi data rate (250Kbps,1Mbps, dan 2Mbps) disamping itu modul juga memiliki konsumsi daya yang rendah dibandingkan xbee, yaitu 22uA pada posisi standby. Selain itu, NRF24L01 memiliki harga yang lebih rendah dibandingkan dengan modul Xbee dan Bluetooth (Nordic Semiconductor, 2014) sehingga cocok untuk diterapkan pada jaringan WSN. Gateway dapat mengunakan modul wireless-fidelity untuk terhubung dengan broker. Hal ini dapat meningkatka fleksibilitas pada gateway. ESP8266 adalah modul wirelessfidelity yang umum digunakan pada perangkat mikrokontroler. Hal ini dikarenakan ESP8266 memiliki ukuran yang kecil dan konsumsi daya yang relatif hemat. Oleh karena itu penelitian ini bertujuan untuk mengimplementasikan protokol MQTTFakultas Ilmu Komputer, Universitas Brawijaya
1579
SN pada node yang menggunakan modul komunikasi RF24L01 dan ESP8266 dan merancang mekanisme agar client bisa mengenali ID gateway yang aktif, serta agar client dapat tetap terhubung dengan gateway dalam jangka waktu lama. 2.
PERANCANGAN IMPLEMENTASI
DAN
2.1 Perancangan Format Pesan Setiap sub-sistem dapat saling berkomunikasi dengan cara mengirim sebuah pesan. Pesan ini memiliki berbagai macam jenis tergantung tujuannya. Berikut ini format pesan yang digunakan dalam penelitian ini yang terdiri dari format pesan advertise, searchgw, gwinfo, connect dan connack. Tabel 1 Format Pesan Yang Digunakan
Dari tabel 1 diatas terlihat bahsa masing masing pesan memiliki muatan atau field yang berbeda beda sehingga ukuran dari tiap pesan juga berbeda. Ada satu kesamaan yaitu octet ke0 dan ke-1 selalu diisi dengan length dan msgtype, adapun penjelasan dari tiap tiap field nya adalah sebagai berikut. 1. Length Field ini selalu ada pada setiap jenis pesan, dan selalu diletakan di octet pertama. Field Length mengindikasikan seberapa panjang pesan yang dikirim. Nilai yang dikirim berupa nilai hexadesimal, sebagai contoh nilai 0x04 mengindikasikan jumlah total panjang pesan adalah 5 octet. 2. MsgType Field ini selalu ada pada setiap jenis pesan, dan selalu diletakan di octet kedua. Field MsgType mengindikasikan jenis pesan yang dikirim, atau dapat juga dikatakan sebagai identitas untuk mengenali pesan apa yang dikirim/diterima. Adapun macam-macam ID dari tiap pesannya dijelaskan pada tabel 2 berikut.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Tabel 2 Keterangan MsgType Field Nilai (Hexa)
Nilai (Integer)
Jenis Pesan
0x00 0x01 0x02 0x04 0x05
0 1 2 4 5
Advertise Searchgw GWinfo Connect Connack
3. ClientID Field ClientID adalah field yang berisikan ID dari pengirim pesan tersebut. 4. GwID Field GwID adalah field yang berisikan informasi dari ID gateway yang sedang aktif dan dikirim oleh gateway yang bersangkutan kepada client secara broadcast. 5. Duration Field duration adalah field yang berisikan informasi keterangan waktu dengan satuan detik. Field ini berukuran 2 octet atau 16 bit sehingga waktu maksimal yang bisa dikirim adalah 2^16 detik atau 65.536 detik. Octet 4 merupakan MSB-nya dan octet 5 merupakan LSB-nya. 6. Flags Flags merupakan field yang khusus digunakan untuk menaruh informasiinformasi tertentu yang sekiranya dibutuhkan sebagai penanda. 7. ProtocolID Field protocolID merupakan field yang berisikan informasi dari revisi protokol yang sedang digunakan. 8. Radius Radius adalah field yang berisikan informasi seberapa besar hop atau lompatan yang diijinkan dari suatu pesan yang dikirim. 9. ReturnCode Field returnCode adalah field yang berisi informasi balasan dari suatu permintaan, Adapaun penjelasan isi dari field ini dapat dilihat dari tabel 3 berikut. Tabel 3 Keterangan ReturnCode Nilai 0x00 0x01 0x02 0x03 0x04 – 0xFF
Keterangan Permintaan diterima Permintaan ditolak Permintaan ditolak, ID topik tidak valid Permintaan ditolak, permintaan tidak didukung Reserved / belum didefinisikan
Fakultas Ilmu Komputer, Universitas Brawijaya
1580
2.2 Perancangan Gateway Perangkat keras yang digunakan dalam perancangan gateway adalah Adalah arduino, NRF24L01, dan ESP8266. Ardunio berfungsi sebagai pengontrol bagi perangkat perangkat lainnya, sedangkan NRF24L01 berfungsi untuk berkomunikasi dengan client, dan ESP8266 untuk berkomunikasi dengan broker, dan yang terakhir adalah LCD display untuk menampilkan informasi yang didapat. Perangkat tersebut perlu dirangkai agar dapat bekerja menjadi sebuah sistem. Diagram blok dari perancangan perangkat keras gateway dapat diilustrasikan pada gambar 5.1.
Gambar 1 Perancangan Perangkat Keras Node Gateway
Seperti yang sudah dijelaskan pada bab landasan kepustakaan, NRF24L01 berkomunikasi menggunakan antarmuka SPI (Serial Peripheral Interface), sedangkan pada ESP8266 menggunakan antarmuka UART (Universal Asynchronous ReceiverTransmitter), dan LCD display menggunakan antarmuka paralel untuk proses komunikasinya dengan mikrokontroler. Antarmuka-antarmuka tersebut sudah didukung oleh arduino pro-mini dan khusus untuk SPI dan UART sudah jalur/pin komunikasinya sudah disediakan oleh arduino sehingga tidak dapat dipindahkan ke pin lain. Untuk pin yang perlu disambungkan dapat dilihat pada skematik di gambar 2. Perancangan perangkat lunak merupakan tahapan yang tidak kalah penting dari perancangan perangkat keras karena keduanya merupakan tahapan penting agar tahapan implementasi berjalan sesuai harapan. Perancangan perangkat lunak pada gateway adalah perancangan yang meliputi algoritma yang disesuaikan dengan kebutuhan fungsional dari gateway tersebut. Algoritma yang akan diterapkan pada gateway dapat dijabarkan pada diagram alir di gambar 3.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
1581
atau tidak, apabila terdapat pesan masuk maka gateway akan menyimpan pesan tersebut ke buffer lalu memeriksa pesan tersebut apakah pesan tipe 1 (searchGW), apabila benar pesan tipe 1 maka gateway akan mengirimkan pesan advertise, jika tidak maka akan diperiksa lagi apakah pesan tersebut adalah tipe pesan 4 (connect), jika benar pesan tipe 4 maka gateway akan memeriksa apakah ID client tersebut sudah ada dalam list node yang terkoneksi, jika tidak maka gateway akan menambahkan ID tersebut ke daftar, namun apabila tidak teridentifikasi adanya pesan masuk maka gateway akan memeriksa apakah pesan advertise terakhir dikirim lebih dari 15 menit yang lalu, jika ya maka gateway akan mengirimkan pesan advertise. 2.3 Perancangan Client
Gambar 2 Diagram Skematik Perangkat Keras Gateway
Perangkat keras yang digunakan dalam perancangan client adalah Adalah arduino, NRF24L01, dan LCD display. Ardunio berfungsi sebagai pengontrol bagi perangkat perangkat lainnya, sedangkan NRF24L01 berfungsi untuk berkomunikasi dengan gateway, dan LCD display untuk menampilkan informasi yang didapat. Perangkat tersebut perlu dirangkai agar dapat bekerja menjadi sebuah sistem. Diagram blok dari perancangan perangkat keras client dapat diilustrasikan pada gambar 4.
Gambar 4 Perancangan Perangkat Keras node Client
Seperti yang sudah dijelaskan pada bab landasan kepustakaan, NRF24L01 berkomunikasi menggunakan antarmuka SPI (Serial Peripheral Interface), sedangkan LCD display menggunakan antarmuka paralel untuk proses komunikasinya dengan mikrokontroler. Antarmuka-antarmuka tersebut sudah didukung oleh arduino pro-mini dan khusus untuk SPI jalur/pin komunikasinya sudah disediakan oleh arduino sehingga tidak dapat dipindahkan ke pin lain. Untuk pin yang perlu disambungkan dapat dilihat pada skematik di gambar 5. Gambar 3 Flowchart program gateway
Pada Gambar 3 menunjukkan bahwa proses pada WSN gateway dimulai dari tahap sistem gateway yang mengenali adanya pesan masuk Fakultas Ilmu Komputer, Universitas Brawijaya
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Gambar 5 Diagram Skematik Perangkat keras node client
Perancangan perangkat lunak merupakan tahapan yang tidak kalah penting dari perancangan perangkat keras karena keduanya merupakan tahapan penting agar tahapan implementasi berjalan sesuai harapan. Perancangan perangkat lunak pada client adalah perancangan yang meliputi algoritma yang disesuaikan dengan kebutuhan fungsional dari client tersebut. Algoritma yang akan diterapkan pada client dapat dijabarkan pada diagarm alir di gambar 6. Pada gambar 6 menunjukkan bahwa proses pada client dimulai dari tahap inisialisai, lalu client akan memeriksa apakah client sudah terkoneksi, jika belum maka client akan memanggil fungsi connecting, jika sudah maka client akan memeriksa apakah waktu hidup gateway habis atau belum, jika habis maka client akan menganggap koneksi telah terputus dan client akan menghapus ID gateway tersebut dari daftar ID yang aktif, jika waktu hidup gateway belum habis maka client akan memeriksa apakah ada pesan masuk atau tidak ? jika ada maka client akan memanggil fungsi recvMsg. Waktu hidup gateway adalah waktu antara pesan advertise terakhir dengan waktu pesan advertise berikutnya. Seperti yang sudah dijelaskan pada sub-bab sebelumnya, waktu ini terdapat pada salah satu field pesan advertise yaitu field duration. Fakultas Ilmu Komputer, Universitas Brawijaya
1582
Gambar 6 Flowchart Program Main Pada Client
2.4 Perancangan Topologi Sistem Penentuan topologi sistem sangatlah penting, karena hal ini berpengaruh pada prinsip kerja sistem. pada perancangan sistem ini topologi yang di gunakan adalah seperti gambar berikut. Broker Jaringan TCP/IP Gateway Frekuensi Radio Client Gambar 7 Topologi Sistem
Pada gambar 7 menjelaskan bahwa client terhubung dengan gateway menggunakan frekuensi radio pada frekuensi 2,4 Ghz. Gateway terhubung dengan broker pada jaringan TCP/IP berbasis wireless atau lebih dikenal wireless-fidelity. Topologi seperti ini cocok untuk menerapkan 2 protokol sekaligus yaitu MQTT dan MQTT-SN sesuai dengan
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
1583
tujuan penelitian ini. 2.5 Implementasi Format Pesan Tahap implementasi format pesan dilakukan di kedua sub-sistem yakni gateway dan client. Format pesan yang diimplementasikan harus sesuai dengan yang dirancang sebelumnya, adapun format pesan yang telah dirancang adaah pesan advertise, pesan searchgw, pesan gwinfo, pesan connect dan pesan connack 2.6 Implementasi Gateway Tahap implementasi perangkat keras dari node gateway ini disesuaikan dengan perancangan yang telah dilakukan sebelumnya. Gateway terdiri dari arduino sebagai mikrokontrolernya, lalu ada NRF24L01 dan ESP8266 sebagai modul komonikasinya, dan terkahir adalah LCD display untuk menampilkan informasi yang didapat. Untuk lebih jelasnya hasil implementasi gateway tersebut bisa dilihat pada gambar 8 berikut ini.
Gambar 9 Implementasi perangkat keras node client
2.8 Implementasi Topologi Sistem Sesuai dengan perancangan yang telah dilakukan sebelumnya, topologi yang digunakan adalah client terhubung langsung degan gateway menggunakan NRF24L01, sedangkan gateway terhubung dengan broker menggunakan jaringan wifi.
Gambar 10 Tampilan Hotspot Pada Komputer Broker
Gambar 8 Hasil Implementasi Perangkat Keras Gateway
2.7 Implementasi Client Tahap implementasi perangkat keras dari node client ini disesuaikan dengan perancangan yang telah dilakukan sebelumnya. Client terdiri dari arduino sebagai mikrokontrolernya, lalu ada NRF24L01 sebagai modul komonikasinya, dan terkahir adalah LCD display untuk menampilkan informasi yang didapat. Untuk lebih jelasnya hasil implementasi client tersebut bisa dilihat pada gamabr 9 berikut ini.
Fakultas Ilmu Komputer, Universitas Brawijaya
Pada gambar 10 terlihat bahwa gateway yang menggunakan modul WiFi ESP8266 berhasil terkoneksi dengan laptop yang sekaligus berfungsi sebagai broker. Gateway yang memliki alamat MAC 5c:cf:7f:82:c7:5d ini mendapatkan alamat IP secara dinamis, sedangkan broker yang sekaligus berfungsi sebagai akses point ini memiliki alamat IP statis yaitu 192.168.137.1. 3. PENGUJIAN 3.1 Pengujian Tahap Pencarian Gateway Oleh Client Pengujian ini bertujuan untuk mengetahui persentase keberhasilan client untuk mengenali ID gateway yang sedang aktif di area tersebut. Hasil dari pengujian ini ditampilkan pada serial
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
monitor berupa ID yang berhasil dikenali oleh client untuk kemudian dicocokan dengan id sesungguhnya pada gateway.
1584
mengirim pesan connect sampai mendapat pesan balasan berupa pesan connack dalam satuan µS (microsecond).
Gambar 11 Hasil Pengujian Tahap Pencarian Gateway Oleh Client
Pada gambar 11 menjelaskan hasil tampilan pada serial monitor yang menampilkan ID Gateway yang berhasil dikenali. Pada pengujian ini yang didapatkan pada client yaitu data yang diterima dengan tipe pesan 2, dan client mendapatkan pesan GWINFO berupa id GW : BF. Serta apabila ID Gateway belum terdaftar maka ID Gateway tersebut akan ditambahkan pada list. Pengujian percobaan pencarian id gateway dilakukan sebanyak 10 kali dengan hasil ID gateway yang berbeda-beda pada setiap pengujiannya, hasil tersebut dapat dilihat pada tabel 4 berikut ini. Tabel 4 Tabel Hasil Percobaan Pencarian ID Gateway Percobaan ke1 2 3 4 5 6 7 8 9 10
ID pada gateway BD BF B2 A1 A5 E9 E7 3A 5B DD
ID yang terdeteksi BD BF B3 A1 A5 E9 E7 3A 5B DD
Kesesuaian Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya
Pada pengujian yang dilakukan untuk percobaan pencarian ID Gateway dari 10 kali percobaan yang dilakukan. Pada setiap percobaan Client berhasil mengenali ID Gateway yang ada dan ID yang terdeteksi sesuai dengan ID pada Gateway, sehingga persentase keberhasilannya adalah 100%. 3.2 Pengujian Tahap Client Koneksi Dengan Gateway
Menjalin
Pengujian ini bertujuan untuk mengetahui persentase keberhasilan dan rerata waktu yang dibutuhkan dalam proses menjalin koneksi dengan gateway. Hasil dari pengujian ini ditampilkan pada serial monitor berupa ID yang berhasil dikenali dan waktu yang dibutuhkan mulai dari client Fakultas Ilmu Komputer, Universitas Brawijaya
Gambar 12 Hasil Pengujian dari koneksi client dengan gateway
Pada gambar 12 menjelaskan hasil tampilan pada serial monitor pada saat client menjalani koneksi dengan gateway. Pada percobaan ini client mendapatkan pesan GWINFO dengan ID GW : A7 dan terkoneksi dengan gateway A7 dengan waktu 12308us. Selain ditampilkan pada serial monitor ID gateway juga ditampilkan pada LCD untuk mempermudah pemantauan. Pengujian percobaan client terkoneksi dengan gateway ini dilakukan sebanyak 10 kali dengan tingkat keberhasilan dan waktu yang berbeda pada setiap pengujiannya, hasil tersebut dapat dilihat pada tabel 5 berikut ini. Tabel 5 Tabel Hasil percobaan koneksi client dan gateway Percobaan ke1 2 3 4 5 6 7 8 9 10
Berhasil Terkoneksi Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya
Waktu (µS) 123.408 123.400 123.408 123.408 123.400 123.408 123.408 123.408 123.408 123.408
Dari data hasil percobaan yang didapat terlihat bahwa client mampu terkoneksi dengan gateway pada setiap percobaannya sehingga persentase keberhasilannya adalah 100%. Waktu yang dibutuhkan untuk menjalin koneksi cenderung sama pada setiap percobaannya, hanya pada percobaan ke-2 dan ke-5 memiliki sedikit perbedaan yaitu selisih 8 µS. Hal ini terjadi karena kondisi pengujian yang cenderung sama yaitu belum ada client lain yang sedang terhubung ke gateway sehingga gateway dalam keadaan idle sehingga baris
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
program yang dieksekusi cenderung sama dengan rerata waktu yang dibutuhkan adalah 123.406 µS. 3.3 Pengujian Tahap Menjalin Koneksi Dengan Gateway Baru
Ulang
Pengujian ini bertujuan untuk mengetahui kemampuan client dalam memperbarui daftar ID gateway yang sedang aktif di sekitar client dan menjalin ulang koneksi agar ketika salah satu gateway down / mati, client bisa langsung terkoneksi dengan gateway yang lain. Hasil dari pengujian ini ditampilkan pada serial monitor berupa ID gateway yang sudah terkoneksi beserta ID dari gateway yang baru aktif, ditampilkan juga status bahwa client berhasil menjalin koneksi dengan gateway lain. Pada pengujian ini dapat dijelaskan pada Gambar 13 yang menunjukkan bahwa tahap client menjalin hubungan dengan gateway yang baru yang sebelumnya terkoneksi dengan gateway A7 menjadi gateway E9.
1585
pada tabel 6 berikut ini. Tabel 6 Hasil Percobaan saat terkoneksi dengan gateway baru Percobaan ke1 2 3 4 5 6 7 8 9 10
ID gateway lama A7 E9 BD BF A3 DD D4 E1 E2 1B
ID gateway baru E9 BD BF A3 DD D4 E1 E2 1B B4
Berhasil beralih gateway Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya
Dari data hasil percobaan yang didapat terlihat bahwa client mampu mengenali gateway yang baru aktif dengan ID gateway yang berbeda-beda setelah client terkoneksi dengan sebuah gateway. Hasil ini juga membuktikan bahwa client mampu mempertahankan koneksi saat gateway tiba-tiba mati dengan cara menjalin koneksi ke gateway lain yang ID-nya telah dikenali sebelumnya dengan persentase keberhasilan mencapai 100% dari 10 kali percobaan yang dilakukan. 3.4 Pengujian Koneksi
Tahap
Pemeliharaan
Pengujian ini bertujuan untuk mengetahui kemampuan gateway dalam memelihara koneksi ke client agar koneksi tidak terputus. Hasil dari pengujian ini bisa dipantau melalui serial monitor pada sisi client. Informasi yang bisa didapat antara lain ID gateway yang terkoneksi, jumlah pesan advertise yang diterima, dan total waktu client tersebut terkoneksi pada gateway yang dimaksud. Keterangan tersebut terdapat pada Gambar 14.
Gambar 13 Tampilan serial monitor saat client melakukan pergantian gateway
Pengujian tahap client menjalin ulang dengan gateway baru ini dilakukan sebanyak 10 kali dengan tingkat keberhasilan perpindahan gateway lama dengan gateway baru dengan keterangan ID Gateway yang didapatkan dari setiap percobaannya, hasil tersebut dapat dilihat Fakultas Ilmu Komputer, Universitas Brawijaya
Gambar 14 Tampilan serial monitor saat client terkoneksi dengan gateway
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
1586
Dan berikut merupakan hasil yang didapat dari percobaan ini adalah data berupa durasi saat client terhubung dengan client yang telah terkoneksi selama 1.453 menit yang ditampilkan secara detail pada Gambar 15.
Gambar 16 Tampilan LCD gateway saat terkoneksi Tabel 7 Tabel hasil percobaan koneksi gateway dan broker
Gambar 15 Tampilan serial monitor saat client telah terkoneksi selama 1.453 menit
Dari data hasil percobaan yang didapat terlihat bahwa client masih terkoneksi dengan gateway hingga 1.453 menit atau setara 24 jam 13 menit. Hal ini membuktikan bahwa gateway mampu menjaga koneksi terhadap client dengan cara mengirimkan pesan advertise secara rutin hingga 1 hari penuh. 3.5 Pengujian Tahap Gateway Menjalin Koneksi Dengan Broker Pengujian ini bertujuan untuk mengetahui rerata waktu yang dibutuhkan oleh gateway untuk terhubung dengan broker MQTT. Hasil dari pengujian ini berupa waktu yang dibutuhkan gateway dari mulai pertama nyala hingga terkoneksi dengan broker yang ditampilkan pada LCD yang terpasang pada gateway ditampilkan pada Gambar 16. Tabel ringkasan hasil percobaan dari koneksi gateway dengan broker yang dilakukan dengan keterangan percobaan dan waktu yang dibutuhkan dapat dilihat pada tabel 7 berikut ini.
Fakultas Ilmu Komputer, Universitas Brawijaya
Percobaan ke1 2 3 4 5 6 7 8 9 10
Waktu yang dibutuhkan 6.102 6.082 6.072 6.123 6.076 6.105 6.072 6.072 6.072 6.078
Dari data hasil percobaan koneksi datewa dan broker yang didapat terlihat bahwa waktu yang dibutuhkan untuk terkoneksi dengan broker cenderung sama dengan rerata waktu 6.085ms. 3.6 Pengujian Tahap Publish Data Oleh Client Ke Broker Pengujian ini bertujuan untuk mengetahui persentase keberhasilan gateway dalam menjalanka tugsanya untuk meneruskan pesan publish dari client ke broker untuk selanjutnya bisa didistribusikan oleh broker. Hasil pengujian publish data dari client ke broker yang didapat dari setiap percobaan pengiriman dijelaskna pada Gambar 17 yang merupakan LCD yang menampilnya data berupa angka acak pada client dan pada gateway. Pada Gambar 18 merupakan data yang berhasil dikirim oleh client dapat dilihat pada aplikasi yang digunakan subscriber.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
1587
terlihat bahwa gateway mampu untuk meneruskan data dari client ke broker tanpa ada kerusakan data dan dengan persentase keberhasilan yaitu 100%. 4. KESIMPULAN
Gambar 17 Tampilan LCD saat client mempublish data
Berdasarkan perancangan, implementasi, pengujian, dan analisis yang telah dilakukan, maka penulis menyimpulkan: 1. Protokol MQTT-SN dapat diimplementasikan pada node yang menggunakan modul komunikasi NRF24L01 dan ESP8266 dengan bantuan library RF24. 2. Client mampu mengenali ID gateway dengan cara menerapkan mekanisme discovery pada protokol MQTT-SN, yaitu client mengirim pesan searchGW secara broadcast dan gateway membalas dengan pesan GWinfo yang terdapat ID miliknya pada pesan tersebut, selain itu client juga mampu mengenali lebih dari 1 gateway secara bersamaan untuk keperluan backup jika gateway tersebut down agar bisa langsung terkoneksi ke gateway lainnya. 3. Koneksi antara gateway dan client dapat tetap terjaga dengan mekanisme advertise, yaitu gateway akan mengirim pesan advertise secara berkala kepada client dan client akan menganggap koneksi terputus jika pesan advertise diterima dengan rentang waktu melebihi yang diatur sebelumnya dalam pesan tersebut. DAFTAR PUSTAKA
Gambar 18 Tampilan daftar data yang berhasil diterima oleh subscriber
Weiss, B. et al., 2013. A Publish/Subscribe Messaging System For Wireless Sensor Communication.
Berikut ini tabel ringkasan hasil percobaan pada pengiriman data dari client sampai ke subscriber, dari tingkat keberhasilan dan kesesuaian data yang dikirim dan diterima dapat disajikan dalam tabel 8.
A., S. C. & H, T. L., 2007. MQTT for sensor networks (MQTTs) Protocol Specification V.1.2.
Tabel 8 Tabel hasil percobaan publish data oleh client ke broker Percobaan ke1 2 3 4 5 6 7 8 9 10
Data yang dikirim 102 143 142 79 160 52 3 124 114 32
Data yang diterima 102 143 142 79 160 52 3 124 114 32
Berhasil diterima Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya
Data sesuai Ya Ya Ya Ya Ya Ya Ya Ya Ya Ya
Dari data hasil percobaan yang didapat Fakultas Ilmu Komputer, Universitas Brawijaya
Avraham, Z., 2013. Building WSN with MQTT, RPI and Arduino. Azzahidin, M. A., 2016. Implementasi Wireless Sensor Network Publisher Menggunakan Protokol Message Queue Telemetry Transport – Sensor Network (MQTT-SN). Bröring, A. et al., 2011. New generation sensor web enablement. Volume 11. Govindan, K. & Azad, A. P., 2015. End-to-end Service Assurance in loT MQTT-SN .
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Khalil, N., 2014. Wireless Sensors Networks for Internet of Things. Nordic Semiconductor, 2014. Difference between NRF24L01, XBee and RF. s.l., s.n. Prada, M., 2016. Communication with Resource-Constrained Devices Through MQTT for Control Education
Fakultas Ilmu Komputer, Universitas Brawijaya
1588