Modul 2: Protokol IoT
1. Pengertian Protokol Komunikasi IoT
Protokol IoT adalah seperangkat aturan dan standar yang mengatur bagaimana perangkat IoT berkomunikasi dan bertukar data melalui jaringan. Protokol menentukan format data, metode transmisi, keamanan, dan cara perangkat saling berinteraksi.
Mengapa Protokol IoT Berbeda?
Protokol IoT dirancang khusus untuk mengatasi tantangan unik dalam lingkungan IoT:
- Keterbatasan Daya: Perangkat IoT sering beroperasi dengan baterai
- Bandwidth Terbatas: Jaringan dengan bandwidth rendah
- Latensi Rendah: Komunikasi real-time yang responsif
- Keandalan: Tetap terhubung dalam kondisi jaringan tidak stabil
- Keamanan: Proteksi data yang sensitif
Klasifikasi Protokol IoT
Publish-Subscribe
MQTT, AMQP
Model komunikasi many-to-many dengan broker sebagai perantara
Request-Response
CoAP, HTTP
Model komunikasi client-server tradisional
Data Distribution
DDS, WebSocket
Distribusi data real-time untuk aplikasi kritis
2. Protokol MQTT (Message Queuing Telemetry Transport)
Message Queuing Telemetry Transport
Protokol publish-subscribe yang ringan
MQTT adalah protokol messaging yang dirancang untuk perangkat dengan resource terbatas dan jaringan dengan bandwidth rendah. Menggunakan model publish-subscribe dengan broker sebagai pusat komunikasi.
Karakteristik MQTT:
- Model Publish-Subscribe
- Quality of Service (QoS) levels
- Header yang sangat ringan (2 bytes)
- Mendukung last will dan testament
- Automatic reconnection
Contoh Implementasi MQTT:
# Callback ketika terhubung ke broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("Connected to broker")
client.publish("sensor/temperature", "25.5")
# Buat client MQTT
client = mqtt.Client()
client.on_connect = on_connect
client.connect("broker.hivemq.com", 1883, 60)
client.loop_forever()
3. Protokol CoAP (Constrained Application Protocol)
Constrained Application Protocol
Protokol web untuk perangkat terbatas
CoAP adalah protokol aplikasi web yang dirancang khusus untuk perangkat dengan resource terbatas. CoAP menggunakan UDP sebagai transport dan mengadopsi semantik RESTful seperti HTTP.
Karakteristik CoAP:
- Berbasis UDP dengan keandalan opsional
- Semantik RESTful (GET, POST, PUT, DELETE)
- Header sangat ringan (4 bytes)
- Mendukung observasi resources
- Discovery menggunakan DNS-SD
Contoh Implementasi CoAP:
// Request GET ke server CoAP
const req = coap.request('coap://localhost/temperature')
req.on('response', (res) => {
console.log('Response:', res.payload.toString())
})
req.end()
4. HTTP/REST API untuk IoT
Hypertext Transfer Protocol
Protokol web standar untuk IoT
Meskipun bukan dirancang khusus untuk IoT, HTTP/REST API banyak digunakan dalam sistem IoT karena kesederhanaan dan kompatibilitasnya dengan infrastruktur web yang sudah ada.
Keunggulan HTTP untuk IoT:
- Kompatibel dengan infrastruktur web existing
- Dukungan TLS/SSL untuk keamanan
- Mudah di-debug dan di-monitor
- Dukungan tools dan library yang luas
- Stateless dan scalable
Contoh REST API untuk IoT:
import json
# Data sensor yang akan dikirim
sensor_data = {
"temperature": 25.5,
"humidity": 60,
"device_id": "sensor_001"
}
# POST data ke REST API
response = requests.post(
"https://api.iotplatform.com/sensor-data",
json=sensor_data,
headers={"Content-Type": "application/json"}
)
if response.status_code == 200:
print("Data sent successfully")
5. Protokol AMQP (Advanced Message Queuing Protocol)
Advanced Message Queuing Protocol
Protokol messaging untuk enterprise
AMQP adalah protokol messaging yang dirancang untuk sistem enterprise yang membutuhkan keandalan tinggi, keamanan, dan interoperabilitas antar platform.
Karakteristik AMQP:
- Mendukung berbagai pola messaging
- Keamanan enterprise-level
- Transaction support
- Flow control yang sophisticated
- Interoperabilitas cross-platform
Komponen AMQP:
- Exchange: Menerima dan merute messages
- Queue: Menyimpan messages
- Binding: Aturan routing antara exchange dan queue
- Message: Data yang ditransfer
6. Perbandingan Protokol IoT
| Protokol | Transport | Model | Konsumsi Daya | Latensi | Use Case |
|---|---|---|---|---|---|
| MQTT | TCP | Pub-Sub | Sensor networks, mobile apps | ||
| CoAP | UDP | Req-Resp | Constrained devices, smart lighting | ||
| HTTP | TCP | Req-Resp | Web integration, APIs | ||
| AMQP | TCP | Message Queue | Enterprise systems, banking |
Pemilihan Protokol Berdasarkan Kebutuhan
Untuk Battery-Powered Devices
Rekomendasi: CoAP, MQTT-SN
Protokol yang mengoptimalkan konsumsi daya dengan header ringan dan mekanisme sleep
Untuk Real-time Applications
Rekomendasi: MQTT, WebSocket
Protokol dengan latensi rendah dan dukungan komunikasi real-time
Untuk Enterprise Systems
Rekomendasi: AMQP, HTTP/REST
Protokol dengan keamanan tinggi dan fitur enterprise-grade