Fakultas Ilmu Komputer
Implementasi Fitur
Sleeping Client
Pada Protokol
Message Queue Telemetry
Transport
–
Sensor Network
(MQTT-SN) Berbasis Arduino & NRF24L01
Yandra Charlos Hasugian1, Sabriansyah Rizqika Akbar2, Kasyful Amron3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1yandracharlostulus@gmail.co.id, 2sabrian@ub.ac.id, 3kasyful@ub.ac.id
Abstrak
WSN (Wireless Sensor Network) merupakan hubungan yang terdapat beberapa node sensor atau
aktuator, gateway, dan client. Jaringan WSN dapat diimplementasikan dengan protokol Message Queue Telemetry Transport (MQTT) merupakan protokol yang berjalan pada TCP/IP, dimana node sensor
terhubung dengan server melalui gateway sebagai perantara client dan server. Message Queue Telemetry Transport – Sensor Network (MQTT-SN) merupakan cara untuk menyelesaikan
permasalahan tersebut. Dalam MQTT-SN terdapat sebuah fitur yang digunakan untuk melakukan perpindahan state dari client yaitu Sleeping Client. Dalam fitur sleeping client terdapat beberapa state
yaitu aktif, disconnect, asleep, awake, dan lost. Sistem yang dibuat pada penelitian yaitu ada 2 perangkat client yang tersusun dari mikrokontroler Arduino Nano, modul NRF24L01 dan sensor. Sebuah perangkat gateway yang terdiri dari mikrokontroler Arduino Nano dan modul NRF24L01. Perangkat client akan mencari gateway untuk berkomunikasi, setelah terkoneksi perangkat client akan mengirim data sensor dan pesan-pesan untuk melakukan perubahan state pada fitur sleeping client. Dari hasil pengujian yang dilakukan client berhasil dalam perpindahan state dan pengiriman data sensor menggunakan sebuah perangkat client dan sebuah perangkat gateway maupun menggunakan 2 perangkat client dan sebuah gateway.
Kata kunci: Wireless Sensor Network, MQTT-SN, Sleeping client, NRF24L01
Abstract
WSN (Wireless Sensor Network)is a connection contained sensor node or actuator, gateway, and client. WSN can be implemented using Message Queue Telemetry Transport (MQTT) is a protocol that runs on TCP/IP, where the sensor node connected to the server through the gateway as an intermediary client and server. Message Queue Telemetry Transport – Sensor Network (MQTT-SN) is way to solve the problem. In MQTT-SN have a feature that used to make a move client’s state is Sleeping Client. In feature sleeping client there are several states are active, disconnect, asleep, awake, and lost. System in this research there are 2 client which consists of microcontroller Arduino Nano, module of NRF24L01, and sensor. And a gateway which consists of microcontroller Arduino Nano and module of NRF24L01. Client devices will search a gateway for communicate with gateway, after connect with the gateway, client will send data sensor and messages for changes states in sleeping client feature. Result from testing of system, client succeed to changes states and can send data sensor use a client device and a gateway device although use 2 client devices and a gateway device.
Keywords: Wireless Sensor Network, MQTT-SN, Sleeping client, NRF24L01
1. PENDAHULUAN
WSN adalah hubungan yang terdapat beberapa node client yang ditempatkan
secara tersebar pada sebuah lingkungan yang melakukan monitoring pada lingkungan tersebut. Selain melakukan pengambilan data lingkungan, node client
akan berkomunikasi dengan gateway
sebagai perantara menuju server. Gateway
akan menerima data dari node client serta
menyalurkan data menuju server yang telah
terhubung. Pada node client akan terjadi
waktu yang telah ditentukan dan kembali
active untuk melakukan pengiriman data.
Gateway memerlukan informasi perpindahan state tersebut agar gateway
tidak mendeteksi terjadinya kondisi lost
pada node client. Kondisi lost sendiri terjadi jika tidak ada pengiriman pesan dari node client tersebut. Dengan demikian ketika
node client melakukan proses sleep tanpa memberikan informasi terlebih dahulu maka selama melakukan sleep, gateway akan
mendeteksi bahwa client dalam kondisi lost
dan gateway akan memberikan perintah
kepada node client untuk melakukan
koneksi ulang.
Dalam penelitian yang telah dilakukan sebelumnya yang memiliki hubungan dengan penelitian yang akan dilakukan yaitu penelitian yang telah dilakukan oleh Harry Mulya, dkk (2017) yang berjudul
“Implementasi Gateway berbasis NRF24L0l dan ESP8266 pada Protokol Message Queue Telemetry Transport - Sensor Network (MQTT-SN)”, yang telah berhasil
melakukan pencarian gateway yang
dilakukan oleh node client untuk melakukan
koneksi dan pengiriman data. Namun penelitian memiliki kekurangan yaitu node client tidak melakukan perpindahan state
yang diperlukan oleh node client tersebut.
Pada penelitian ini akan menggunakan protokol yang sama dengan penelitian yang telah dijabarkan diatas yaitu MQTT-SN yang merupakan perkembangan dari protokol MQTT.
Protokol MQTT–SN memiliki fitur yaitu dapat menyelaraskan keadaan dalam lingkungannya seperti bandwidth yang rendah, memiliki kegagalan link yang tinggi, ukuran pesan yang pendek, dan masih bnayak lagi. MQTT – SN memiliki arsitektur, yaitu MQTT – SN client, MQTT
– SN gateway, dan MQTT – SN forwarder. Pada penelitian ini memakai komponen yaitu komunikasi antara client dan gateway
yang memiliki fungsi yang berbeda-beda. Pada MQTT – SN terdapat sebuah fitur bernama sleeping client yang memiliki state
yaitu aktif, disconnect, asleep, awake, dan
lost. Setiap kondisi yang berubah pada
client, client perlu mengirim pesan
keinginan state yang dituju kepada gateway
untuk mendapatkan acknowledgement dari gateway. Setiap pergantian state yang
dilakukan client harus mendapatkan
acknowledgement dari gateway sedangkan ketika state lost, gateway akan menentukan
state tersebut ketika tidak ada pesan yang dikirim oleh client. Komunikasi MQTT-SN yang 2 digunakan pada penelitian yaitu gelombang radio yang terdapat pada sebuah modul NRF24L01.
2. METODEOLOGI PENELITIAN
Gambar 1. Flowchart metodeologi penelitian
Tahapan yang akan dilewati pada penelitian ini seperti pada terlihat pada Gambar 1 diatas yakni yang pertama melakukan studi literature
sistem yang akan dibuat, rekayasa kebutuhan yang akan digunakan pada pembuatan sistem, perancangan sistem, implementasi sistem, dan pengujian sistem yang akan dianalisis kembali jika tidak sesuai serta kesimpulan penelitian yang terdapat hasil dari keseluruhan tahapan ini serta saran yang ditujukan untuk pengembangan seterusnya.
3.1. Flowchart Client Kondisi Disconnect
Gambar 2. Flowchart Siklus Perubahan Client Disconnect
Pada Flowchart dalam Gambar 2
menandakan sebuah siklus kerja dari client. Client dapat melakukan peralihan state dari aktif
ke sebuah state disconnect. Ketika client dalam
kondisi disconnect, client bakal aktif kembali
ketika dari sisi client diberikan picuan dari sisi client. Dalam state disconnect menggunakan timer.
3.2. Flowchart Client Kondisi Sleep dan Awake
Gambar 3 Flowchart Siklus Perubahan Client Sleep serta Awake
Pada Gambar 3 merupakan perpindahan kondisi client dari aktif menuju sebuah state sleep serta state awake untuk melaksanakan
koneksi kepada gateway kembali. Kondisi sleep
dilakukan ketika client menerima ACK dari
gateway. Client melakukan sleep selama waktu yang dikonfirmasi gateway. Kondisi berubah menjadi state awake ketika timer untuk sleep
telah habis, dalam kondisi awake, client akan mengirim sebuah pesan kepada gateway yaitu pingreq untuk menginformasikan bahwa node client telah awake. Gateway akan menerima dan membalas pesan tersebut dengan sebuah pesan pingresp kepada client agar dapat melakukan koneksi kembali.
3.4. Flowchart Gateway
Gambar 4 Flowchart Siklus Kerja Gateway
Pada Flowchart yang digambarkan pada
Gambar 4 mengartikan sebuah siklus kerja dari sistem gateway. Sistem dari gateway bertugas
memperoleh pesan serta data sensor yang dikirim dari client yang akan serta bakal
mengirim pesan yang dibutuhkan client. Jika
terdapat kondisi dimana client tidak melakukan
pengiriman kepada gateway selama waktu tidur
dari client yang telah disimpan dalam sistem gateway, maka client dalam kondisi lost. Dengan
demikian client harus melakukan pesan connecting lagi.
3.5. Implementasi Perangkat Client
Dengan perancangan yang telah dibuat, maka selanjutnya implementasi perangkat client
yang terdiri Arduino Nano, NRF24L01 sebagai modul komunikasigelombang radio,dan sensor untuk mengambil data. Komponen tersebut terhubung dengan penggunaan jumper. Hasil
Gambar 5 Perangkat Keras Client
3.6. Implementasi Perangkat Gateway
Dalam tahapan perancangan yang telah dilakukan, sistem gateway terdiri dari Arduino
Nano sebagai mikrokontroler yang pengolah pesan dan data dan juga sebuah modul NRF24L01 yang merupakan komponen komunikasi sisem. Hasil implementasi dapat dilihat pada Gambar 6.
Gambar 6 Perangkat Keras Gateway
4. PENGUJIAN
4.1. Kerja Awal Komunikasi Client dan
Gateway.
Pengujian ini dilakukan untuk mengetahui apakah tahapan sebelumnya sudah sesuai dengan harapan penelitian. Proses awal yang berjalan adalah melakukan proses koneksi terhadap kedua perangkat.
Gambar 7 Perangkat client melakukan proses koneksi
Pada Gambar 7 menggambarkan bahwa sistem client memberi pesan secara broadcast
melalui pesan kepada gateway yang sedang aktif. Hasil dari pengujian tersebut yaitu client
menerima sebuah id gateway yaitu BD dan melakukan koneksi.
Gambar 8 Pesan yang ditujukan kepada client
Pada Gambar 8 merupakan hasil dari pengiriman pesan yang ditujukan kepada client
dari gateway, dimana gateway mengirim id
miliknya dan mengirimkan acknowledgement
untuk pesan connect.
Gambar 9 Perangkat client mentransfer data
menuju gateway
Pada Gambar 9 mendeskripsikan sistem
client mentransfer data yang diambil dari
lingkungan kepada sistem gateway yang secara
tidak langsung menginformasikan bahwa proses sebelumnya sudah berjalan baik.
Gambar 10 Perangkat gateway menerima data
sensor
Gambar 10 Perangkat gateway menerima
yang dikiriman sesuai.
4.2. Kerja Fitur Sleep dan Awake.
Pada pengujian mekanisme ini menguji sebuah siklus perubahan state dari client seperti aktif, sleep, dan awake.
Gambar 11 Perangkat client melakukan sleep
dan awake
Gambar 11 menunjukkan client melakukan perubahan kondisi dari aktif menuju sleep dan dilanjutkan dengan awake. Client mengirim pesan sleep dan gateway mengirim ACK sleep. Ketika proses sleep selesai, client mengirim pesan pingreq ketika awake dan menunggu balasan pesan pingresp.
Gambar 12 Perangkat gateway monitoring
waktu sleep
Gambar 12 menegaskan sistem gateway
menerima dan menyimpan waktu sleep dan
melakukan monitoring waktu tidur agar waktu yang diberikan sesuai dan tidak lebih. Perangkat
gateway menerima pesan pingreq dan
melakukan balasan pesan pingresp agar client
dapat terhubung kembali.
4.3. Kondisi Client Disconnect.
Pada pengujian mekanisme ini menguji sebuah siklus perubahan state dari client seperti aktif dan disconnect,
Gambar 13 Sistem client melakukan pengiriman
sebuha instruksi disconnect serta menerima
acknowledgement
Gambar 13 menggambarkan sistem client
melakukan pengiriman sebuah instruksi
disconnect dan client menunggu pesan acknowledgement dari sistem gateway. Dan
dilanjutkan client menjalankan proses disconnect.
Gambar 14 Sistem gateway mendapat instruksi
disconnect serta melakukan pengiriman
acknowledgement
Gambar 14 mengartikan sistem gateway
mendapat instruksi disconnect, gateway
langsung melakukan pengiriman pesan
acknowledgement yang diperlukan client. Client
akan disconnect yang tidak menggunakan waktu sehingga client dapat disconnect dengan waktu yang lama.
Gambar 15 Sistem client terkoneksi dengan
interrupt
masuk menuju kondisi aktif dengan trigger dari dengan sebuah input berupa ‘a’.
4.4. Kejadian Client pada State Lost.
Pada pengujian mekanisme ini client akan dibuat untuk masuk kedalam kondisi lost yang dideteksi oleh gateway.
Gambar 16 Gateway mendeteksi client dalam
kondisi lost
Gambar 16 menjelaskan gateway
melakukan monitoring kondisi client dan
mendapati bahwa client telah melewati durasi sleep ketika tidak mengirim pesan apapunmaka
dinyatakan telah masuk kedalam kondisi lost.
Gambar 17 Perangkat client melakukan koneksi
kembali
Gambar 17 menjelaskan bahwa setelah dideteksi terjadi lost maka client melakukan
koneksi kembali dengan melalukan trigger
dengan memasukkan melalui serial monitor
yaitu ‘a’.
4.4. Kerja 2 Client dan Gateway
Pada pengujian ini dilakukan dengan 2 buah client dan sebuah gateway. Kedua client
akan mengirim data yang diambil dari lingkungan dan pesan yang diperlukan kedua
client
Gambar 18 Sistem client1/id C1 melaksanakan proses koneksi dengan gateway
Gambar 19 Sistem client2/id C2 membuat koneksi ke gateway
Gambar 18 dan Gambar 19 menggambarkan hasil dari sistem client1(C1) serta client2(C2) yang telah tersambung kepada sebuah gateway maka kedua client telah berhasil mengirim pesan serta data yang didapat kepada
Gambar 20Perangkat Gateway menerima pesan
dari kedua client
Gambar 20 ditampilkan bahwa client2 tersambung kepada gateway dilanjutkan client1 tersambung dan mengirim data yang didapat dari lingkungan kedua client.
Gambar 21 Sistem client1/C1 menjalankan siklus sleep
Gambar 22 Sistem client2/C2 menjalankan siklus sleep
Gambar 21 dan juga Gambar 22
menggambarkan kedua sistem client
menjalankan siklus sleep/tidur yang dimulai dengan melakukan pengiriman pesan sleep
menuju sistem gateway dan akan melakukan
sleep ketika menerima pesan acknowledgement
dari gateway dengan durasi yang telah ditentukan. State awake terjadi ketika timer sleep
telah habis.
Gambar 23 Perangkat gateway mendapat pesan
tidur serta instruksi pingreq ketika kedua client
telah bangun
Gambar 23 menandakan sistem dari
gateway mendapat isntruksi tidur dan gateway
menyetujui dengan mengirim acknowledgement
yang menyetujui kondisi sleep kedua client. Client akan terkoneksi ketika gateway mendapat
Gambar 24 Sistem gateway mendapat instruksi
disconnect dari sisi client
Gambar 24 menggambarkan proses dari kedua client melakukan siklus disconnect yang melalui konfirmasi terlebih dahulu dari gateway. Kedua sistem client mendapat picu dari sisi
client untuk mengkoneksikan kepada sistem
gateway.
Gambar 25 Sistem dari client tidak melakukan
pengiriman (lost)
Gambar 25 menggambarkan hasil jika kedua
client dalam kondisi lost. Kondisi seperti ini
terjadi jika kedua client tidak melakukan komunikasi dengan gateway melebihi waktu
tidur client1 dan client2.
Gambar 26 Gateway mengkonfirmasi kedua client dalam kondisi lost
Gambar 26 menjelaskan gateway melakukan
monitoring dan ketika tidak ada pesan yang dikirim dari client selama waktu tidur keduanya,
maka dikatakan lost. Berbeda kondisi jika ada
satu client masih mengirim pesan kepada gateway maka belum dikatakan kondisi lost.
5. KESIMPULAN
Berdasarkan masalah dan proses seluruh tahapan dari metodeologi penelitian yaitu hasil dari perancangan sistem, implementasi sistem dan hasil dari pengujian sistem dalam penelitian, maka dapat dicapai kesimpulan penelitian seperti berikut:
1.
CIient dapat melakukan perpindahanstate-state yang terdapat dalam protokol MQTT-SN yaitu sleeping client yang memiliki state aktif, disconnect, sleep dan
awake, serta kondisi lost. Ketika terjadi perpindahan kondisi atau state, sistem dari
client akan mengirim pesan kepada
gateway dan akan dibalas dengan
acknowledgement dari gateway, namun ketika kondisi lost tidak membutuhkan komunikasi antar client dan gateway. Pada pengujian, client dapat berkomunikasi dengan mengirim pesan kepada gateway dan melakukan perubahan kondisi client dengan baik
2.
Client menggunakan kondisi sleep untuk menyimpan power yang tersedia pada perangkat client dan kondisi awakeclient dan memulai koneksi. Kondisi sleep
dan awake client menggunakan fungsi
sleep yang durasinya dihitung oleh watch dog timer. Dari hasil pengujian, client
berhasil melakuka sleep yang didahului dengan meminta persetujuan dari gateway
ketika client mendapat ACK maka sleep
dapat dilakukan. Ketika waktu sleep telah habis maka client langsung berpindah menuju state awake.
3.
Gateway dapat mengetahui perpindahanstate. Pengetahuan perubahan terjadi karena client akan mengirim pesan state
yang bakal dituju menuju gateway.
Namun ketika kondisi lost, gateway yang menentukan kondisi tersebut. Dari hasil pengujian, sistem gateway mengetahui perpindahan kondisi dari sisi client
menggunakan pesan yang telah dikirim kepada gateway.
Adapun beberapa saran yang dapat dibagikan penulis agar dapat terjadi pengembangan pada penelitian-penelitian selanjutnya sebagai berikut:
1.
Dalam penelitian selanjutnya, penulis menyarankan menggunakan library yang tersedia pada modul NRF24L01 selainlibrary RF24 untuk mengetahui perbedaan hasil yang didapat pada penelitian. Dengan demikian akan didapat
library yang sangat baik digunakan
2.
Disarankan menggunakan Quality of Service 1 ataupun 2 agar dalampengiriman data dan pesan antar kedua sisi agar sistem berjalan lebih baik dan dapat diketahui kesalahan yang terjadi pada pengiriman.
3.
Ketika menggunakan client yang lebih dari satu dengan satu gateway, maka memerlukan id setiap komunikasi yang terjadi antar client dan gateway. Pemberian id pada client agar tidak terjadi tabrakan pesan dari kedua sisi.6. DAFTAR PUSTAKA
Arduino. (20l7). Store Arduino. Retrieved from Arduino:
https://store.arduino.cc/usa/arduino-nano
BRÖRING ,et aI. (2011). New Generation Sensor Web EnabIement.
Hanifah, S., Akbar, S. R., & Amron, K. (2017).
lmplementasi Quality Of Service Pada Protokol Message Queue Telemetry Transport – Sensor Network (MQTT-SN) Berbasis Arduino Dan NRF24L0I.
IEC Market Strategy Board. (2014). lnternet of Things: WireIess Sensor Network.
KodaIi, R. K., & SoratkaI, S. (20l7). MQTT based Home Automation System Using ESP8266.
Mulya, H., Akbar, S. R., & Widasari, E. R. (2017). lmplementasi Gateway berbasis NRF24L0l dan ESP8266 pada Protokol Message Queue Telemetry Transport - Sensor Network (MQTT-SN).
Nordic Semiconductor. (2017). Nordicsemi.
Retrieved from Nordic Semiconductor Smarter Things:
http://www.nordicsemi.com/eng/Produc ts/2.4GHz-RF/nRF24L01
Stanford-Clark, A., & Truong, H. L. (2013).