IoT MQTT Protocol
IoT MQTT Protocol
Internet Things
Dashboard
We need a protocol
IoT Data Protocol
● HTTP (Hypertext Transfer Protocol)
● MQTT (Message Queue Telemetry Transport)
HTTP MQTT
Apa itu MQTT ?
Message Queuing Telemetry Transport. merupakan protokol messaging yang menggunakan model Publish-
Subscribe.
Komponen MQTT
1. QoS 0 (at most once delivery) : pesan hanya dikirim sekali, setelah pesan dikirim tidak ada
respon apakah pesan berhasil dikirim, pesan bisa saja tidak terkirim, atau tidak diterima subscriber.
2. QoS 1 (at least once delivery) : pesan paling sedikit dikirim sekali, jika subscriber tidak
menerima pesan maka broker akan mengirim respon terhadap publisher bahwa pesan gagal
dikirim. Kemungkinan duplikasi pesan dapat terjadi.
3. QoS 2 (exactly once delivery) : pesan dikirim sekali dan hanya sekali. QoS 2 memastikan
bahwa pesan diterima subscriber. Mencegah adanya duplikasi pesan.
MQTT Packet Format
MQTT Topic
Multi-level
Compare
ESP
Connection
Wi-FI Mode
#include <WiFi.h>
Librari ini adalah libarray untuk menggunakan Modul WiFi yang
tersedia pada board ESP, library ini secara otomatis akan terinstal Wi-Fi Client
ketika anda menambahkan ESP32 ke Arduino IDE Anda (STATION)
Router
1. Station Mode (STA) (ACCESS POINT)
2. Access Point Mode (AP) ESP32
(STATION)
3. STA & AP Mode
Wi-Fi Client
(STATION)
Fungsinya
WiFi.mode(WIFI_STA) Station Mode : ESP32 dapat connect ke AP
Wi-Fi Client
(STATION) WiFi.mode(WIFI_AP) Access Point mode: stations dapat terhubung ke ESP32
WiFi.mode(WIFI_STA_AP) ESP32 dapat diatur sebagai stasiun Wi-Fi dan titik akses
secara bersamaan
ESP32
(ACCESS POINT)
Wi-Fi Client
(STATION)
Scan Wi-Fi Networks
Function Keterangan
Function Keterangan
Publish
topic temp
& hum
MQTT
Broker
http://www.mqtt-dashboard.com/
MQTT Client
MQTT Publisher
MQTT Subscriber
MQTT
Sensor Cahaya
LCD 16x2
Broker Subscriber
Publisher
DHT
DHT22
#include <DHT.h> Salah satu alternatif library yang digunakan untuk
mengakses DHT Module
DHT digunakan untuk membuat objek dari kelas DHT
dhtku(DHTPIN,DHTTYPE);
dhtku.begin(); menginisialisasi sensor DHT dan menyiapkan koneksi
antara sensor DHT dan board Arduino
dhtku.readHumidity(); Digunakan untuk mangakses fungsi pembacaan nilai
humidity (%)
dhtku.readTemperature(); Digunakan untuk mangakses fungsi pembacaan nilai
temperature dalam celcius
I2C (Inter-Integrated Circuit) atau Two Wire Interface
LCD
#include <LiquidCrystal_I2C.h> Library yang digunakan untuk
mengakses LCD 16x2 dengan module
I2C
LiquidCrystal_I2C lcdku(0x27, 16, 2); membuat objek dari kelas LiquidCrystal_I2C
dengan address tertentu
lcdku.init(); menginisialisasi lcd
Function Keterangan
mqttClient.connected() Mengembalikan nilai True jika berhasil terkoneksi dan False jika belum
mqttClient.connect(clientID) Untuk dapat terhubung dengan broker (ClientID harus unique) dan memiliki
keluaran Boolean
mqttClient.publish(topic, payload) Untuk melakukan publish ke suatu topic (Payload berupa String)
client.loop() untuk memproses semua penerimaan dan pengiriman pesan yang tersedia untuk
klien (client)
Wokwi Link
• Scan Wifi : https://wokwi.com/projects/356536057700109313
• Connect to Network : https://wokwi.com/projects/356552645200576513
• Publisher : https://wokwi.com/projects/356645399959380993
• Subscriber : https://wokwi.com/projects/356646013877586945
• Seb Led : https://wokwi.com/projects/356666910782912513