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

      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

    • – 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

      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

    • – SN memiliki arsitektur, yaitu MQTT
    • – SN client, MQTT – SN gateway, dan MQTT – SN forwarder.

      3. PERANCANGAN DAN

      Pada penelitian ini memakai komponen

      IMPLEMENTASI

      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

      

    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

    • – Sensor Network (MQTT-

      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