Modul 2: Protokol IoT

Pertemuan 2-3 Sub-CPMK: 1.2
CPL-04 CPL-11

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

M

Publish-Subscribe

MQTT, AMQP

Model komunikasi many-to-many dengan broker sebagai perantara

C

Request-Response

CoAP, HTTP

Model komunikasi client-server tradisional

H

Data Distribution

DDS, WebSocket

Distribusi data real-time untuk aplikasi kritis

2. Protokol MQTT (Message Queuing Telemetry Transport)

MQTT

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

Alur Komunikasi MQTT

Publisher
PUBLISH message
Broker
Receive & Route
Subscriber
Receive Message

Contoh Implementasi MQTT:

Python - Publisher MQTT
import paho.mqtt.client as 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)

CoAP

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:

JavaScript - Client CoAP
const coap = require('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

HTTP

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:

Python - REST API Client
import requests
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)

AMQP

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 Rendah Rendah Sensor networks, mobile apps
CoAP UDP Req-Resp Sangat Rendah Sangat Rendah Constrained devices, smart lighting
HTTP TCP Req-Resp Tinggi Menengah Web integration, APIs
AMQP TCP Message Queue Tinggi Menengah 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

7. Simulator Protokol MQTT

Simulasi Komunikasi MQTT

MQTT Simulator Ready. Click "Connect" to start.

8. Kuis Pemahaman Protokol IoT

1. Protokol mana yang menggunakan model publish-subscribe?

  • A. HTTP
  • B. CoAP
  • C. MQTT
  • D. FTP

2. Protokol mana yang paling cocok untuk perangkat dengan baterai terbatas?

  • A. HTTP
  • B. AMQP
  • C. CoAP
  • D. SMTP

3. Apa keunggulan utama MQTT dibanding HTTP untuk aplikasi IoT?

  • A. Header yang lebih ringan
  • B. Dukungan untuk video streaming
  • C. Kompatibilitas dengan browser web
  • D. Dukungan untuk transfer file besar

4. Protokol mana yang menggunakan UDP sebagai transport layer?

  • A. MQTT
  • B. HTTP
  • C. CoAP
  • D. AMQP