MQTT DAN NODE-RED 

MQTT DAN NODE-RED 

5.3 Dasar Teori 

5.3.1 MQTT 

MQTT (Message Queuing Telemetry Transport) adalah protokol komunikasi  berbasis publish-subscribe yang ringan dan dirancang untuk perangkat dengan  keterbatasan sumber daya (seperti sensor atau perangkat IoT), serta untuk jaringan  dengan bandwidth rendah, latensi tinggi, atau koneksi yang tidak stabil. 

MQTT berjalan di atas protokol TCP/IP dan memungkinkan pertukaran pesan  antar perangkat secara efisien dan andal. Protokol ini dikembangkan oleh IBM pada  akhir 1990-an dan kini menjadi standar terbuka (open standard) yang banyak digunakan  dalam dunia Internet of Things (IoT)

Fungsi MQTT dalam sistem IoT: 

1. Pertukaran data sensor secara efisien antara perangkat edge dan server cloud. 

2. Mengatur komunikasi real-time dalam sistem seperti smart home, smart agriculture,  smart city. 

3. Menghubungkan berbagai perangkat berbeda tanpa perlu mengetahui alamat  masing-masing. 

4. Menjamin pengiriman data penting dengan pengaturan kualitas layanan (QoS) Kelebihan:  

1. Ringan dan Cepat: Protokol ini hanya menambahkan overhead data sekitar 2-4  byte per pesan. 

2. Hemat Energi dan Bandwidth: Cocok untuk perangkat bertenaga baterai atau  jaringan GSM. 

3. Sistem Publish-Subscribe yang Skalabel: Tidak perlu koneksi langsung antara  pengirim dan penerima. 

4. Dukungan QoS: Tersedia tiga level Quality of Service untuk fleksibilitas  pengiriman data. 

5. Cross-platform: Tersedia pustaka untuk berbagai bahasa (Python, C, JavaScript,  dll). 

Kekurangan: 

1. Tidak aman secara default: Perlu konfigurasi tambahan (seperti TLS/SSL dan autentikasi). 

2. Ketergantungan pada broker: Jika broker bermasalah, komunikasi seluruh sistem bisa  terhenti. 

3. Tidak cocok untuk data besar: Hanya ideal untuk pertukaran data kecil seperti angka, string  pendek, dan status perangkat. 

4. Tidak mendukung komunikasi langsung antar perangkat (P2P).

5.3.2 Node-RED 

Gambar 1 Node-RED 

Node-RED adalah sebuah tool pemrograman visual berbasis alur (flow-based  programming) yang pertama kali dikembangkan oleh IBM pada tahun 2013. Platform  ini dirancang untuk memudahkan proses pengembangan aplikasi, terutama dalam  konteks integrasi perangkat lunak dan perangkat keras seperti pada sistem Internet of  Things (IoT). Node-RED dibangun di atas runtime Node.js, sebuah lingkungan eksekusi  JavaScript yang ringan dan efisien, yang memungkinkan Node-RED berjalan di berbagai  perangkat, mulai dari komputer desktop hingga perangkat embedded seperti Raspberry  Pi. 

Salah satu keunggulan utama Node-RED adalah pendekatannya yang menggunakan  antarmuka grafis berbasis web, di mana pengguna dapat drag and drop komponen komponen logika yang disebut nodes ke dalam sebuah kanvas dan menghubungkannya  untuk membentuk alur (flow) proses. Setiap node memiliki fungsi spesifik, seperti  mengambil data dari sensor, memproses data, mengirim notifikasi, mengakses API web,  hingga mengontrol aktuator. Hal ini memungkinkan pengguna dari berbagai latar  belakang—baik teknis maupun non-teknis—untuk dengan cepat membangun dan  menguji sistem tanpa perlu menulis kode secara mendetail.

Fitur utama Node-RED: 

1. Editor Visual Berbasis Web: Flow dapat dibuat melalui drag-and-drop tanpa perlu  mengetik banyak kode. 

2. Koleksi Node yang Luas: Mendukung koneksi ke sensor, aktuator, database, API  web, MQTT broker, dan layanan cloud. 

3. Eksekusi Real-Time: Mampu merespons data masuk dan mengatur aksi secara  langsung. 

4. Mudah Dikembangkan dan Diperluas: Pengguna dapat membuat node khusus  dengan JavaScript. 

Fungsi Node-RED dalam system IoT: 

1. Mengontrol logika alur data: Menentukan bagaimana data sensor diproses,  ditampilkan, atau dikirim ke cloud. 

2. Visualisasi data secara lokal: Menyajikan data dalam bentuk dashboard, grafik,  tabel. 

3. Integrasi antar platform: Menghubungkan perangkat IoT dengan layanan seperti  Google Sheets, Telegram, atau database MongoDB. 

