Beranda IoT Protokol Komunikasi IoT: HTTP, MQTT, WebSocket, TCP/IP & REST API
IoT

Protokol Komunikasi IoT: HTTP, MQTT, WebSocket, TCP/IP & REST API

Pelajari protokol komunikasi IoT seperti HTTP, MQTT, WebSocket, TCP/IP, dan REST API, termasuk cara kerja, perbedaan, contoh, dan cara memilihnya.

Bagikan
protokol komunikasi iot
Bagikan

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:

  1. TCP/IP
  2. HTTP
  3. REST API
  4. MQTT
  5. 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).

Baca juga:  Mikrokontroler untuk IoT: Arduino, ESP8266, ESP32, dan Raspberry Pi

Perbedaan sederhananya:

TCPUDP
Connection-orientedConnectionless
Memiliki mekanisme reliabilityTidak menyediakan reliability seperti TCP
Memastikan urutan dataTidak menjamin urutan
Overhead lebih tinggiOverhead lebih rendah
Cocok untuk banyak aplikasi yang membutuhkan reliabilityCocok 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.

Baca juga:  Membuat Proyek IoT Pertama: Panduan Sensor hingga Monitoring Data

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.

FiturHTTPMQTTWebSocket
ModelRequest/ResponsePublish/SubscribeTwo-way communication
BrokerTidak diperlukan secara bawaanYaTidak dalam konsep protokolnya
Real-timeTidak ideal tanpa mekanisme tambahanSangat cocokSangat cocok
IoT device messagingCocokSangat cocokCocok
Web applicationSangat umumPerlu integrasi MQTTSangat cocok
Komunikasi device-to-serverCocokSangat cocokCocok
Implementasi backendSangat umumMembutuhkan brokerMembutuhkan server WebSocket
Cocok untuk APISangat cocokBukan pola utamaBukan 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.

Baca juga:  Dasar Pemrograman IoT: Arduino IDE, Sensor, GPIO, dan Koneksi

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

TeknologiKategoriModel UtamaPenggunaan IoT
TCP/IPNetworking suiteNetwork communicationFondasi konektivitas
HTTPApplication protocolRequest/ResponseAPI & web communication
RESTArchitectural styleResource-orientedDesain API
MQTTMessaging protocolPublish/SubscribeTelemetry & command
WebSocketCommunication protocolPersistent two-wayReal-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.

Bagikan

Tinggalkan komentar

Tinggalkan Balasan

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

Artikel Terkait
membuat proyek iot pertama
IoT

Membuat Proyek IoT Pertama: Panduan Sensor hingga Monitoring Data

Pelajari cara membuat proyek IoT pertama dari sensor, ESP32, koneksi Wi-Fi, pengiriman...

pemrograman IoT
IoT

Dasar Pemrograman IoT: Arduino IDE, Sensor, GPIO, dan Koneksi

Pelajari dasar pemrograman IoT dengan Arduino IDE, mulai dari program pertama, GPIO,...

sensor dan actuator iot
IoT

Sensor dan Actuator IoT: Jenis, Fungsi, dan Cara Kerjanya

Pelajari sensor dan actuator IoT, mulai dari pengertian, jenis, fungsi, cara kerja,...

mikrokontroler untuk iot
IoT

Mikrokontroler untuk IoT: Arduino, ESP8266, ESP32, dan Raspberry Pi

Pelajari mikrokontroler untuk IoT mulai dari Arduino, ESP8266, ESP32, hingga Raspberry Pi....