Pada Level 8, kita telah mulai memasuki dunia pemrograman IoT. Kita telah mengenal Arduino IDE, GPIO, sensor, actuator, ESP32, debugging, serta koneksi Wi-Fi. Pada tahap tersebut, perangkat IoT sudah mampu membaca kondisi lingkungan dan terhubung ke jaringan.
Namun, ada satu pertanyaan penting:
Setelah ESP32 terhubung ke jaringan, bagaimana sebenarnya perangkat tersebut berkomunikasi dengan server atau perangkat lain?
Misalnya sebuah sensor suhu membaca:
Temperature = 29.5°C
Data tersebut kemudian ingin dikirim ke server.
Bagaimana cara mengirimnya?
Apakah menggunakan HTTP?
MQTT?
WebSocket?
TCP?
Atau REST API?
Di sinilah protokol komunikasi IoT menjadi sangat penting.
Tanpa mekanisme komunikasi yang jelas, perangkat mungkin dapat membaca sensor, tetapi tidak dapat bertukar data dengan sistem lain secara efektif.
Pada Level 9 Kurikulum Internet of Things Raja Putra Media ini, kita akan membangun pemahaman dari dasar:
Sensor
↓
ESP32
↓
Network
↓
Communication Protocol
↓
Server / Cloud
↓
Application
Kita akan membahas lima konsep utama:
- TCP/IP
- HTTP
- REST API
- MQTT
- WebSocket
Yang perlu dipahami sejak awal adalah bahwa kelima istilah tersebut tidak semuanya berada pada kategori yang sama.
TCP/IP merupakan fondasi networking.
HTTP merupakan protokol komunikasi aplikasi.
REST merupakan pendekatan arsitektur untuk membangun API.
MQTT merupakan protokol messaging yang sangat populer untuk IoT.
Sementara WebSocket menyediakan komunikasi dua arah yang berlangsung melalui satu koneksi yang terus terbuka.
Memahami perbedaan ini akan membantu kita memilih teknologi yang tepat ketika membangun sistem IoT.
Apa Itu Protokol Komunikasi IoT?
Protokol komunikasi IoT adalah seperangkat aturan yang digunakan perangkat, server, gateway, dan aplikasi untuk bertukar data secara terstruktur melalui jaringan.
Bayangkan dua orang ingin berkomunikasi.
Mereka membutuhkan bahasa dan aturan agar pesan dapat dipahami.
Hal serupa terjadi pada perangkat komputer.
ESP32
↓
"Pesan"
↓
Protocol
↓
Server
Protokol menentukan bagaimana data:
- dikirim;
- diterima;
- dibentuk;
- diidentifikasi;
- diproses;
- dan dalam beberapa kasus, bagaimana koneksi dikelola.
Dalam IoT, komunikasi dapat terjadi antara:
Device ↔ Device
Device ↔ Gateway
Device ↔ Server
Device ↔ Cloud
Device ↔ Dashboard
Mengapa Protokol Sangat Penting dalam IoT?
IoT bukan hanya tentang perangkat yang terkoneksi internet.
Sistem IoT yang sebenarnya melibatkan banyak komponen:
Sensor
↓
Microcontroller
↓
Gateway / Router
↓
Internet
↓
Cloud
↓
Database
↓
Application
Setiap komponen perlu memiliki cara berkomunikasi.
Misalnya ESP32 mengirim data:
Temperature: 29.5
Humidity: 72
Server harus mengetahui:
- dari siapa data tersebut berasal;
- format datanya;
- bagaimana data dikirim;
- bagaimana data diterima;
- bagaimana respons diberikan.
Protokol komunikasi menyediakan aturan tersebut.
Gambaran Sederhana Komunikasi IoT
Secara sederhana, komunikasi IoT dapat digambarkan:
┌──────────┐
│ SENSOR │
└────┬─────┘
↓
┌──────────┐
│ ESP32 │
└────┬─────┘
↓
┌──────────┐
│ NETWORK │
└────┬─────┘
↓
┌──────────┐
│ PROTOCOL │
└────┬─────┘
↓
┌──────────┐
│ SERVER │
└────┬─────┘
↓
┌──────────┐
│DASHBOARD │
└──────────┘
Protocol menjadi bagian yang memungkinkan data bergerak dari satu komponen ke komponen lainnya dengan aturan yang dipahami bersama.
Memahami TCP/IP Terlebih Dahulu
Sebelum membahas HTTP, MQTT, dan WebSocket, kita perlu memahami TCP/IP.
TCP/IP bukan satu protokol tunggal.
Istilah ini merujuk pada sekumpulan protokol networking yang menjadi fondasi komunikasi pada internet dan banyak jaringan komputer.
Sederhananya:
Application
↓
Transport
↓
Internet
↓
Network Access
Dalam praktik, kita akan menemukan protokol seperti:
- IP;
- TCP;
- UDP;
- DNS;
- dan berbagai protokol lainnya.
Apa Itu IP?
IP (Internet Protocol) bertugas membantu pengalamatan dan pengiriman paket antarjaringan.
Perangkat pada jaringan memiliki alamat IP.
Contoh:
ESP32
IP Address
192.168.1.20
Server mungkin memiliki alamat IP lain.
Server
IP Address
192.168.1.100
IP membantu paket mengetahui tujuan jaringan.
Secara sederhana:
ESP32
192.168.1.20
↓
↓
192.168.1.100
Server
Namun IP sendiri tidak menjelaskan bagaimana aplikasi IoT bertukar pesan.
Untuk itu, kita membutuhkan lapisan di atasnya.
Apa Itu TCP?
TCP (Transmission Control Protocol) merupakan protokol transport yang menyediakan komunikasi yang berorientasi koneksi dan memiliki mekanisme untuk membantu pengiriman data secara andal.
Secara sederhana:
Application
↓
TCP
↓
IP
↓
Network
TCP menangani berbagai aspek seperti:
- koneksi;
- segmentasi data;
- acknowledgment;
- retransmission;
- pengurutan data.
Karena itu, banyak protokol aplikasi berjalan di atas TCP.
Contohnya:
HTTP
↓
TCP
↓
IP
dan:
MQTT
↓
TCP
↓
IP
TCP vs UDP
Dalam networking, kita juga akan menemukan UDP (User Datagram Protocol).
Perbedaan sederhananya:
| TCP | UDP |
|---|---|
| Connection-oriented | Connectionless |
| Memiliki mekanisme reliability | Tidak menyediakan reliability seperti TCP |
| Memastikan urutan data | Tidak menjamin urutan |
| Overhead lebih tinggi | Overhead lebih rendah |
| Cocok untuk banyak aplikasi yang membutuhkan reliability | Cocok untuk aplikasi tertentu yang mengutamakan kecepatan/latensi dan menangani reliability di level lain |
Pemilihan TCP atau UDP bergantung pada kebutuhan sistem.
Untuk beberapa protokol IoT yang kita bahas di artikel ini, TCP merupakan fondasi yang umum.
Apa Itu HTTP?
HTTP (Hypertext Transfer Protocol) adalah protokol aplikasi yang sangat luas digunakan untuk pertukaran data melalui jaringan.
HTTP bekerja menggunakan model:
Client
↓
Request
↓
Server
↓
Response
↓
Client
Contohnya ESP32 bertindak sebagai client:
ESP32
↓
HTTP Request
↓
Server
↓
HTTP Response
Ini merupakan pola yang sangat mudah dipahami.
Contoh HTTP Request dalam IoT
Misalnya ESP32 ingin mengirim temperatur:
Temperature = 29.5°C
Perangkat dapat mengirim HTTP request ke server.
Secara konseptual:
POST /api/temperature
{
"temperature": 29.5
}
Server kemudian memberikan respons:
HTTP 200 OK
Artinya secara umum request berhasil diproses.
HTTP GET dan POST
Dua method HTTP yang sangat sering digunakan adalah:
GET
Biasanya digunakan untuk mengambil data.
ESP32
↓
GET /api/temperature
↓
Server
↓
Temperature Data
POST
Biasanya digunakan untuk mengirim data.
ESP32
↓
POST /api/temperature
↓
Server
Misalnya:
</> JSON
{
"device_id": "esp32-01",
"temperature": 29.5
}
HTTP dalam Sistem IoT
Contoh arsitektur:
Temperature Sensor
↓
ESP32
↓
Wi-Fi
↓
HTTP
↓
Web Server
↓
Database
↓
Dashboard
Ini merupakan pola yang sangat umum untuk aplikasi IoT sederhana hingga menengah.
Kelebihan HTTP untuk IoT
HTTP memiliki beberapa kelebihan:
- sangat populer;
- banyak library tersedia;
- mudah dipahami;
- server web sangat umum;
- mudah diintegrasikan dengan backend;
- cocok untuk REST API.
Karena itu, HTTP sering menjadi pilihan awal ketika belajar menghubungkan ESP32 dengan server.
Kekurangan HTTP untuk IoT
HTTP tidak selalu menjadi pilihan terbaik.
Dalam sistem dengan banyak perangkat yang mengirim data kecil secara berkala, overhead HTTP dapat menjadi pertimbangan.
Misalnya:
Sensor → HTTP Request → Server
dilakukan setiap beberapa detik oleh ribuan perangkat.
Traffic dapat menjadi cukup besar tergantung desain payload dan koneksi.
Untuk skenario seperti ini, MQTT sering lebih menarik.
Apa Itu REST API?
Ini adalah salah satu konsep yang sering membingungkan pemula.
REST bukan protokol seperti HTTP.
REST adalah pendekatan arsitektur untuk merancang layanan/API berbasis resource.
Dalam praktik, REST API sering menggunakan HTTP.
Contohnya:
GET /devices
GET /devices/001
POST /devices
PUT /devices/001
DELETE /devices/001
HTTP menjadi protokol komunikasinya.
REST menjadi pendekatan bagaimana endpoint dan resource tersebut dirancang.
Contoh REST API untuk IoT
Misalnya kita mempunyai perangkat:
Device ID: ESP32-001
Server dapat menyediakan endpoint:
GET /api/devices/ESP32-001
Untuk mengambil informasi perangkat.
Kemudian:
POST /api/devices/ESP32-001/data
untuk mengirim data sensor.
Contoh payload:
</> JSON
{
"temperature": 29.5,
"humidity": 71
}
Server dapat menyimpan data tersebut ke database.
REST API dan JSON
REST API dalam aplikasi modern sering menggunakan JSON (JavaScript Object Notation) untuk pertukaran data.
Contoh:
</> JSON
{
"device_id": "ESP32-001",
"temperature": 29.5,
"humidity": 71
}
JSON populer karena:
- mudah dibaca manusia;
- mudah diproses program;
- struktur fleksibel;
- didukung banyak bahasa pemrograman.
Namun, JSON bukan bagian yang wajib dari REST itu sendiri.
REST dapat menggunakan format representasi lain.
HTTP vs REST API
Jangan menyamakan keduanya.
HTTP
↓
Protocol
REST
↓
Architectural Style
Contoh:
ESP32
↓
HTTP
↓
REST API
↓
Server
Dengan kata lain, REST API biasanya dibangun menggunakan HTTP, tetapi REST dan HTTP merupakan konsep yang berbeda.
Apa Itu MQTT?
Sekarang kita masuk ke salah satu protokol terpenting dalam dunia IoT:
MQTT (Message Queuing Telemetry Transport).
MQTT merupakan protokol messaging yang dirancang untuk komunikasi yang ringan dan efisien, terutama pada lingkungan dengan keterbatasan bandwidth atau perangkat.
MQTT menggunakan model:
Publish / Subscribe
Ini berbeda dari pola HTTP yang umumnya:
Request / Response
Konsep Publish dan Subscribe
Bayangkan sebuah channel bernama:
home/temperature
ESP32 dapat menjadi publisher:
ESP32
↓
Publish
↓
home/temperature
↓
MQTT Broker
Kemudian dashboard menjadi subscriber:
MQTT Broker
↓
home/temperature
↓
Dashboard
Dengan demikian, ESP32 tidak perlu mengetahui secara langsung siapa yang menerima data.
Apa Itu MQTT Broker?
Broker merupakan server yang menerima, mengelola, dan meneruskan pesan MQTT berdasarkan topic dan subscription.
Arsitekturnya:
┌──────────────┐
ESP32 ──────→│ │
│ MQTT BROKER │
ESP32 ──────→│ │
│ │
Dashboard ←──│ │
└──────────────┘
Broker menjadi pusat komunikasi.
Apa Itu MQTT Topic?
Topic digunakan untuk mengidentifikasi jalur atau kategori pesan.
Contoh:
home/livingroom/temperature
atau:
factory/machine01/vibration
Perangkat dapat publish ke topic tertentu.
Subscriber kemudian melakukan subscribe pada topic yang dibutuhkan.
Contoh MQTT IoT
Misalnya sensor suhu mengirim:
Topic:
home/room1/temperature
Payload:
29.5
Alurnya:
Temperature Sensor
↓
ESP32
↓
Publish
↓
MQTT Broker
↓
Subscriber
↓
Dashboard
Jika terdapat aplikasi mobile yang juga subscribe topic tersebut, aplikasi juga dapat menerima data.
MQTT dan Command ke Perangkat
MQTT tidak hanya digunakan untuk mengirim data sensor.
Kita juga dapat mengirim perintah ke perangkat.
Misalnya:
home/room1/fan/command
Dashboard mengirim:
ON
Kemudian:
Dashboard
↓
Publish
↓
MQTT Broker
↓
ESP32
↓
Fan ON
Dengan demikian MQTT mendukung komunikasi dua arah antara perangkat dan sistem.
MQTT QoS
MQTT memiliki konsep Quality of Service (QoS).
Secara umum terdapat tiga tingkat:
QoS 0
Pesan dikirim tanpa jaminan delivery tambahan.
At most once
QoS 1
Pesan dijamin sampai setidaknya sekali, sehingga penerima dapat menerima duplikasi.
At least once
QoS 2
Menyediakan mekanisme untuk memastikan pesan diproses tepat satu kali dalam pertukaran MQTT yang sesuai.
Exactly once
Pemilihan QoS bergantung pada kebutuhan aplikasi.
Tidak selalu berarti QoS tertinggi adalah pilihan terbaik. QoS yang lebih tinggi dapat menambah overhead dan kompleksitas.
MQTT Retained Message
MQTT juga memiliki konsep retained message.
Secara sederhana, broker dapat menyimpan pesan terakhir pada topic tertentu sehingga subscriber baru dapat menerima nilai terakhir tersebut.
Misalnya:
home/room1/temperature
Nilai terakhir:
29.5°C
Ketika dashboard baru subscribe, broker dapat memberikan nilai terakhir yang disimpan sebagai retained message.
Ini sangat berguna untuk status perangkat.
MQTT Last Will and Testament
MQTT juga memiliki konsep Last Will and Testament (LWT).
Misalnya ESP32 tiba-tiba terputus.
Perangkat sebelumnya telah menetapkan pesan tertentu kepada broker:
Topic:
device/ESP32-001/status
Will:
offline
Jika koneksi berakhir secara tidak normal, broker dapat mempublikasikan pesan tersebut.
Dashboard kemudian dapat mengetahui bahwa perangkat offline.
Ini sangat berguna untuk monitoring device.
Apa Itu WebSocket?
WebSocket adalah protokol yang memungkinkan komunikasi dua arah secara real-time melalui koneksi yang tetap terbuka setelah proses pembentukan koneksi.
Model sederhananya:
Client ←────────→ Server
persistent
connection
Berbeda dengan pola request/response HTTP biasa yang sering digunakan secara terpisah untuk setiap operasi.
WebSocket dalam IoT
WebSocket sangat menarik untuk aplikasi yang membutuhkan update real-time.
Misalnya dashboard monitoring:
Sensor
↓
ESP32
↓
Server
↓
WebSocket
↓
Dashboard
Ketika data berubah:
Temperature:29.5 → 29.7 → 30.1 → 30.4
Dashboard dapat menerima pembaruan secara langsung melalui koneksi yang sedang terbuka.
Contoh Penggunaan WebSocket
WebSocket dapat digunakan untuk:
- live dashboard;
- real-time monitoring;
- device control;
- status update;
- interactive IoT applications.
Misalnya dashboard menampilkan:
Temperature: 30.2°C
Fan: ON
Humidity: 68%
Ketika perangkat mengirim data baru, UI dapat diperbarui tanpa harus terus-menerus melakukan polling HTTP.
HTTP Polling vs WebSocket
Dengan HTTP polling:
Dashboard
↓
GETServer
↓
Data
↓
Wait
↓
GET lagi
↓
Data
Sedangkan WebSocket:
Dashboard ←────────→ Server
Connection
tetap
Server dapat mengirim data ketika ada update sesuai desain aplikasi.
Ini membuat WebSocket menarik untuk kebutuhan real-time.
MQTT vs HTTP vs WebSocket
Sekarang kita dapat membandingkan ketiganya.
| Fitur | HTTP | MQTT | WebSocket |
|---|---|---|---|
| Model | Request/Response | Publish/Subscribe | Two-way communication |
| Broker | Tidak diperlukan secara bawaan | Ya | Tidak dalam konsep protokolnya |
| Real-time | Tidak ideal tanpa mekanisme tambahan | Sangat cocok | Sangat cocok |
| IoT device messaging | Cocok | Sangat cocok | Cocok |
| Web application | Sangat umum | Perlu integrasi MQTT | Sangat cocok |
| Komunikasi device-to-server | Cocok | Sangat cocok | Cocok |
| Implementasi backend | Sangat umum | Membutuhkan broker | Membutuhkan server WebSocket |
| Cocok untuk API | Sangat cocok | Bukan pola utama | Bukan pola utama |
Tidak ada satu protokol yang selalu paling baik.
Pemilihan bergantung pada arsitektur sistem.
Kapan Menggunakan HTTP?
HTTP cocok ketika:
- perangkat mengirim data secara periodik;
- backend sudah menggunakan HTTP;
- membutuhkan API sederhana;
- sistem tidak memerlukan komunikasi real-time;
- integrasi dengan web service menjadi prioritas.
Contoh:
ESP32
↓
HTTP POST
↓
REST API
↓
Database
Kapan Menggunakan MQTT?
MQTT sangat cocok ketika:
- jumlah perangkat cukup banyak;
- data dikirim dalam pesan kecil;
- membutuhkan publish/subscribe;
- membutuhkan komunikasi dua arah;
- koneksi perangkat tidak selalu ideal;
- sistem membutuhkan messaging antarperangkat.
Contoh:
Device
↓
MQTT
↓
Broker
↓
Multiple Subscribers
Kapan Menggunakan WebSocket?
WebSocket cocok ketika:
- dashboard membutuhkan update real-time;
- pengguna perlu melihat perubahan data secara langsung;
- server perlu mengirim event ke browser;
- aplikasi membutuhkan komunikasi dua arah yang persistent.
Contoh:
IoT Backend
↕
WebSocket
↕
Web Dashboard
MQTT dan WebSocket Bisa Digabungkan
Dalam sistem IoT yang lebih kompleks, kita tidak harus memilih satu teknologi untuk seluruh sistem.
Kita dapat menggunakan MQTT untuk device messaging dan WebSocket untuk dashboard.
Contohnya:
┌─────────────┐
ESP32 ─ MQTT → │ MQTT Broker │
└──────┬──────┘
↓
IoT Backend
↓
WebSocket
↓
Dashboard
Ini merupakan arsitektur yang sangat masuk akal.
ESP32 berkomunikasi menggunakan MQTT.
Backend menerima data.
Backend kemudian mengirim update real-time ke browser melalui WebSocket.
HTTP dan MQTT Juga Bisa Digabungkan
Contoh lainnya:
ESP32
↓
MQTT
↓
Broker
↓
Backend
↓
REST API
↓
Web / Mobile App
REST API digunakan untuk:
- mengambil histori;
- mengelola device;
- konfigurasi;
- autentikasi;
- administrasi.
MQTT digunakan untuk:
- telemetry;
- status;
- command;
- event.
Pendekatan seperti ini memungkinkan setiap teknologi digunakan sesuai fungsinya.
Contoh Arsitektur IoT Lengkap
Bayangkan sistem smart agriculture.
Sensor dan Actuator IoT mengukur:
- temperature;
- humidity;
- soil moisture.
Perangkat menggunakan ESP32.
Arsitektur:
┌──────────────┐
│ Sensor │
└──────┬───────┘
↓
┌──────────────┐
│ ESP32 │
└──────┬───────┘
↓
MQTT
↓
┌──────────────┐
│ MQTT Broker │
└──────┬───────┘
↓
┌──────────────┐
│ IoT Backend │
└──────┬───────┘
↓
┌───┴────┐
↓ ↓
REST API WebSocket
↓ ↓
└───┬────┘
↓
Dashboard
Sementara command untuk pompa dapat bergerak kembali:
Dashboard
↓
Backend
↓
MQTT
↓
ESP32
↓
Relay
↓
Water Pump
Inilah contoh bagaimana beberapa protokol dapat bekerja bersama dalam satu sistem.
Data Flow dalam Sistem IoT
Mari kita lihat sebuah contoh lengkap.
Sensor membaca:
Temperature = 31.2°C
ESP32 melakukan processing.
Kemudian:
ESP32
↓
MQTT Publish
↓
Topic: farm/zone1/temperature
↓
Broker
Backend menerima data:
31.2°C
Kemudian menyimpan ke database.
Dashboard mengambil data historis melalui REST API:
GET /api/farm/zone1/temperature
Untuk data real-time, dashboard menerima update melalui WebSocket.
MQTT
↓
Backend
↓
WebSocket
↓
Dashboard
Dengan demikian:
- MQTT menangani messaging device;
- backend menangani business logic;
- REST API menangani request data;
- WebSocket menangani update real-time.
Bagaimana Memilih Protokol IoT?
Gunakan beberapa pertanyaan berikut.
1. Apakah perangkat hanya perlu mengirim data?
HTTP bisa menjadi pilihan sederhana.
2. Apakah banyak perangkat perlu bertukar pesan?
MQTT menjadi kandidat kuat.
3. Apakah membutuhkan publish/subscribe?
Gunakan MQTT.
4. Apakah dashboard membutuhkan real-time update?
WebSocket dapat menjadi pilihan.
5. Apakah membutuhkan API untuk aplikasi web/mobile?
HTTP + REST API sangat umum digunakan.
6. Apakah sistem memiliki keterbatasan bandwidth?
Pertimbangkan protokol messaging yang lebih ringan dan desain payload yang efisien.
7. Apakah koneksi sangat tidak stabil?
Pertimbangkan karakteristik reliability, session, buffering, retry, dan QoS dari solusi yang dipilih.
Apakah MQTT Lebih Baik daripada HTTP?
Tidak selalu.
Pertanyaan yang lebih tepat adalah:
Protokol mana yang paling sesuai dengan kebutuhan sistem?
Misalnya:
Sensor sederhana → REST API
bisa sangat masuk akal.
Sementara:
10.000 perangkat → messaging → dashboard → command
mungkin lebih cocok menggunakan arsitektur berbasis MQTT.
Jangan memilih teknologi hanya karena sedang populer.
Apakah REST API Sama dengan MQTT?
Tidak.
REST API dan MQTT memiliki model komunikasi yang berbeda.
REST API
Client → Request → Server
Client ← Response ← Server
Sedangkan:
MQTT
Publisher → Broker → Subscriber
REST API cocok untuk resource-oriented API.
MQTT cocok untuk messaging.
Keduanya dapat digunakan dalam satu sistem.
Apakah MQTT Menggantikan HTTP?
Tidak.
MQTT dan HTTP menyelesaikan kebutuhan yang berbeda.
Bahkan sistem IoT yang kompleks dapat menggunakan keduanya.
Contoh:
MQTT
→ telemetry & commands
REST API
→ configuration & historical data
WebSocket
→ real-time dashboard
Keamanan dalam Komunikasi IoT
Komunikasi IoT tidak boleh hanya memikirkan:
"Data berhasil dikirim."
Kita juga harus mempertanyakan:
"Apakah data dikirim dengan aman?"
Beberapa hal yang perlu diperhatikan:
- authentication;
- authorization;
- encryption;
- credential management;
- certificate;
- secure transport;
- access control;
- device identity.
Dalam HTTP, penggunaan HTTPS memberikan HTTP di atas TLS.
Dalam MQTT, koneksi dapat diamankan menggunakan TLS dan mekanisme autentikasi yang sesuai.
Mengapa TLS Penting?
Bayangkan ESP32 mengirim:
username
password
sensor data
device command
Jika komunikasi tidak dilindungi dengan tepat, data dapat berisiko disadap atau dimanipulasi.
Secara sederhana:
HTTP
↓
TLS
↓
HTTPS
Untuk komunikasi IoT yang sensitif, penggunaan transport yang aman merupakan bagian penting dari desain sistem.
Authentication vs Authorization
Kedua istilah ini sering tertukar.
Authentication
Menjawab:
Siapa kamu?
Authorization
Menjawab:
Apa yang boleh kamu lakukan?
Misalnya:
ESP32-001
↓
Authentication
↓
Valid Device
↓
Authorization
↓
Boleh Publish Topic A
Ini sangat penting ketika jumlah perangkat mulai bertambah.
Device Identity
Dalam sistem IoT besar, setiap perangkat sebaiknya memiliki identitas yang dapat dikelola.
Contohnya:
Device ID:ESP32-001
Device ID:ESP32-002
Device ID:ESP32-003
Dengan identitas tersebut, backend dapat mengetahui:
- perangkat mana yang mengirim data;
- status perangkat;
- konfigurasi;
- izin;
- histori;
- koneksi.
Protokol IoT dan Edge Computing
Ketika sistem berkembang, tidak semua data harus dikirim langsung ke cloud.
Kita dapat menggunakan edge device.
Sensor
↓
ESP32
↓
Edge Gateway
↓
Local Processing
↓
Cloud
Gateway dapat melakukan:
- filtering;
- aggregation;
- protocol conversion;
- local analytics;
- buffering.
Misalnya sensor menggunakan protokol lokal, sementara gateway meneruskan data ke cloud menggunakan MQTT atau HTTP.
Protocol Gateway
Dalam sistem industri, satu gateway bahkan dapat menjembatani beberapa protokol.
Contohnya secara konseptual:
Industrial Sensor
↓
Protocol A
↓
Gateway
↓
MQTT
↓
Cloud Platform
Ini menunjukkan bahwa sistem IoT nyata sering jauh lebih kompleks daripada:
Sensor → Wi-Fi → Cloud
Kesalahan Umum Memahami Protokol IoT
1. Menganggap HTTP dan REST Sama
HTTP adalah protokol.
REST adalah pendekatan arsitektur.
2. Menganggap TCP/IP sebagai Satu Protokol
TCP/IP merupakan keluarga/sekumpulan protokol networking.
3. Menganggap MQTT adalah Pengganti Internet
MQTT merupakan protokol messaging yang berjalan di atas jaringan.
4. Menggunakan MQTT Tanpa Memahami Broker
MQTT menggunakan broker sebagai komponen penting dalam model publish/subscribe.
5. Menggunakan WebSocket untuk Semua Hal
WebSocket sangat berguna untuk real-time communication, tetapi tidak otomatis menjadi pilihan terbaik untuk setiap kebutuhan IoT.
6. Mengabaikan Keamanan
Koneksi yang berhasil bukan berarti koneksi aman.
Ringkasan Perbedaan HTTP, MQTT, WebSocket, TCP/IP, dan REST API
| Teknologi | Kategori | Model Utama | Penggunaan IoT |
|---|---|---|---|
| TCP/IP | Networking suite | Network communication | Fondasi konektivitas |
| HTTP | Application protocol | Request/Response | API & web communication |
| REST | Architectural style | Resource-oriented | Desain API |
| MQTT | Messaging protocol | Publish/Subscribe | Telemetry & command |
| WebSocket | Communication protocol | Persistent two-way | Real-time application |
Cara paling mudah mengingatnya:
TCP/IP
↓
Fondasi networking
HTTP
↓
Request / Response
REST
↓
Cara merancang API
MQTT
↓
Publish / Subscribe
WebSocket
↓
Real-time two-way
Contoh Pemilihan Protokol
Misalnya kita membangun smart home.
Sensor suhu
ESP32 → MQTT → Broker
Dashboard
Backend → WebSocket → Browser
Pengaturan perangkat
Mobile App → REST API → Backend
Networking
MQTT / HTTP / WebSocket
↓
TCP
↓
IP
↓
Network
Dengan demikian, semua teknologi dapat bekerja bersama.
Roadmap Setelah Memahami Protokol IoT
Setelah Level 9, kita telah memahami:
Sensor
↓
ESP32
↓
Programming
↓
Network
↓
Protocol
↓
Server
Tahap berikutnya adalah memahami data yang dikirim.
Bagaimana data sensor disimpan?
Bagaimana format JSON dibuat?
Bagaimana database menyimpan jutaan data?
Bagaimana dashboard membaca data?
Bagaimana histori sensor dianalisis?
Pertanyaan tersebut membawa kita menuju bagian berikutnya dalam perjalanan belajar IoT.
FAQ Protokol Komunikasi IoT
Apa itu protokol komunikasi IoT?
Protokol komunikasi IoT adalah aturan yang memungkinkan perangkat, server, gateway, dan aplikasi bertukar data melalui jaringan.
Apa protokol IoT yang paling populer?
Beberapa teknologi yang umum digunakan antara lain HTTP, MQTT, WebSocket, TCP/IP, dan berbagai protokol lainnya. Pilihan terbaik bergantung pada kebutuhan sistem.
Apa perbedaan MQTT dan HTTP?
HTTP umumnya menggunakan pola request/response, sedangkan MQTT menggunakan publish/subscribe melalui broker. MQTT sangat populer untuk telemetry dan messaging perangkat IoT.
Apa perbedaan MQTT dan WebSocket?
MQTT merupakan protokol messaging dengan model publish/subscribe, sedangkan WebSocket menyediakan komunikasi dua arah yang persisten antara client dan server. Keduanya dapat digunakan untuk kebutuhan real-time, tetapi arsitekturnya berbeda.
Apakah REST API merupakan protokol?
Tidak. REST merupakan gaya arsitektur untuk merancang API. REST API biasanya menggunakan HTTP sebagai protokol komunikasinya.
Apakah MQTT menggunakan TCP?
MQTT secara umum menggunakan TCP sebagai transport, dengan opsi pengamanan melalui TLS.
Apakah ESP32 bisa menggunakan MQTT?
Ya. ESP32 dapat digunakan sebagai MQTT client untuk publish dan subscribe pesan melalui MQTT broker.
Apakah ESP32 bisa menggunakan HTTP REST API?
Ya. ESP32 dapat mengirim HTTP request ke server dan berinteraksi dengan REST API sesuai desain backend.
Kapan WebSocket digunakan dalam IoT?
WebSocket sangat berguna ketika aplikasi membutuhkan komunikasi dua arah dan update real-time, misalnya dashboard monitoring.
Kesimpulan
Protokol komunikasi merupakan salah satu fondasi terpenting dalam sistem IoT.
Perangkat IoT tidak cukup hanya memiliki sensor, microcontroller, dan koneksi Wi-Fi. Perangkat tersebut juga harus memiliki mekanisme untuk bertukar data dengan perangkat, server, gateway, maupun cloud.
Pada level ini kita telah membedakan:
TCP/IP
Fondasi networking yang memungkinkan perangkat berkomunikasi melalui jaringan.
HTTP
Protokol aplikasi dengan model request/response yang sangat umum digunakan untuk web dan API.
REST API
Pendekatan arsitektur untuk merancang API berbasis resource, yang sering menggunakan HTTP.
MQTT
Protokol messaging dengan model publish/subscribe yang sangat cocok untuk banyak skenario IoT.
WebSocket
Protokol komunikasi dua arah yang persisten dan berguna untuk aplikasi real-time.
Jika dirangkum:
INTERNET / NETWORK
│
TCP/IP
│
┌────────────────┼────────────────┐
↓ ↓ ↓
HTTP MQTT WebSocket
↓ ↓ ↓
REST API Broker Real-time
↓ ↓ ↓
Backend IoT Devices Dashboard
Dan dalam sistem IoT modern, kita tidak harus memilih hanya satu.
Sebuah arsitektur dapat menggunakan:
MQTT
→ komunikasi device
REST API
→ akses data & konfigurasi
WebSocket
→ real-time dashboard
TCP/IP
→ fondasi networking
Pemahaman ini menjadi sangat penting karena mulai dari level berikutnya, kita tidak lagi hanya berbicara tentang bagaimana perangkat berkomunikasi, tetapi juga tentang bagaimana data IoT disimpan, diproses, dianalisis, dan divisualisasikan.
Lanjut ke Level 10
Sebelum lanjut ke level berikutnya, sebaiknya pelajari kembali Level 8 – Dasar Pemrograman IoT: Arduino IDE, Sensor, GPIO, dan Koneksi perangkat menggunakan ESP32. Kemudian pada Level 10, kita akan masuk tahap praktik yaitu membuat proyek IoT pertama dari dengan ESP32. Dari proyek sederhana ini, kita sudah memiliki fondasi untuk membangun sistem yang lebih serius
Level 10 — Membuat Proyek IoT Pertama: Panduan Sensor hingga Monitoring Data.
Kita akan membahas perjalanan data secara lengkap mulai dari sensor, ESP32, koneksi Wi-Fi, pengiriman data, hingga monitoring melalui dashboard dengan langkah yang mudah dipahami pemula.
Tinggalkan komentar