4. Pengolahan data pada edge device: Mengurangi ketergantungan pada cloud dan  mempercepat respons. 

Kelebihan: 

1. Sangat Ramah untuk Pemula: Cocok bagi non-programmer untuk mulai  membangun sistem IoT. 

2. Mendukung Berbagai Protokol dan Platform: Termasuk MQTT, Modbus, HTTP,  WebSocket, dan lainnya. 

3. Ringan dan Portabel: Bisa dijalankan di Raspberry Pi, laptop, maupun server. 

4. Komunitas dan Plugin yang Banyak: Dukungan dokumentasi dan ekstensi sangat  kuat. 

5. Mendukung Dashboard UI: Bisa menampilkan grafik, tombol, input pengguna  secara langsung. 

Kekurangan: 

1. Alur kompleks bisa membingungkan jika tidak dikelola dengan baik. 

2. Belum cocok untuk sistem berskala besar secara langsung tanpa bantuan framework  tambahan. 

3. Keamanan lemah secara default (tidak aktif SSL atau login pengguna). 4. Ketergantungan pada JavaScript/Node.js jika ingin mengembangkan lebih lanjut.

5.3.3 Integrasi MQTT dan Node-RED dalam Sistem IoT

Dalam pengembangan sistem Internet of Things (IoT), MQTT dan Node-RED sering digunakan secara bersamaan untuk membangun solusi monitoring dan kontrol yang efektif.

Cara Kerja Integrasi MQTT dan Node-RED:

  • MQTT Broker bertindak sebagai pusat komunikasi yang mengatur pesan yang diterbitkan (publish) oleh perangkat IoT (publisher) dan diterima oleh perangkat lain atau aplikasi (subscriber).
  • Node-RED berfungsi sebagai platform pengolahan data dan pengaturan logika alur, yang dapat berlangganan (subscribe) ke topik-topik MQTT tertentu dan mengambil tindakan berdasarkan data yang diterima, seperti mengirim notifikasi, menyimpan data ke database, atau mengontrol aktuator.

Kelebihan Integrasi:

  • Node-RED menyediakan antarmuka visual yang memudahkan pengaturan alur kerja tanpa perlu pemrograman berat.
  • MQTT memungkinkan komunikasi ringan dan efisien antar perangkat yang tersebar.
  • Dengan Node-RED, data MQTT dapat langsung divisualisasikan dalam dashboard dan dikombinasikan dengan layanan lain (misal Telegram, Google Sheets, email).

5.3.4 Contoh Kasus Implementasi MQTT dan Node-RED

Sistem Monitoring Suhu dan Kelembapan:

  1. Sensor suhu dan kelembapan (misal DHT11 atau BME280) terhubung ke mikrokontroler (ESP32/ESP8266).
  2. Mikrokontroler mengirim data sensor ke MQTT broker dengan topik tertentu.
  3. Node-RED subscribe topik tersebut dan menerima data secara real-time.
  4. Node-RED memproses data dan mengupdate dashboard visual, mengirim alert via Telegram jika suhu melewati batas aman, serta menyimpan data ke database.

5.3.5 Keamanan dalam MQTT dan Node-RED

Karena MQTT dan Node-RED secara default kurang memiliki fitur keamanan yang kuat, penting untuk menerapkan langkah-langkah berikut:

  • TLS/SSL pada MQTT Broker: Mengamankan komunikasi dengan mengenkripsi pesan yang dikirimkan.
  • Autentikasi dan Otorisasi: Menggunakan username/password dan pengaturan hak akses untuk broker MQTT dan Node-RED.
  • Firewall dan VPN: Membatasi akses jaringan agar hanya perangkat terpercaya yang dapat terhubung.
  • Pembaruan Berkala: Selalu memperbarui Node-RED dan broker MQTT ke versi terbaru untuk mengatasi celah keamanan.

5.3.6 Tools dan Broker MQTT Populer

  • Mosquitto: Broker MQTT open-source yang ringan dan mudah digunakan.
  • HiveMQ: Broker MQTT komersial dengan fitur skalabilitas tinggi.
  • EMQX: Broker MQTT open-source yang mendukung jumlah klien sangat besar dan fitur cloud native.
  • Node-RED Dashboard: Paket Node-RED untuk membuat interface visual interaktif.

5.3.7 Protokol MQTT Lanjutan dan Fitur-fitur Penting

1. Quality of Service (QoS) pada MQTT
MQTT menyediakan tiga level QoS untuk mengatur keandalan pengiriman pesan:

  • QoS 0 (At most once): Pesan dikirim satu kali tanpa konfirmasi, cocok untuk data yang tidak kritis.
  • QoS 1 (At least once): Pesan dikirim ulang hingga diterima, bisa terjadi duplikasi.
  • QoS 2 (Exactly once): Pesan dijamin diterima tepat satu kali, dengan mekanisme handshake lebih kompleks.

