Implementasi Fitur Sleeping Client Pada Protokol Message Queue Telemetry Transport – Sensor Network (MQTT-SN) Berbasis Arduino NRF24L01
Vol. 2, No. 10, Oktober 2018, hlm. 4011-4019 http://j-ptiik.ub.ac.id
Implementasi Fitur Sleeping Client Pada Protokol Message Queue Telemetry
Transport
- – Sensor Network (MQTT-SN) Berbasis Arduino & NRF24L01 1 2 3 Yandra Charlos Hasugian , Sabriansyah Rizqika Akbar , Kasyful Amron
- – Sensor Network (MQTT-SN) merupakan cara untuk menyelesaikan
- – 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. - – SN memiliki arsitektur, yaitu MQTT
- – SN client, MQTT – SN gateway, dan MQTT – SN forwarder.
- – SN terdapat sebuah fitur bernama sleeping client yang memiliki state yaitu aktif, disconnect, asleep, awake, dan
- – Sensor Network (MQTT-
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya 1 2 3 Email: [email protected], [email protected], [email protected]
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
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 TransportKeywords : Wireless Sensor Network, MQTT-SN, Sleeping client, NRF24L01
akan berkomunikasi dengan gateway 1. sebagai perantara menuju server. Gateway
PENDAHULUAN
akan menerima data dari node client serta WSN adalah hubungan yang terdapat menyalurkan data menuju server yang telah beberapa node client yang ditempatkan terhubung. Pada node client akan terjadi secara tersebar pada sebuah lingkungan perpindahan state yang perlu dilakukan oleh yang melakukan monitoring pada
client
, seperti state sleep dan awake agar lingkungan tersebut. Selain melakukan
client dapat mengistirahatkan sistem dengan
pengambilan data lingkungan, node client
Fakultas Ilmu Komputer Universitas Brawijaya
4011 waktu yang telah ditentukan dan kembali acknowledgement dari gateway sedangkan
active untuk melakukan pengiriman data. ketika state lost, gateway akan menentukan Gateway memerlukan informasi state tersebut ketika tidak ada pesan yang
perpindahan state tersebut agar gateway dikirim oleh client. Komunikasi MQTT-SN tidak mendeteksi terjadinya kondisi lost yang 2 digunakan pada penelitian yaitu pada node client. Kondisi lost sendiri terjadi gelombang radio yang terdapat pada sebuah jika tidak ada pengiriman pesan dari node modul NRF24L01.
client tersebut. Dengan demikian ketika 2.
node client melakukan proses sleep tanpa METODEOLOGI PENELITIAN
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
Gambar 1. Flowchart metodeologi penelitian
client tidak melakukan perpindahan state yang diperlukan oleh node client tersebut.
Tahapan yang akan dilewati pada penelitian Pada penelitian ini akan menggunakan ini seperti pada terlihat pada Gambar 1 diatas protokol yang sama dengan penelitian yang yakni yang pertama melakukan studi literature telah dijabarkan diatas yaitu MQTT-SN sistem yang akan dibuat, rekayasa kebutuhan yang merupakan perkembangan dari yang akan digunakan pada pembuatan sistem, protokol MQTT. perancangan sistem, implementasi sistem, dan
Protokol MQTT –SN memiliki fitur pengujian sistem yang akan dianalisis kembali yaitu dapat menyelaraskan keadaan dalam jika tidak sesuai serta kesimpulan penelitian lingkungannya seperti bandwidth yang yang terdapat hasil dari keseluruhan tahapan ini rendah, memiliki kegagalan link yang tinggi, serta saran yang ditujukan untuk pengembangan ukuran pesan yang pendek, dan masih seterusnya. bnayak lagi. MQTT
3. PERANCANGAN DAN
Pada penelitian ini memakai komponen
IMPLEMENTASI
yaitu komunikasi antara client dan gateway yang memiliki fungsi yang berbeda-beda. Pada MQTT
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
3.1. Flowchart Client Kondisi Disconnect 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 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 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, Gambar 3 Flowchart Siklus Perubahan Client maka selanjutnya implementasi perangkat client
Sleep
yang terdiri Arduino Nano, NRF24L01 sebagai serta Awake modul komunikasi gelombang radio, dan sensor
Pada Gambar 3 merupakan perpindahan untuk mengambil data. Komponen tersebut kondisi client dari aktif menuju sebuah state terhubung dengan penggunaan jumper. Hasil
sleep serta state awake untuk melaksanakan
implementasi perangkat dapat dilihat dalam koneksi kepada gateway kembali. Kondisi sleep Gambar 5. dilakukan ketika client menerima ACK dari 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 data sensor serta menampilkan sebuah id milik
client
tersebut yang menunjukkan bahwa data 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 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 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.
Gambar 14 Sistem gateway mendapat instruksi Ketika proses sleep selesai, client mengirim
disconnect serta melakukan pengiriman
pesan pingreq ketika awake dan menunggu
acknowledgement balasan pesan pingresp.
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 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 Gambar 15 Sistem client terkoneksi dengan sebuah siklus perubahan state dari client seperti
interrupt
aktif dan disconnect, Gambar 15 menjelaskan bahwa client 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 apapun maka 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 gateway . 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 20 Perangkat 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 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
Gambar 21 Sistem client1/C1 menjalankan menyetujui dengan mengirim acknowledgement siklus sleep yang menyetujui kondisi sleep kedua client.
Client akan terkoneksi ketika gateway mendapat
pingreq yang menyatakan telah aktif dan mengkonfirmasi dengan mengirim pesan untuk meminta tersambung kembali dengan pingresp.
Gambar 22 Sistem client2/C2 menjalankan siklus sleep Gambar 21 dan juga Gambar 22
Gambar 26 Gateway mengkonfirmasi kedua
client dalam kondisi lost
Gambar 24 Sistem gateway mendapat instruksi
disconnect dari sisi client
Gambar 26 menjelaskan gateway melakukan monitoring dan ketika tidak ada pesan yang Gambar 24 menggambarkan proses dari dikirim dari client selama waktu tidur keduanya, kedua client melakukan siklus disconnect yang maka dikatakan lost. Berbeda kondisi jika ada melalui konfirmasi terlebih dahulu dari gateway. satu client masih mengirim pesan kepada
Kedua sistem client mendapat picu dari sisi gateway maka belum dikatakan kondisi lost.
client untuk mengkoneksikan kepada sistem gateway .
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:
CIient 1. dapat melakukan perpindahan state-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
Gambar 25 Sistem dari client tidak melakukan
acknowledgement
dari gateway, namun pengiriman (lost) ketika kondisi lost tidak membutuhkan komunikasi antar client dan gateway.
Gambar 25 menggambarkan hasil jika kedua
client
Pada pengujian, dapat
client
dalam kondisi lost. Kondisi seperti ini berkomunikasi dengan mengirim pesan terjadi jika kedua client tidak melakukan kepada gateway dan melakukan komunikasi dengan gateway melebihi waktu perubahan kondisi client dengan baik tidur client1 dan client2.
2. Client menggunakan kondisi sleep untuk
menyimpan power yang tersedia pada perangkat client dan kondisi awake digunakan untuk mengaktifkan perangkat
client dan memulai koneksi. Kondisi sleep BRÖRING ,et aI. (2011). New Generation
dan awake client menggunakan fungsi Sensor Web EnabIement. sleep yang durasinya dihitung oleh watch Hanifah, S., Akbar, S. R., & Amron, K. (2017). dog timer. Dari hasil pengujian, client
lmplementasi Quality Of Service Pada
berhasil melakuka sleep yang didahului
Protokol Message Queue Telemetry
dengan meminta persetujuan dari gateway
Transport
ketika client mendapat ACK maka sleep
SN) Berbasis Arduino Dan NRF24L0I .
dapat dilakukan. Ketika waktu sleep telah habis maka client langsung berpindah
IEC Market Strategy Board. (2014). lnternet of menuju state awake.
Things: WireIess Sensor Network.
3. Gateway dapat mengetahui perpindahan
KodaIi, R. K., & SoratkaI, S. (20l7). MQTT
state . Pengetahuan perubahan terjadi based Home Automation System Using
karena client akan mengirim pesan state ESP8266 . yang bakal dituju menuju gateway.
Mulya, H., Akbar, S. R., & Widasari, E. R. Namun ketika kondisi lost, gateway yang
(2017). lmplementasi Gateway berbasis menentukan kondisi tersebut. Dari hasil
NRF24L0l dan ESP8266 pada Protokol
pengujian, sistem gateway mengetahui
Message Queue Telemetry Transport -
perpindahan kondisi dari sisi client Sensor Network (MQTT-SN) . menggunakan pesan yang telah dikirim kepada gateway.
Nordic Semiconductor. (2017). Nordicsemi.
Retrieved from Nordic Semiconductor Adapun beberapa saran yang dapat
Smarter Things: dibagikan penulis agar dapat terjadi http://www.nordicsemi.com/eng/Produc pengembangan pada penelitian-penelitian ts/2.4GHz-RF/nRF24L01 selanjutnya sebagai berikut:
Dalam penelitian selanjutnya, penulis 1.
Stanford-Clark, A., & Truong, H. L. (2013). menyarankan menggunakan library yang
MQTT For Sensor Networks (MQTT-
tersedia pada modul NRF24L01 selain SN) Protocol Specification Version 1.2 .
library 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 dalam
pengiriman 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