Pendahuluan
Dalam dunia IoT (Internet of Things) dan digitalisasi industri, perangkat seperti sensor, PLC, HMI, gateway, komputer, dan server perlu saling bertukar data.
Salah satu protokol komunikasi yang banyak digunakan untuk kebutuhan tersebut adalah MQTT.
MQTT merupakan protokol komunikasi yang sederhana, ringan, dan dirancang untuk mengirimkan data antarperangkat melalui jaringan.
MQTT banyak digunakan pada:
- IoT
- Smart Factory
- Monitoring energi
- Monitoring mesin
- Smart farming
- Building automation
- Remote monitoring
- Industrial automation
- Data acquisition
- Sistem monitoring berbasis cloud
Artikel ini akan membahas MQTT dari tingkat paling dasar hingga pembaca memahami bagaimana MQTT dapat digunakan dalam sebuah sistem nyata.
1. Apa Itu MQTT?
MQTT adalah singkatan dari:
Message Queuing Telemetry Transport
MQTT merupakan protokol komunikasi berbasis publish/subscribe.
konsep sederhanya seperti ini :
Contoh sederhana untuk mengilustrasikan MQTT sebagai berikut :
Jika masih belum paham kita coba menggunakan analogi sederhana seperti di bawah ini :
2. Mengapa MQTT Banyak Digunakan?
MQTT memiliki beberapa karakteristik yang membuatnya cocok untuk IoT dan industri.
A. Ringan
MQTT memiliki overhead komunikasi yang relatif kecil.
Hal ini membuat MQTT cocok untuk perangkat dengan:
- bandwidth terbatas
- kemampuan hardware terbatas
- koneksi tidak selalu stabil
B. Menggunakan Publish dan Subscribe
Perangkat tidak harus mengetahui alamat perangkat penerima secara langsung.
Publisher cukup mengirim data ke topic.
Broker kemudian mendistribusikan data tersebut kepada subscriber yang berlangganan topic tersebut.
C. Mudah Dikembangkan
Misalnya awalnya terdapat:
10 sensor → 1 server
Kemudian sistem berkembang menjadi:
100 sensor → 3 server → dashboard → cloud
Arsitektur MQTT tetap dapat digunakan.
D. Cocok untuk Monitoring
MQTT sangat cocok untuk data seperti:
- Temperature
- Humidity
- Pressure
- Energy
- Machine status
- Production quantity
- Alarm
- Sensor value
3. Konsep Dasar MQTT
Sebelum belajar MQTT lebih jauh, ada beberapa istilah penting yang harus dipahami.
Terdapat tiga komponen utama:
- Publisher
- Subscriber
- Broker
Mari kita bahas satu per satu.
4. Publisher
Publisher adalah perangkat yang mengirimkan data ke MQTT Broker.
Contohnya:
- PLC
- ESP32
- Raspberry Pi
- Industrial Gateway
- Sensor Gateway
- PC
- Arduino
Misalnya sebuah PLC membaca sensor temperatur.
PLC mendapatkan:
Temperature = 28.5°C
PLC kemudian mengirimkan data tersebut melalui MQTT.
PLC tersebut bertindak sebagai:
Publisher
5. Subscriber
Subscriber adalah perangkat yang menerima data dari MQTT Broker.
Subscriber melakukan subscribe terhadap topic tertentu.
Contohnya:
PC Server subscribe:
factory/line1/temperature
Ketika ada data:
28.5
pada topic tersebut, PC Server akan menerima data.
Contoh subscriber:
- Web Dashboard
- PC Server
- Smartphone
- HMI
- Cloud Server
- Database Server
6. MQTT Broker
Broker adalah pusat komunikasi MQTT.
Publisher tidak mengirim data secara langsung kepada subscriber.
Publisher mengirim data ke:
MQTT Broker
Kemudian Broker meneruskan data kepada subscriber yang sesuai.
Contoh MQTT Broker:
7. Cara Kerja MQTT
Mari kita lihat contoh sederhana.
Misalnya terdapat:
Temperature Sensor
MQTT Broker
PC Dashboard
Alurnya:
Temperature Sensor
|
| Publish
v
MQTT Broker
|
| Subscribe
v
PC Dashboard
Sensor membaca:
30°C
Sensor melakukan publish:
Topic:
factory/temperature
Payload:
30
Broker menerima data tersebut.
PC Dashboard yang sudah subscribe:
factory/temperature
akan menerima:
30
8. Apa Itu Topic?
Topic adalah alamat atau jalur logis yang digunakan MQTT untuk mengelompokkan pesan.
Contoh:
factory/line1/temperature
atau:
factory/line1/machine1/status
atau:
farm/chickenhouse1/humidity
Topic tidak harus berupa alamat IP.
Topic merupakan struktur penamaan untuk data.
9. Contoh Struktur Topic
Untuk sistem industri, topic sebaiknya dibuat terstruktur.
Contoh:
factory/
line1/
machine1/
temperature
pressure
status
machine2/
temperature
status
Sehingga topic dapat berupa:
factory/line1/machine1/temperature
factory/line1/machine1/pressure
factory/line1/machine1/status
Struktur seperti ini akan sangat membantu ketika jumlah mesin semakin banyak.
10. Apa Itu Payload?
Payload adalah isi data yang dikirim melalui MQTT.
Misalnya:
Topic:
factory/line1/temperature
Payload:
30.5
Maka:
Topic = factory/line1/temperature
Payload = 30.5
Payload juga dapat berupa teks.
Contoh:
RUNNING
atau:
STOP
Payload juga dapat berupa data yang lebih kompleks menggunakan format seperti JSON.
Contoh:
{
"temperature": 30.5,
"humidity": 72,
"status": "RUNNING"
}
Dengan JSON, beberapa informasi dapat dikirim dalam satu message.
11. MQTT Message
Secara sederhana sebuah MQTT message dapat dipahami sebagai:
Topic
+
Payload
Contoh:
Topic:
factory/line1/machine1/status
Payload:
RUNNING
Publisher mengirim message tersebut ke Broker.
12. Publish
Publish berarti mengirimkan message ke sebuah topic.
Contoh:
Publish
Topic: factory/line1/machine1/temperature
Payload: 30.5
Publisher tidak perlu mengetahui siapa yang menerima data tersebut.
Publisher cukup mengirim data ke Broker.
13. Subscribe
Subscribe berarti meminta MQTT Broker untuk mengirimkan message dari topic tertentu.
Contoh:
Subscribe:
factory/line1/machine1/temperature
Jika publisher mengirim:
30.5
maka subscriber menerima data tersebut.
14. MQTT Broker sebagai Pusat Komunikasi
Broker dapat dianalogikan seperti kantor pos.
Publisher adalah pengirim surat.
Subscriber adalah penerima surat.
Broker adalah kantor pos.
Publisher mengatakan:
Saya ingin mengirim data ke topic tertentu.
Broker menerima data tersebut.
Kemudian Broker mencari perangkat yang subscribe topic tersebut.
Broker meneruskan data kepada subscriber.
15. Contoh Sistem MQTT Sederhana
Misalnya kita mempunyai sistem:
Temperature Sensor
|
| MQTT Publish
v
MQTT Broker
|
+------> PC Dashboard
|
+------> Smartphone
|
+------> Cloud Server
Satu sensor dapat mengirim data.
Data tersebut dapat digunakan oleh banyak perangkat sekaligus.
Inilah salah satu kelebihan konsep publish/subscribe.
16. MQTT pada Sistem Industri
MQTT sangat menarik ketika digunakan untuk digitalisasi industri.
Contohnya:
Sensor
|
PLC
|
Industrial Gateway
|
Ethernet
|
MQTT Broker
|
+---- Web Dashboard
|
+---- Database
|
+---- Mobile App
|
+---- Cloud
PLC bertugas membaca dan mengendalikan mesin.
Gateway mengambil data dari PLC.
Gateway kemudian mengirim data ke MQTT Broker.
Dashboard mengambil data tersebut dari MQTT Broker.
17. Contoh Monitoring Mesin
Misalnya sebuah mesin mempunyai data:
- Machine Status
- Temperature
- Pressure
- Motor Speed
- Production Counter
Topic MQTT dapat dibuat:
factory/line1/machine1/status
factory/line1/machine1/temperature
factory/line1/machine1/pressure
factory/line1/machine1/speed
factory/line1/machine1/production
Contoh data:
temperature = 32.5°C
pressure = 5.2 bar
speed = 1450 RPM
production = 1250 pcs
status = RUNNING
Semua data tersebut dapat dikirim menggunakan MQTT.
18. MQTT untuk Smart Farming
MQTT juga sangat cocok untuk sistem smart farming.
Contohnya:
Temperature Sensor
Humidity Sensor
NH3 Sensor
Wind Sensor
|
v
PLC
|
v
MQTT Gateway
|
v
MQTT Broker
|
v
Cloud Server
|
v
Web Dashboard
Topic dapat dibuat:
farm/chickenhouse1/temperature
farm/chickenhouse1/humidity
farm/chickenhouse1/ammonia
farm/chickenhouse1/wind_speed
Dashboard kemudian dapat menampilkan kondisi kandang secara realtime.
19. QoS pada MQTT
MQTT memiliki fitur yang disebut:
QoS — Quality of Service
QoS menentukan tingkat jaminan pengiriman message.
Terdapat tiga level utama.
QoS 0
At most once
Message dikirim tanpa jaminan bahwa message akan diterima.
Cocok untuk data yang terus berubah seperti:
Temperature
Humidity
RPM
QoS 1
At least once
Message dijamin sampai, tetapi dapat diterima lebih dari satu kali.
Cocok untuk data yang lebih penting dibanding data monitoring biasa.
QoS 2
Exactly once
Message dipastikan diterima tepat satu kali.
QoS 2 memberikan jaminan paling tinggi, tetapi membutuhkan proses komunikasi lebih banyak.
20. Retained Message
MQTT mempunyai fitur:
Retained Message
Misalnya sensor terakhir mengirim:
Temperature = 30°C
dengan retain aktif.
Kemudian sebuah dashboard baru melakukan subscribe.
Broker dapat langsung memberikan nilai terakhir tersebut:
30°C
tanpa harus menunggu sensor mengirim data berikutnya.
Fitur ini sangat berguna untuk status atau nilai terakhir suatu perangkat.
21. MQTT Last Will and Testament
MQTT juga memiliki fitur:
Last Will and Testament (LWT)
Fitur ini dapat digunakan untuk mengetahui apakah sebuah device tiba-tiba terputus.
Contohnya device memiliki status:
factory/line1/gateway/status
Normal:
ONLINE
Jika device tiba-tiba disconnect, Broker dapat mengirim:
OFFLINE
Dashboard kemudian dapat memberikan alarm.
Contohnya:
Gateway Line 1 Offline
22. MQTT Username dan Password
MQTT Broker dapat menggunakan authentication.
Contoh:
Username:
factory_gateway
Password:
********
Dengan demikian tidak semua perangkat dapat sembarangan melakukan koneksi ke Broker.
Untuk sistem industri, authentication sebaiknya digunakan.
23. MQTT dan Keamanan
Dalam implementasi nyata, MQTT juga perlu diperhatikan dari sisi keamanan.
Beberapa hal yang perlu diperhatikan:
- Username/password
- Access control
- TLS/SSL
- Firewall
- Network segmentation
- VPN
- Certificate
- Permission topic
Contohnya:
Gateway Line 1 hanya boleh publish:
factory/line1/#
sedangkan Gateway Line 2:
factory/line2/#
Dengan demikian akses dapat dibatasi.
24. MQTT melalui TCP/IP
MQTT umumnya berjalan di atas jaringan TCP/IP.
Port MQTT yang umum:
1883
Untuk MQTT menggunakan TLS:
8883
Contoh koneksi:
Device
|
Ethernet
|
TCP/IP
|
MQTT
|
Broker
Karena menggunakan TCP/IP, MQTT dapat digunakan melalui jaringan lokal maupun jaringan yang lebih luas.
25. MQTT dan Internet
MQTT tidak hanya dapat digunakan dalam LAN.
Contohnya:
Factory
|
MQTT Gateway
|
Internet
|
Cloud MQTT Broker
|
Internet
|
Dashboard
Dengan arsitektur ini, data mesin dapat dimonitor dari lokasi lain.
Namun koneksi internet untuk sistem industri harus dirancang dengan memperhatikan keamanan.
26. Contoh Implementasi MQTT
Mari kita lihat contoh sederhana.
Misalnya kita mempunyai sebuah device yang membaca temperatur.
Device membaca:
28.5°C
Device melakukan publish:
Topic:
factory/line1/temperature
Payload:
28.5
MQTT Broker menerima data.
Dashboard melakukan subscribe:
factory/line1/temperature
Dashboard mendapatkan:
28.5
Kemudian dashboard menampilkan:
Temperature
28.5 °C
27. Contoh Data JSON
Untuk sistem yang lebih kompleks, kita dapat menggunakan JSON.
Contoh:
{
"machine": "M01",
"temperature": 32.5,
"pressure": 5.2,
"speed": 1450,
"status": "RUNNING"
}
Topic:
factory/line1/machine
Dengan satu message kita dapat mengirim beberapa parameter.
28. MQTT untuk Production Monitoring
MQTT juga dapat digunakan untuk production monitoring.
Misalnya sebuah PLC menghitung:
Target = 1000 pcs
Actual = 750 pcs
NG = 12 pcs
PLC atau gateway dapat mengirim:
factory/line1/production
dengan payload:
{
"target": 1000,
"actual": 750,
"ng": 12
}
Dashboard kemudian menghitung:
Progress = Actual / Target × 100%
Sehingga:
Progress = 750 / 1000 × 100%
= 75%
29. MQTT Tidak Sama dengan Database
Ini merupakan hal penting bagi pemula.
MQTT adalah protokol komunikasi.
Database digunakan untuk menyimpan data.
Contohnya:
PLC
|
| MQTT
v
MQTT Broker
|
v
Application Server
|
v
Database
|
v
Dashboard
MQTT bertugas membawa data.
Database bertugas menyimpan data.
30. MQTT Tidak Sama dengan HTTP
HTTP biasanya menggunakan konsep:
Client → Request → Server
Client ← Response ← Server
Sedangkan MQTT menggunakan:
Publisher
|
v
Broker
|
v
Subscriber
MQTT sangat cocok untuk komunikasi event dan telemetry yang membutuhkan komunikasi ringan.
HTTP tetap sangat berguna untuk:
- Web application
- REST API
- Web service
- Browser communication
Dalam sistem modern, MQTT dan HTTP bahkan dapat digunakan bersamaan.
31. Contoh Arsitektur IoT Industri
Contoh arsitektur lengkap:
┌──────────────────────┐
│ SENSOR │
│ Temp / Pressure / │
│ Energy / Production │
└──────────┬───────────┘
│
v
┌──────────────────────┐
│ PLC │
│ Control & Data │
│ Acquisition │
└──────────┬───────────┘
│
v
┌──────────────────────┐
│ Industrial Gateway │
│ MQTT Client │
└──────────┬───────────┘
│
Ethernet
│
v
┌──────────────────────┐
│ MQTT BROKER │
└──────────┬───────────┘
│
┌─────┼──────┐
│ │ │
v v v
Dashboard DB Cloud
Arsitektur seperti ini dapat menjadi dasar sistem Industrial IoT (IIoT).
32. Apa yang Harus Dipelajari untuk Bisa MQTT?
Jika ingin benar-benar bisa menggunakan MQTT, jangan hanya menghafalkan definisinya.
Pelajari secara bertahap.
Level 1 — Konsep
Pahami:
- MQTT
- Broker
- Publisher
- Subscriber
- Topic
- Payload
Level 2 — Praktik
Belajar:
- Membuat MQTT Broker
- Connect ke Broker
- Publish message
- Subscribe message
- Membuat topic
- Mengirim JSON
Level 3 — Advanced
Pelajari:
- QoS
- Retained Message
- LWT
- Authentication
- ACL
- TLS
- MQTT over Internet
Level 4 — Industrial IoT
Pelajari integrasi:
PLC
↓
Gateway
↓
MQTT
↓
Server
↓
Database
↓
Dashboard
33. Software yang Bisa Digunakan untuk Belajar
Untuk belajar MQTT, salah satu kombinasi yang sederhana adalah:
MQTT Broker:
Mosquitto
MQTT Client:
MQTT Explorer atau aplikasi MQTT client lainnya.
Dengan dua software tersebut kita sudah dapat melakukan simulasi:
PC 1
Publisher
|
v
MQTT Broker
|
v
PC 2
Subscriber
Bahkan semua komponen tersebut dapat dijalankan pada satu komputer untuk latihan.
34. Latihan MQTT Pertama
Cobalah membuat topic:
belajar/mqtt/temperature
Kemudian lakukan publish:
25
Subscriber melakukan subscribe:
belajar/mqtt/temperature
Jika berhasil, subscriber akan menerima:
25
Selanjutnya ubah payload menjadi:
26
27
28
29
30
Jika subscriber menerima perubahan tersebut, berarti konsep dasar MQTT sudah berhasil dipahami.
35. Latihan MQTT Menggunakan JSON
Selanjutnya coba kirim:
{
"temperature": 30,
"humidity": 70
}
Gunakan topic:
belajar/mqtt/sensor
Subscriber menerima data:
Temperature = 30°C
Humidity = 70%
Ini merupakan dasar komunikasi data IoT.
36. Dari Simulasi Menuju Sistem Industri
Setelah memahami MQTT secara sederhana, kita dapat mengganti publisher dengan perangkat nyata.
Misalnya:
Simulasi
↓
PC Publisher
diganti menjadi:
PLC
↓
MQTT Gateway
Kemudian subscriber:
PC MQTT Client
diganti menjadi:
Web Dashboard
Sehingga menjadi:
PLC
↓
MQTT Gateway
↓
MQTT Broker
↓
Web Dashboard
Pada tahap ini MQTT sudah mulai digunakan sebagai bagian dari sistem Industrial IoT.
37. Kesalahan yang Sering Dilakukan Pemula
1. Menganggap MQTT adalah database
MQTT bukan database.
MQTT adalah protokol komunikasi.
2. Menganggap Publisher harus mengetahui Subscriber
Tidak perlu.
Publisher cukup mengetahui Broker dan topic.
3. Membuat topic tidak terstruktur
Contoh:
temp1
temp2
temp3
Untuk sistem kecil mungkin tidak masalah.
Tetapi untuk sistem industri besar sebaiknya gunakan struktur:
factory/line1/machine1/temperature
4. Tidak memperhatikan keamanan
Jangan membuka MQTT Broker ke internet tanpa konfigurasi keamanan yang benar.
5. Mengirim terlalu banyak data
Tidak semua data PLC harus dikirim setiap scan.
Data sebaiknya dikirim berdasarkan kebutuhan.
Contohnya:
Temperature → setiap 1 detik
Production → ketika counter berubah
Alarm → ketika terjadi alarm
Machine Status → ketika status berubah
Strategi ini dapat mengurangi traffic dan beban sistem.
38. Kesimpulan
MQTT merupakan salah satu protokol penting dalam dunia IoT dan Industrial IoT.
Konsep dasarnya sebenarnya sederhana:
Publisher
↓
MQTT Broker
↓
Subscriber
Publisher mengirim data.
Broker menerima dan mendistribusikan data.
Subscriber menerima data sesuai topic yang di-subscribe.
Jika konsep berikut sudah dipahami:
- Publisher
- Subscriber
- Broker
- Topic
- Payload
- Publish
- Subscribe
- QoS
- Retained Message
- LWT
- Security
maka kita sudah memiliki dasar yang kuat untuk mulai membangun sistem MQTT.
Tahap selanjutnya adalah menghubungkan MQTT dengan perangkat nyata seperti:
Sensor
↓
PLC
↓
Gateway
↓
MQTT Broker
↓
Database
↓
Dashboard
Dari sinilah MQTT mulai menjadi sangat menarik karena dapat digunakan untuk membangun sistem monitoring mesin, production monitoring, energy monitoring, smart farming, smart building, hingga Industrial IoT.
Belajar MQTT bukan sekadar memahami protokolnya, tetapi memahami bagaimana data dari perangkat lapangan dapat dikirim, diproses, disimpan, dan ditampilkan menjadi informasi yang berguna.