2. Retained Messages
Pesan yang disimpan broker agar subscriber baru dapat langsung menerima pesan terakhir saat mereka subscribe ke topik tersebut.

3. Last Will and Testament (LWT)
Fitur untuk memberitahu subscriber jika suatu client MQTT tiba-tiba terputus dari broker, berguna untuk deteksi perangkat offline.


5.3.8 Praktik Baik Penggunaan MQTT di IoT

  • Gunakan QoS sesuai kebutuhan: Untuk data sensor biasa gunakan QoS 0 atau 1 agar hemat bandwidth. QoS 2 untuk data penting seperti kontrol perangkat.
  • Batasi ukuran payload: Kirimkan data dalam format ringkas (JSON minimalis atau format biner).
  • Manajemen topik yang terstruktur: Buat struktur topik yang mudah dipahami dan scalable, misal rumah/lantai1/suhu.
  • Implementasi keamanan: Selalu gunakan TLS dan autentikasi jika perangkat terkoneksi ke internet publik.

5.3.9 Node-RED: Pengembangan dan Ekstensi

1. Membuat Node Kustom
Node-RED memungkinkan pembuatan node baru menggunakan JavaScript dan Node.js, yang bisa disesuaikan dengan kebutuhan aplikasi spesifik, seperti protokol sensor custom atau integrasi API khusus.

2. Menggunakan Node-RED dalam Edge Computing
Node-RED dapat dijalankan langsung di perangkat edge (seperti Raspberry Pi) untuk melakukan preprocessing data, filtering, dan analitik sederhana sebelum data dikirim ke cloud. Ini mengurangi latensi dan beban jaringan.

3. Integrasi dengan Platform Lain
Node-RED mendukung integrasi dengan berbagai layanan:

  • Cloud (AWS IoT, Azure IoT Hub)
  • Database (MySQL, MongoDB, InfluxDB)
  • Layanan Messaging (Telegram, Slack)
  • Sistem Kontrol Industri (Modbus, OPC-UA)

5.3.10 Tantangan dan Solusi Umum dalam Implementasi MQTT dan Node-RED

TantanganSolusi
Koneksi jaringan tidak stabilGunakan QoS 1 atau 2, dan Last Will untuk deteksi gangguan
Broker MQTT downGunakan broker yang support clustering dan failover
Alur Node-RED rumitDokumentasi flow dengan baik, pisahkan flow besar menjadi modul kecil
Masalah keamananTerapkan TLS, autentikasi, dan VPN; batasi akses jaringan
Keterbatasan resource perangkatJalankan Node-RED di edge device dengan kapasitas cukup, atau gunakan gateway

5.3.11 Studi Kasus: Otomasi Smart Home dengan MQTT dan Node-RED

  • Sensor pintu, suhu, dan cahaya mengirim data ke broker MQTT.
  • Node-RED mengelola logika otomatisasi, misalnya menyalakan lampu saat sensor cahaya rendah dan ada pergerakan.
  • Node-RED juga mengirim notifikasi ke smartphone lewat Telegram jika ada kejadian mencurigakan.
  • Data disimpan secara berkala ke database untuk analisis penggunaan energi.

Kesimpulan

MQTT dan Node-RED merupakan dua komponen penting dalam pengembangan sistem Internet of Things (IoT) yang saling melengkapi. MQTT adalah protokol komunikasi berbasis publish-subscribe yang ringan, efisien, dan cocok untuk perangkat dengan keterbatasan sumber daya serta jaringan tidak stabil. Sedangkan Node-RED adalah platform pemrograman visual yang memudahkan pembuatan dan pengelolaan alur data secara real-time tanpa perlu menulis kode kompleks.

Integrasi MQTT dan Node-RED memungkinkan pengembangan solusi IoT yang responsif, scalable, dan mudah dikembangkan. MQTT berperan sebagai penghubung komunikasi antar perangkat melalui broker, sedangkan Node-RED mengelola pengolahan data, logika kontrol, visualisasi, dan integrasi dengan berbagai layanan eksternal.

Meskipun memiliki keunggulan seperti kecepatan, kemudahan penggunaan, dan fleksibilitas, kedua teknologi ini juga memiliki keterbatasan terutama dalam hal keamanan dan ketergantungan pada broker serta runtime Node.js. Oleh karena itu, implementasi yang baik perlu memperhatikan aspek keamanan seperti enkripsi TLS/SSL, autentikasi, dan pengaturan akses yang tepat.

Praktik terbaik, pemilihan QoS yang sesuai, manajemen topik yang terstruktur, serta penggunaan Node-RED di edge device dapat meningkatkan performa dan keandalan sistem IoT. Dengan pendekatan ini, sistem monitoring, kontrol, dan otomasi seperti smart home maupun aplikasi industri dapat dibangun dengan efektif, efisien, dan mudah dikembangkan.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *