Fakultas Ilmu Komputer
Universitas Brawijaya 1390
Implementasi Deteksi Hujan dan Banjir Secara Real Time Monitoring berbasis MQTT Over Websocket Menggunakan Modul ESP32
Muhammad Rouzikin Annur1, Nurul Hidayat2, Arief Andy Soebroto3 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya
Email: 1[email protected], 2[email protected], 3[email protected]
Abstrak
Indonesia merupakan negara yang dilalui oleh garis khatulistiwa yang berarti Indonesia memiliki curah hujan yang cukup tinggi. Curah hujan di beberapa daerah salah satunya di Kota Malang adalah salah satu dari beberapa daerah yang memiliki curah hujan tinggi. Kondisi jalan di Kota Malang yang tidak rata atau perbukitan membuat sebagian jalan banjir tergenang air saat hujan dan ada jalan yang tidak banjir tergenang air, oleh karena itu penulis membuat alat yang dapat memberikan informasi kondisi terkini tentang keadaan pada jalan yang rawan hujan dan banjir genangan air dengan memasang alat pendeteksi berupa sensor yang terhubung dengan internet agar dapat diakses oleh masyarakat umum.
Cara kerja alat ini yaitu dengan mendeteksi hujan dan ketinggian air yang berada di jalan raya tepatnya di jalan yang sering terjadi banjir ketika hujan deras kemudian data hasil pendeteksian dikirim ke internet agar dapat diakses oleh pengguna atau masyarakat umum. Hasil dari penelitian ini diharapkan dapat membantu pengguna atau masyarakat umum mencari jalan alternatif ketika terjadi hujan atau banjir genangan air di jalan raya.
Kata kunci air hujan, banjir, ketinggian air, IoT, sensor Abstract
Indonesia is a country traversed by the equator, which means that rainfall in Indonesia is quite high.
Rainfall in several areas, one of which is in the city of Malang, is one of the areas that has high rainfall.
The uneven road conditions in Malang City make part of the road flooded with water when it rains and some roads that are not flooded are inundated, therefore the authors make a tool that can provide information on the latest conditions on roads prone to rain and floods with standing water by installing a detection tool in the form of a sensor that is connected to the internet so that it can be accessed by the general public. The way this tool works is by detecting rain and water levels on the highway, precisely on roads where floods often occur during heavy rain, then the detection data is sent to the internet so that it can be accessed by users or the general public. The results of this study are expected to be able to help users or the general public find alternative roads when there is rain or a flood of standing water on the highway.
Keywords: rainwater, flood, water level, IoT, sensors
1. PENDAHULUAN
Hujan adalah benda cair atau air yang berbentuk tetesan yang menjadi uap air dan berkumpul di atmosfer sehingga terkumpul menjadi banyak dan jatuh karena gravitasi. hujan merupakan komponen utama dari siklus air untuk menghasilkan air segar di dunia. Indonesia merupakan suatu negara yang dilewati oleh garis khatulistiwa dan termasuk kategori negara tropis yang berarti Indonesia mempunyai curah hujan yang cukup tinggi. Menurut (BMKG, 2020) curah hujan di Indonesia rata-rata berkisar antara
20 mm/hari dan cenderung bertambah sekitar sebanyak 0.1149mm/hari. Pada beberapa daerah hal ini mengakibatkan genangan air berlebih yang berpotensi menyebabkan banjir yang nantinya akan mengganggu aktivitas warga yang ingin melewati jalan tersebut karena warga tidak tahu bahwa jalan tersebut sudah banjir.
Kurangnya informasi mengenai hujan membuat warga terganggu aktivitasnya, seperti saat warga sedang melakukan perjalanan dan tiba-tiba terhenti karena hujan maupun genangan air yang tinggi sehingga membuat para
pengguna jalan harus menunggu reda ataupun memutar jalan untuk mencari jalan alternatif yang lebih baik. Cuaca di indonesia sendiri memang seringkali susah untuk diperkirakan.
Untuk itu dibutuhkan sebuah sumber yang menyediakan informasi kondisi saat ini dimana saja lokasi yang sedang hujan atau terdapat genangan air agar dapat membantu atau memberikan informasi kepada masyarakat yang ingin melakukan atau sedang dalam perjalanan agar tidak terhambat di jalan.
Dari permasalahan tersebut penulis memutuskan untuk membantu para pengguna jalan dengan membuat alat pendeteksi hujan dan genangan air dengan waktu terkini menggunakan raindrop sensor dan waterlevel sensor yang terhubung pada ESP32 sebagai gateway yang nantinya akan dikirimkan ke internet agar dapat diakses melalui website agar para pengguna jalan dapat mengetahui kondisi cuaca terkini pada jalan yang ingin dilewati.
2. DASAR TEORI 2.1. Internet of Things
Internet of Things yang umumnya disebut IoT merupakan sebuah revolusi baru dari internet yang artinya IoT mengacu pada objek sehari-hari yaitu objek yang dapat dibaca, dikenali, dilacak, dan dapat dialamatkan melalui informasi dari perangkat sensor atau dapat dikendalikan melalui internet. Setiap objek pada IoT saling terhubung satu sama lain. Namun sebenarnya Internet of Things adalah komunikasi antara mesin dengan mesin, manusia dengan mesin. Konsep IoT pertama kali dikemukakan oleh sebuah kelompok pengembang RFID (Radio Frequency Identification) pada tahun 1999. Namun pada saat itu belum ada teknologi untuk mendukung teori-teori tersebut namun, pada era teknologi saat ini konsep IoT dapat diwujudkan dan diimplementasikan (Keyur, 2016). Adapun beberapa karakteristik dari Internet of Things antara lain:
Interkonektivitas, dengan adanya Internet of Things semua hal semua objek dapat terhubung dapat berkomunikasi satu sama lain melalui internet.
Selalu merujuk pada objek, Internet of Things dapat memberikan semua informasi yang berhubungan dengan objek-objek atau benda- benda dunia nyata yang ada di sekitar kita.
Heterogen, terdapat berbagai jenis bermacam-macam perangkat IoT yg terhubung satu sama lain dan dapat saling berkomunikasi melalui internet.
Perubahan yang dinamik, setiap perangkat IoT memiliki kondisi atau keadaan yang selalu berubah-ubah seperti, sedang terhubung internet atau tidak, serta informasi dari objek yang dikirimkan oleh perangkat IoT juga selalu berubah ubah.
Skala besar, jumlah dari perangkat yang harus dihubungkan dan dikomunikasikan satu sama lain sangat banyak setidaknya melebihi dari jumlah perangkat (Laptop atau Smartphone) yang terhubung ke internet.
Keamanan, karena banyaknya perangkat yang terhubung satu sama lain, keamanan masih menjadi hambatan dalam menerapkan perangkat IoT karena informasi yang dikirimkan atau dikomunikasikan dapat berupa informasi rahasia ataupun informasi yang dapat membahayakan seseorang.
Konektivitas, dengan adanya konektivitas perangkat IoT dapat diakses melalui internet dan dapat mengirimkan informasi dari objek yang diinginkan.
2.2. Bluetooth Low Energy (BLE)
Bluetooth Low Energy (BLE) adalah suatu teknologi nirkabel dengan label low-power yang digunakan untuk komunikasi jarak dekat dan pemantauan aplikasi yang diperkirakan akan digunakan hingga beberapa tahun kedepan.
Terdapat beberapa opsi teknologi nirkabel yang bersifat low-power antara lain seperti ZigBee, 6LoWPAN, atau Z-Wave yang menggunakan metode komunikasi multi-hop namun BLE disini menggunakan metode komunikasi single-hop yang dapat diimplementasikan pada area seperti healthcare, perangkat elektronik, serta pemamfaatan smart energy (Carles, 2012).
BLE terdiri dari dua komponen yaitu Controller dan Host. Dalam Controller terdiri atas Link Layer dan Physical Layer sedangkan Host terdiri atas Upper Layer seperti Generic Attribute Profile (GATT), Logical Link Control and Adaptation Protocol (L2CAP), Security Manager Protocol (SMP), Generic Access Profile (GAP), Attribute Protocol (ATT).
2.3. MQTT
Di dalam IoT pesan yang dikirimkan antar
perangkat yang berbeda-beda sangatlah penting karena dalam penerapannya perangkat IoT sendiri harus mengirimkan informasi ke perangkat yang lebih jauh untuk mengatur suatu sistem IoT tersebut. Untuk mengkomunikasikan informasi tersebut diperlukan kecocokan protokol komunikasi yang diterapkan untuk perangkat IoT, dalam hal itu yang paling cocok digunakan sebagai protokol komunikasi adalah Push Protocol yaitu digunakan sebagai protokol dalam perangkat IoT karena protokol ini dirancang untuk digunakan dalam kondisi koneksi internet yang buruk atau kurang memadai. Message queue telemetry transport (MQTT) merupakan protokol yang diimplementasikan melalui layanan push protocol tersebut. Penerapan MQTT dapat dilakukan pada kondisi yang berbeda-beda tetapi pada umumnya protokol ini digunakan oleh banyak perangkat IoT untuk mengirimkan pesan secara instan karena secara rancangan protokol ini berukuran cukup kecil yang memang ditujukan untuk perangkat berdaya rendah.
Terdapat dua arsitektur dalam MQTT yaitu broker (mengontrol distribusi pesan) dan client (publisher atau subscriber) (Dipa, 2017).
2.4. Websocket
Websocket merupakan suatu teknologi website yang ada pada HTML5 yang menyediakan channel komunikasi full-duplex melalui koneksi single TCP, dengan begitu protokol websocket mempermudah interaksi antara browser dengan web server. Websocket mampu terintegrasi dengan server untuk semua jenis browser. (Kun, 2013).
Gambar 1. Websocket
2.5. MQTT over Websocket
MQTT over Websocket dipilih karena pesan MQTT yang dikirim melalui kerangka websocket dimana kerangka websocket tersebut hanya sebesar 2 byte. Seluruh pesan MQTT (header dan payload) dikirim menggunakan websocket-
frame. Pesan MQTT dikirim setidaknya satu kali melalui websocket-frame (Hivemq, 2013).
Untuk alur komunikasi MQTT over Websocket dapat dilihat pada gambar 2 berikut
Gambar 2. MQTT over Websocket
2.6. Quality of Services
Quality of Service (QoS) adalah suatu hal untuk menguji kemampuan atau performa dari jaringan komunikasi data terutama pada sistem real-time dimana dapat mengetahui kemampuan jaringan tersebut. Pengujian QoS yang sering dilakukan untuk pengujian yaitu throughput, delay, jitter dan packet-loss. Throughput berfungsi untuk mengetahui rata-rata kecepatan dari jaringan selama dilakukannya proses pengujian dengan ukuran satuannya berupa byte per second (bps). Delay berfungsi untuk mencari waktu pengiriman data dari tiap waktu ke waktu berikutnya untuk mencari rata-rata waktu pengiriman paket selama dilakukan pengujian dimana rata-rata delay biasa disebut dengan jitter. Packet-loss berfungsi untuk mengetahui apakah terdapat paket yang hilang dalam proses pengiriman paket dalam pengujian yang disebabkan oleh adanya hambatan pada pengiriman data dan juga terdapat kemacetan pada pengiriman paket yang menyebabkan paket yang dikirim menumpuk sehingga membuat paket yang berada pada batas penumpukan menjadi hilang. (Quedet, 2012).
Kemudian untuk menentukan dan menghitung karakteristik dari quality of services yaitu throughput, jitter, delay dan packet-loss, terdapat rumus-rumus yang digunakan. Berikut ini rumus dari throughput, jitter, delay, dan packet-loss.
𝑇ℎ𝑟𝑜𝑢𝑔ℎ𝑝𝑢𝑡 = jumlah data yang dikirim Waktu pengiriman data (2.1)
𝑃𝑎𝑐𝑘𝑒𝑡 𝐿𝑜𝑠𝑠 = ( data dikirim−paket data diterima
paket data yang ditangkap ) × 100%
(2.2)
𝐷𝑒𝑙𝑎𝑦 = waktu paket diterima − waktu paket dikirim
(2.3)
𝐽𝑖𝑡𝑡𝑒𝑟 = Total variasi 𝑑𝑒𝑙𝑎𝑦 Total paket yang diterima−1 (2.4)
3. Perancangan Sistem
Secara umum sistem ini terdiri atas dua jenis sensor yaitu raindrop sensor dan waterlevel sensor. Raindrop sensor bekerja dengan cara mendeteksi tetesan-tetesan air yang mengenai sensor saat sedang hujan sedangkan waterlevel sensor bekerja dengan cara mendeteksi seberapa tinggi genangan air yang terjadi disaat hujan.
Perangkat lainnya yaitu ESP32 yang digunakan sebagai penghubung antara dua sensor dan pc atau mobile sebagai antarmuka untuk mengakses informasi dari sensor. Secara umum rangkaian dari sistemdan diagram alur sistem ini mampu dilihat pada gambar 3 tentang gambaran umum sistem dibawah ini.
Perancangan sistem menggambarkan bagian-bagian penting dari gambaran umum sistem yang akan dibuat dengan memetakan satu persatu alur kerja dari sistem seperti perancangan sensor, perancangan topologi jaringan, perancangan antarmuka website, perancangan data dan perancangan skenario pengujian.
Gambar 3. Perancangan Sistem
3.1. Perancangan Sensor ke Gateway
Pada perancangan Node Sensor ke Node Gateway, node membaca data melalui sensor kemudian data tersebut di kategorikan berdasarkan ketinggian air yang mengenai sensor, selanjutnya dari node sensor tersebut dikirimkan ke node gateway melalui BLE. Untuk lebih detailnya dapat dilihat pada gambar 4 berikut.Gambar 4. Sensor to Gateway
3.2. Perancangan Gateway ke Broker
Pada perancangan Node Gateway ke MQTT Broker, node gateway disini berperan sebagai MQTT client yaitu publisher dimana data dari gateway digabungkan dengan data yang sebelumnya diterima melalui BLE, data tersebut kemudian dikirim ke MQTT broker melalui internet menggunakan WiFi secara periodik dan realtime. Untuk lebih detailnya dapat dilihat pada gambar 5 berikut.Gambar 5. Gateway to Broker
3.3. Perancangan Broker ke Websocket
Pada perancangan MQTT broker ke websocket, data yang sudah dikirimkan MQTT client ke MQTT broker akan diakses oleh pengguna melalui websocket client dimana websocket client menggunakan protokol websocket sebagai jembatan komunikasi antara websocket client dan MQTT broker.Gambar 6. Broker to Websocket
4. PENGUJIAN DAN ANALISIS
Pengujian dilakukan agar kita tahu seberapa besar perangkat tersebut dapat berjalan dengan baik alat tersebut dalam mendeteksi suatu hujan dan seberapa baik alat tersebut dalam mendeteksi genangan air. Pengujian dilakukan berdasarkan rancangan yang telah dibuat sebelumnya.
4.1. Pengujian Perangkat Keras
Pengujian pada perangkat keras adalah pengujian untuk mencari tahu apakah perangkat sensor dapat berjalan dengan baik atau tidak, yaitu apakah sensor dapat mendeteksi adanya hujan atau tidak, dapat mengirimkan data melalui BLE atau tidak. Untuk hasil pengujian perangkat keras atau hardware dapat dilihat pada gambar 7 berikut ini.
Gambar 7. Pengujian Perangkat Keras
Dari hasil pengujian pada gambar 7 dapat dilihat bahwa tidak adanya malfungsi atau error pada perangkat sensor yang berjalan sehingga mampu mendeteksi kondisi terkini apakah hujan atau tidak.
4.2. Pengujian Perangkat Lunak
Pengujian pada perangkat lunak adalah pengujian untuk mencari tahu apakah perangkat telah berjalan dengan baik atau tidak, apakah terdapat error atau tidak, sehingga mampu mengetahui apakah perangkat lunak mampu berjalan tanpa adanya error atau tidak. Untuk pengujian perangkat lunak atau software dapat dilihat pada gambar 8 berikut.
Gambar 8. Pengujian Perangkat Lunak
Dari hasil pengujian terlihat bahwa saat menjalankan perangkat lunak tidak terdapat error ataupun kendala dalam menjalankan perangkat lunak.
4.3. Pengujian Gateway ke Broker
Pengujian ini adalah untuk mengetahui atau mencari tahu komunikasi pengiriman data antara MQTT CLient dan MQTT Broker, dimana yang menjadi MQTT Client disini adalah perangkat BLE Client. Pada gambar 9 MQTT Client melakukan publish pesan retain ke MQTT broker dengan QoS level 0 (Fire and Forget).
Gambar 9. Pengujian Gateway ke Broker
4.4. Pengujian Broker ke Websocket
Pengujian ini dilakukan untuk mengetahui komunikasi pengiriman data antara MQTT Broker ke Websocket, pada gambar 10 terlihat bahwa MQTT melakukan perintah untuk terhubung ke websocket kemudian websocket menerima koneksi dari MQTT kemudian websocket client meminta data dari MQTT Broker dengan menggunakan default id dan topic yaitu teststring/1 yang kemudian di acknowledge oleh websocket.
Gambar 10. Pengujian Broker ke Websocket
4.5. Pengujian Delay
Pengujian delay adalah pengujian yang digunakan untuk mencari atau mengetahui waktu yang dibutuhkan pengiriman data paket dari titik mulai untuk sampai ke tujuan. Satuan ukuran yang delay yang digunakan yaitu detik atau second. Dalam menghitung atau mencari delay, dapat memakai rumus sebagai berikut.
Rumus pengujian delay adalah:
waktu paket diterima − waktu paket dikirim Untuk delay masing-masing paket dapat dilihat pada gambar 11.
Gambar 11. Pengujian Delay
4.3. Pengujian Throughput
Pengujian throughput adalah pengujian yang digunakan untuk mencari atau mengetahui kecepatan dari rata-rata pengiriman data selama dalam waktu tertentu. Throughput disebut juga sebagai kecepatan yang sesungguhnya karena hasil yang muncul sesuai dengan data-data yang sesungguhnya saat melakukan proses koneksi.
Ukuran satuan yang dipakai oleh throughput yaitu bps. Dalam menghitung atau mencari throughput dapat memakai rumus sebagai berikut.
Rumus perhitungan throughput adalah:
jumlah data yang dikirim Waktu pengiriman data
Jumlah data yang dikirim sebesar 21268 bytes dan waktu pengiriman data yaitu 229,660 detik yang berarti troughputnya adalah 92,6 bytes per detik. Untuk nilai yang digunakan pada proses perhitungan troughput dapat dilihat pada gambar 12 berikut.
Gambar 12. Pengujian Throughtput
4.4. Pengujian Jitter
Pengujian jitter adalah pengujian yang digunakan untuk mengetahui rata-rata delay dari
total delay pengiriman paket. Untuk menghitung jitter dapat menggunakan rumus seperti dibawah ini.
Rumus pengujian jitter adalah:
Total variasi 𝑑𝑒𝑙𝑎𝑦 Total paket yang diterima − 1
Untuk hasil perhitungan jitter dapat dilihat pada gambar 13.
Gambar 13. Pengujian Jitter
4.5. Pengujian Packet Loss
Pengujian packet loss adalah pengujian yang dipakai untuk mengetahui atau mencari jumlah paket data yang tidak terkirim atau hilang saat proses pengiriman dimana umumnya disebabkan oleh kesalahan dalam transmisi data ataupun terjadi traffic dalam proses pengiriman. Dalam menghitung atau mencari packet loss dapat memakai rumus sebagai berikut.
Rumus perhitungan Packet Loss adalah:
( data dikirim − paket data diterima
paket data yang ditangkap ) × 100%
Jumlah paket yang dikirim adalah 694 paket dan jumlah paket yang diterima adalah 410 dan total paket adalah 1104 maka diperoleh hasil packet loss yaitu sebesar 25,7 bytes packet loss.
Atau dapat juga menggunakan fitur filter tcp.analysis.lost_segment kemudian melihat hasil persentase tampilan pada menu Capture File Propeties. Untuk packet loss dalam pengujian ini dapat dilihat pada gambar 14.
Gambar 14. Pengujian Packet Loss
5. KESIMPULAN DAN SARAN 5.1. Kesimpulan
Berdasarkan hasil pengujian pada bab sebelumnya didapatkan hasil perangkat dapat mendeteksi hujan dan ketinggian air pada pengujian fungsional dan memiliki akurasi yang cukup tinggi karena sudah sesuai dengan perancangan yang dibuat. Kemudian berdasarkan pengujian fungsional juga diperoleh hasil bahwa system dapat menampilkan daerah
yang terdapat hujan dengan baik dan sudah sesuai dengan perancangan dan berdasarkan pengujian non-fungsional dari analisis diperoleh hasil bahwa pesan atau data terkirim dari node server ke gateway yang selanjutnya dikirim ke MQTT Broker dan kemudian diakses oleh Websocket Client melalui Websocket dimana dari hasil analisis tersebut sudah sesuai dengan perancangan. Dari pengujian non-fungsional yang meliputi empat poin yaitu packet loss, throughtput, delay dan jitter dengan menggunakan quality of service tingkat 0 didapat hasil bahwa pada packet loss terdapat 5 packet loss yang berarti sebagian besar paket mampu terkirim sampai ke tujuan, pada troughtput diperoleh hasil 92,6 bps yang berarti kecepatan rata-rata transfer tergolong baik, pada delay diperoleh hasil 0,8 ms yang berarti waktu yang dibutuhkan untuk pengiriman data cukup cepat dan tergolong baik.
5.2. Saran
Terdapat beberapa saran yang digaris bawahi oleh penulis terkait penelitian ini, dimana diharapkan ada peningkatan mengenai tampilan website agar lebih menarik dan interaktif, kecepatan pengiriman data agar lebih cepat, serta efisiensi dan perawatan perangkat maupun sistem. Untuk pengembangan selanjutnya terdapat beberapa saran yaitu dengan menambahkan kamera sebagai pendekteksi hujan dan menambahkan algoritma kecerdasan buatan untuk memutuskan kondisi hujan terkni.
6. DAFTAR REFERENSI
BMKG, n.d. Badan Meteorologi, Klimatologi, dan Geofisika. [Online]
Available at:
https://www.bmkg.go.id/iklim/?p=tren- curah-hujan
[Accessed 5 April 2020].
Gomez, C., Oller, J. & Paradells, a. J., 2012.
Overview and Evaluation of Bluetooth Low Energy: An Emerging Low-Power Wireless Technology. Universitat Politècnica de Catalunya, Volume 12, pp.
11734-11753.
Kitil, A. O. & Kumar, M., 2018. An IoT- BasedRain Alerting and Flood Prediction using Sensors and Arduino for Smart Environment. International Journal of
Pure and Applied Mathematics, p.
Volume 118 No. 24.
Kumari, S. V., Sailaja, O., Krishna, N. V. S. R.
& Thrinisha, C., 2019. Early Flood Monitoring System using IOT Application. IJEAT, p. Volume 8 Issue 5.
Ma, K. & Sun, R., 2013. Introducing WebSocket-Based Real-Time Monitoring System for Remote Intelligent Buildings.
International Journal of Distributed Sensor Networks, p. 10.
Malik, A. H., jalal, A., Parray, B. A. & kohli, M., 2017. Smart City IoT Based Weather Monitoring System. IJESC, p. Volume 7 Issue 5.
Patel, K. K. & Patel, S. M., 2016. Internet of Things-IOT: Definition, Characteristics, Architecture, Enabling Technologies, Application & Future Challenges. IJESC, p. Volume 6 Issue 5.
Queudet-Marchand, A. & Chetto, M., 2012.
Quality of Service Scheduling in the Firm Real-Time Systems. Intech, Volume 9, pp. 191-210.
Soni, D. & Makwana, A., 2017. A SURVEY ON MQTT: A PROTOCOL OF INTERNET OF THINGS(IOT). INTERNATIONAL
CONFERENCE ON
TELECOMMUNICATION, POWER
ANALYSIS AND COMPUTING
TECHNIQUES.
Team, H., 2013. HiveMQ. [Online]
Available at:
https://www.hivemq.com/blog/mqtt- over-websockets-with-hivemq/
[Accessed 5 April 2020].