Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Senin, 03 Agustus 2026

ESP32 dengan HiveMQ Cloud - Cara Menghubungkan ESP32 ke HiveMQ Cloud Menggunakan MQTT

Internet of Things (IoT) memungkinkan berbagai perangkat saling bertukar data melalui internet secara real-time. Salah satu metode komunikasi yang paling banyak digunakan dalam sistem IoT adalah MQTT (Message Queuing Telemetry Transport). Protokol ini dirancang agar ringan, cepat, dan hemat bandwidth, sehingga sangat cocok digunakan pada mikrokontroler seperti ESP32. Agar ESP32 dapat mengirim maupun menerima data melalui MQTT, dibutuhkan sebuah MQTT Broker yang berfungsi sebagai perantara komunikasi antarperangkat. Salah satu layanan broker MQTT berbasis cloud yang mudah digunakan adalah HiveMQ Cloud. HiveMQ Cloud menyediakan broker MQTT yang dapat diakses melalui internet tanpa perlu membuat atau mengelola server sendiri. Anda cukup membuat sebuah broker, menambahkan username dan password sebagai autentikasi, kemudian ESP32 dapat langsung terhubung menggunakan koneksi yang aman melalui protokol TLS (Transport Layer Security). Pada tutorial ini, Anda akan mempelajari cara membuat broker MQTT di HiveMQ Cloud, menghubungkan ESP32 menggunakan MQTT, mengirim data (publish), serta menerima data (subscribe) melalui koneksi yang terenkripsi. Seluruh proses dilakukan menggunakan HiveMQ Cloud Free, sehingga dapat diikuti tanpa perlu menyewa VPS maupun membangun server MQTT sendiri.

Apa itu HiveMQ Cloud?

HiveMQ Cloud merupakan layanan MQTT Broker berbasis cloud yang memungkinkan perangkat IoT saling bertukar data melalui internet menggunakan protokol MQTT. Seluruh proses pengelolaan server dilakukan oleh HiveMQ sehingga pengguna hanya perlu membuat broker dan menghubungkan perangkat yang akan digunakan. Berbeda dengan menjalankan broker MQTT secara mandiri menggunakan Mosquitto atau EMQX pada VPS maupun komputer lokal, HiveMQ Cloud menawarkan proses konfigurasi yang jauh lebih sederhana

 

Anda tidak perlu melakukan instalasi server, konfigurasi jaringan, ataupun membuka port secara manual. Setelah broker dibuat, perangkat seperti ESP32 dapat langsung terhubung menggunakan alamat broker yang telah disediakan. Selain kemudahan konfigurasi, HiveMQ Cloud juga mendukung koneksi TLS (Transport Layer Security) sehingga komunikasi antara ESP32 dan broker MQTT akan dienkripsi selama proses transmisi data. Dengan demikian, informasi seperti username, password, maupun data yang dikirim menjadi lebih aman ketika melewati jaringan internet.

 

Baca juga: ESP32 GPIO Interrupt - Cara Menggunakan Interrupt pada GPIO ESP32 untuk Respon yang Cepat dan Efisien 

Mengapa Menggunakan HiveMQ Cloud?

Terdapat banyak layanan MQTT Broker yang dapat digunakan bersama ESP32. Namun, HiveMQ Cloud memiliki beberapa keunggulan yang menjadikannya pilihan yang tepat, terutama bagi pemula maupun pengembang IoT. Beberapa kelebihan HiveMQ Cloud antara lain:

- Tidak perlu menginstal maupun mengelola server MQTT sendiri.

- Menyediakan paket Free yang dapat digunakan untuk proses pembelajaran dan pengembangan proyek skala kecil.

- Mendukung protokol MQTT versi 3.1.1 dan MQTT 5.

- Mendukung koneksi TLS sehingga komunikasi lebih aman.

- Konfigurasi broker relatif sederhana dan mudah dipahami.

- Dapat digunakan dari berbagai perangkat maupun platform yang mendukung MQTT.

Dengan berbagai kelebihan tersebut, HiveMQ Cloud menjadi salah satu layanan yang cocok digunakan sebagai broker MQTT untuk proyek ESP32.

Cara Kerja ESP32 dengan HiveMQ Cloud

Pada sistem MQTT, ESP32 tidak berkomunikasi secara langsung dengan perangkat lain. Seluruh proses pertukaran data dilakukan melalui sebuah MQTT Broker. Saat ESP32 mengirim data, data tersebut akan dikirim ke broker menggunakan proses Publish. Selanjutnya, broker akan meneruskan data tersebut kepada seluruh perangkat yang telah melakukan Subscribe pada topik (topic) yang sama. Sebagai contoh, ESP32 membaca nilai suhu dari sensor kemudian mengirimkannya ke topik:

 

esp32/temperature

 

Broker HiveMQ Cloud akan menerima data tersebut, kemudian meneruskannya kepada seluruh aplikasi atau perangkat yang sedang melakukan subscribe pada topik tersebut, misalnya aplikasi MQTT Explorer, MQTTX, Node-RED, maupun ESP32 lainnya. Sebaliknya, apabila sebuah aplikasi mengirimkan perintah ke topik:

 

esp32/led

 

ESP32 yang telah melakukan subscribe pada topik tersebut akan menerima pesan dan menjalankan perintah, misalnya menyalakan atau mematikan LED. Mekanisme komunikasi tersebut membuat perangkat IoT tidak perlu mengetahui alamat IP perangkat lain karena seluruh proses distribusi data ditangani oleh broker MQTT.

Alur Cara Kerja MQTT

Alur komunikasinya adalah sebagai berikut:

1. ESP32 menghubungkan diri ke jaringan WiFi.

2. ESP32 melakukan autentikasi ke HiveMQ Cloud menggunakan username dan password.

3. Setelah koneksi berhasil, ESP32 dapat mengirim (publish) data ke broker MQTT.

4. Broker akan meneruskan data tersebut kepada seluruh client yang melakukan subscribe pada topik yang sama.

5. Client lain juga dapat mengirim pesan ke broker sehingga ESP32 dapat menerima data melalui proses subscribe.

Persiapan Menghubungkan ESP32 ke HiveMQ Cloud Menggunakan MQTT

Sebelum memulai tutorial, siapkan beberapa perangkat dan aplikasi berikut:

Perangkat Keras

- Board ESP32

- Kabel USB

- Komputer atau laptop

- Koneksi internet

- Jaringan WiFi

Perangkat Lunak

- Arduino IDE

- Driver USB ESP32 (jika diperlukan)

- Library MQTTClient

- Library ArduinoJson

- Akun HiveMQ Cloud

Menginstal Library Arduino

Tutorial ini menggunakan beberapa library tambahan yang harus dipasang terlebih dahulu pada Arduino IDE.

1. Buka Arduino IDE, kemudian pilih menu Sketch → Include Library → Manage Libraries...

2. Selanjutnya, instal library MQTTClient

3. Cari library dengan kata kunci MQTTClient

4. Kemudian instal library ArduinoMqttClient by Arduino.

5. Cari library ArduinoJson

6. Kemudian instal library ArduinoJson karya Benoît Blanchon.

Setelah kedua library tersebut berhasil dipasang, Arduino IDE telah siap digunakan untuk membuat program ESP32 yang akan terhubung ke HiveMQ Cloud.

Membuat Akun HiveMQ Cloud

Sebelum ESP32 dapat terhubung ke broker MQTT, Anda perlu memiliki akun HiveMQ Cloud terlebih dahulu. Buka situs resmi HiveMQ Cloud melalui browser, kemudian buat akun baru menggunakan alamat email yang masih aktif. Jika sudah memiliki akun, cukup lakukan proses login. Setelah berhasil masuk, Anda akan diarahkan ke halaman Connect & Manage Network yang digunakan untuk membuat dan mengelola broker MQTT. Berikut langkah-langkah yang dapat Anda lakukan:

1. Membuat Broker MQTT

- Pada halaman Connect & Manage Network, klik tombol Get Broker or Edge.

- Selanjutnya, pilih paket Free, kemudian tentukan lokasi (Region) server sesuai kebutuhan. Setelah itu, masukkan nama broker yang diinginkan.

- Sebagai contoh, gunakan nama Free #1

- Kemudian klik tombol Create.

- Tunggu beberapa saat hingga proses pembuatan broker selesai. Jika berhasil, status broker akan berubah menjadi Running, yang menandakan bahwa broker MQTT telah aktif dan siap digunakan.



2. Melihat Informasi Broker

- Klik nama broker yang telah dibuat untuk membuka halaman detail broker.

- Pada tab Overview, bagian Connection Details akan menampilkan informasi yang diperlukan untuk menghubungkan ESP32 ke HiveMQ Cloud.


- Catat informasi berikut:

- MQTT URL

- TLS MQTT URL

- Port MQTT TLS (8883)

Informasi tersebut akan digunakan pada program ESP32 pada langkah berikutnya.

3. Membuat Username dan Password

Agar hanya perangkat yang memiliki izin yang dapat terhubung ke broker MQTT, HiveMQ Cloud menggunakan autentikasi berupa username dan password.

- Buka tab Access Management, kemudian pada bagian Credentials klik tombol Add New

- Masukkan Username dan Password yang diinginkan, kemudian simpan konfigurasi tersebut.



- Username dan password inilah yang nantinya digunakan oleh ESP32 saat melakukan koneksi ke broker MQTT.

4. Menguji Koneksi Broker

Sebelum digunakan oleh ESP32, sebaiknya lakukan pengujian untuk memastikan broker telah dikonfigurasi dengan benar.

- Buka tab Test your connection.

- Masukkan username dan password yang telah dibuat sebelumnya pada bagian Connection Settings, kemudian klik tombol Connect.

 

- Jika proses autentikasi berhasil, Web Client akan terhubung ke broker MQTT dan siap digunakan untuk melakukan pengujian publish maupun subscribe.

- Sebagai pengujian sederhana, Anda dapat melakukan subscribe pada topik tertentu kemudian mengirim sebuah pesan MQTT. Jika pesan berhasil diterima, berarti broker telah siap digunakan oleh ESP32.

Memprogram ESP32 agar Terhubung ke HiveMQ Cloud

Setelah broker HiveMQ Cloud berhasil dibuat beserta username dan password untuk autentikasi, langkah berikutnya adalah membuat program pada ESP32 agar dapat berkomunikasi dengan broker MQTT menggunakan koneksi yang aman melalui protokol TLS (Transport Layer Security). Pada tutorial ini, ESP32 akan melakukan beberapa tugas utama sebagai berikut:

- Menghubungkan ESP32 ke jaringan WiFi.

- Melakukan autentikasi ke HiveMQ Cloud menggunakan username dan password.

- Membuat koneksi MQTT melalui TLS.

- Mengirim data sensor ke broker MQTT secara berkala (publish).

- Menerima pesan dari broker MQTT (subscribe).

- Menampilkan seluruh proses komunikasi melalui Serial Monitor.

1. Menyiapkan Root CA Certificate

Karena HiveMQ Cloud menggunakan koneksi TLS pada port 8883, ESP32 harus memverifikasi identitas broker sebelum koneksi dapat dibuat. Proses verifikasi tersebut dilakukan menggunakan Root CA Certificate. Berbeda dengan AWS IoT Core yang menggunakan Device Certificate dan Private Key, pada HiveMQ Cloud Free Anda hanya perlu menambahkan Root CA Certificate ke dalam program ESP32.

- Buat sebuah file baru bernama secrets.h

- File ini digunakan untuk menyimpan seluruh informasi yang bersifat sensitif sehingga program utama menjadi lebih rapi dan mudah dikelola.

2. Membuat File secrets.h

Salin kode berikut ke dalam file secrets.h.

Kode Program Arduino

 

#ifndef SECRETS_H

#define SECRETS_H


#define WIFI_SSID       "Nama_WiFi"

#define WIFI_PASSWORD   "Password_WiFi"


#define MQTT_HOST       "xxxxxxxxxxxxxxxx.s1.eu.hivemq.cloud"

#define MQTT_PORT       8883


#define MQTT_USERNAME   "esp32user"

#define MQTT_PASSWORD   "passwordanda"


#define MQTT_CLIENT_ID  "ESP32_Client"


static const char ROOT_CA[] PROGMEM = R"EOF(

-----BEGIN CERTIFICATE-----

Tempelkan Root CA Certificate di sini

-----END CERTIFICATE-----

)EOF";


#endif


Selanjutnya, ubah beberapa parameter berikut sesuai konfigurasi yang telah dibuat sebelumnya.

- WIFI_SSID diisi dengan nama jaringan WiFi.

- WIFI_PASSWORD diisi dengan password WiFi.

- MQTT_HOST diisi dengan alamat broker HiveMQ Cloud.

- MQTT_USERNAME diisi dengan username yang telah dibuat.

- MQTT_PASSWORD diisi dengan password broker.

- MQTT_CLIENT_ID merupakan identitas unik ESP32 saat terhubung ke broker MQTT.

3. Root CA Certificate

Selanjutnya, salin isi Root CA Certificate ke dalam variabel ROOT_CA. Pastikan seluruh isi sertifikat disalin tanpa mengubah format maupun menghapus baris BEGIN CERTIFICATE dan END CERTIFICATE.

 

-----BEGIN CERTIFICATE-----

MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw

TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh

cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4

WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu

ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY

MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc

h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+

0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U

A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW

T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH

B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC

B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv

KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn

OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn

jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw

qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI

rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV

HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq

hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL

ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ

3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK

NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5

ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur

TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC

jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc

oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq

4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA

mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d

emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=

-----END CERTIFICATE-----


4. Program ESP32

Setelah file secrets.h selesai dibuat, langkah berikutnya adalah membuat program utama ESP32. Program berikut akan menghubungkan ESP32 ke WiFi, terhubung ke HiveMQ Cloud, mengirim data analog setiap 4 detik, menerima pesan MQTT, dan menampilkan seluruh aktivitas pada Serial Monitor.

Kode Program Arduino

 

#include "secrets.h"


#include <WiFi.h>

#include <WiFiClientSecure.h>

#include <MQTTClient.h>

#include <ArduinoJson.h>


#define MQTT_PUBLISH_TOPIC   "esp32/esp32-to-cloud"

#define MQTT_SUBSCRIBE_TOPIC "esp32/cloud-to-esp32"


#define PUBLISH_INTERVAL 4000


WiFiClientSecure net;

MQTTClient client(256);


unsigned long lastPublish = 0;


void connectWiFi();

void connectMQTT();

void publishMessage();

void messageReceived(String &topic, String &payload);


void setup() {


  Serial.begin(115200);


  analogSetAttenuation(ADC_11db);


  connectWiFi();


  connectMQTT();

}


void loop() {


  client.loop();


  if (!client.connected()) {


    connectMQTT();


  }


  if (millis() - lastPublish >= PUBLISH_INTERVAL) {


    publishMessage();


    lastPublish = millis();


  }


}


Selanjutnya tambahkan fungsi berikut:

 

void connectWiFi() {


  WiFi.mode(WIFI_STA);


  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);


  Serial.print("Connecting to WiFi");


  while (WiFi.status() != WL_CONNECTED) {


    delay(500);


    Serial.print(".");


  }


  Serial.println();


  Serial.println("WiFi Connected");


}


Tambahkan fungsi koneksi MQTT berikut:

 

void connectMQTT() {


  net.setCACert(ROOT_CA);


  client.begin(MQTT_HOST, MQTT_PORT, net);


  client.onMessage(messageReceived);


  Serial.print("Connecting to HiveMQ Cloud");


  while (!client.connect(MQTT_CLIENT_ID, MQTT_USERNAME, MQTT_PASSWORD)) {


    Serial.print(".");


    delay(1000);


  }


  Serial.println();


  Serial.println("MQTT Connected");


  client.subscribe(MQTT_SUBSCRIBE_TOPIC);


}


Tambahkan fungsi untuk mengirim data.

 

void publishMessage() {


  StaticJsonDocument<200> doc;


  doc["timestamp"] = millis();


  doc["analog"] = analogRead(34);


  char buffer[256];


  serializeJson(doc, buffer);


  client.publish(MQTT_PUBLISH_TOPIC, buffer);


  Serial.println("Publish");


  Serial.println(buffer);


}


Terakhir, tambahkan fungsi callback untuk menerima pesan.

 

void messageReceived(String &topic, String &payload) {


  Serial.println("Message Received");


  Serial.println(topic);


  Serial.println(payload);


}


Penjelasan Program

Sebelum mengunggah program ke ESP32, ada baiknya memahami fungsi dari setiap bagian program yang digunakan.

a. Library

Program menggunakan beberapa library utama.

- WiFi digunakan untuk menghubungkan ESP32 ke jaringan WiFi.

- WiFiClientSecure digunakan untuk membuat koneksi TLS.

- MQTTClient digunakan sebagai MQTT Client.

- ArduinoJson digunakan untuk membuat payload JSON.

b. connectWiFi()

Fungsi ini bertugas menghubungkan ESP32 ke jaringan WiFi. Program akan terus mencoba melakukan koneksi hingga ESP32 berhasil memperoleh alamat IP dari router.

c. connectMQTT()

Fungsi ini digunakan untuk menghubungkan ESP32 ke HiveMQ Cloud. Sebelum koneksi dibuat, ESP32 terlebih dahulu memverifikasi identitas broker menggunakan Root CA Certificate. Selanjutnya ESP32 melakukan autentikasi menggunakan:

- MQTT Client ID

- Username

- Password

Jika koneksi berhasil, ESP32 akan melakukan subscribe pada topik:

 

esp32/cloud-to-esp32

 

d. publishMessage()

Fungsi ini membaca nilai analog dari pin GPIO34. Nilai tersebut kemudian diubah menjadi format JSON sebelum dikirim ke broker MQTT menggunakan topik:

 

esp32/esp32-to-cloud


Payload yang dikirim memiliki format seperti berikut:

 

{

  "timestamp": 15020,

  "analog": 2045

}


e. messageReceived() 

Fungsi callback ini akan dipanggil secara otomatis setiap kali broker MQTT mengirimkan pesan ke topik yang telah di-subscribe. Pada contoh ini, isi pesan hanya ditampilkan melalui Serial Monitor. Namun, fungsi tersebut juga dapat dikembangkan untuk mengontrol LED, relay, motor servo, atau perangkat lainnya.

5. Interval Pengiriman Data

Program mengirim data setiap empat detik sesuai konstanta berikut:

 

#define PUBLISH_INTERVAL 4000

 

Nilai tersebut dapat diubah sesuai kebutuhan aplikasi.

6. Mengunggah Program ke ESP32

Hubungkan ESP32 ke komputer menggunakan kabel USB. Pilih board dan port yang sesuai melalui Arduino IDE, kemudian klik tombol Upload. Jika proses kompilasi dan upload berhasil, buka Serial Monitor dengan baud rate 115200 untuk melihat proses koneksi ESP32 ke WiFi dan HiveMQ Cloud.

Menguji Komunikasi MQTT antara ESP32 dan HiveMQ Cloud

Setelah program berhasil diunggah ke ESP32, langkah berikutnya adalah memastikan bahwa ESP32 benar-benar dapat terhubung ke HiveMQ Cloud serta mampu melakukan proses publish dan subscribe melalui protokol MQTT. Pada bagian ini, Anda akan mempelajari cara memonitor proses koneksi menggunakan Serial Monitor, mengirim pesan dari HiveMQ Cloud ke ESP32, serta memastikan data yang dikirim ESP32 berhasil diterima oleh broker MQTT.

1. Memantau Proses Koneksi melalui Serial Monitor

Setelah proses upload selesai, buka Serial Monitor pada Arduino IDE. Pastikan baud rate diatur menjadi 115200. Apabila seluruh konfigurasi telah dilakukan dengan benar, Serial Monitor akan menampilkan informasi seperti berikut:

 

Connecting to WiFi....

WiFi Connected


Connecting to HiveMQ Cloud...

MQTT Connected


Publish

{"timestamp":4025,"analog":1968}


Publish

{"timestamp":8041,"analog":1975}


Publish

{"timestamp":12058,"analog":1981}



Dari tampilan tersebut dapat diketahui bahwa:

- ESP32 berhasil terhubung ke jaringan WiFi.

- ESP32 berhasil melakukan autentikasi ke HiveMQ Cloud.

- ESP32 berhasil mengirim data ke broker MQTT setiap empat detik.

Jika muncul pesan MQTT Connected, berarti koneksi MQTT telah berhasil dibuat.

2. Menguji Publish Menggunakan HiveMQ Cloud Web Client

Sebelum menguji komunikasi dua arah, terlebih dahulu pastikan ESP32 berhasil mengirim data ke broker MQTT. Masuk ke halaman broker pada HiveMQ Cloud, kemudian buka tab:

Test your connection


 

Pada bagian Connection Settings, masukkan username dan password yang telah dibuat sebelumnya, kemudian klik tombol Connect. Jika berhasil, status Web Client akan berubah menjadi Connected.

3. Melakukan Subscribe pada Topik Publish ESP32

Pada bagian Topic Subscriptions, masukkan topik yang digunakan ESP32 untuk mengirim data.

 

esp32/esp32-to-cloud

 

Kemudian klik Subscribe.



Beberapa saat kemudian akan muncul pesan yang dikirim oleh ESP32. Contoh payload yang diterima:

 

{

  "timestamp": 16032, "analog": 2015

}



Hal ini menunjukkan bahwa proses publish dari ESP32 ke HiveMQ Cloud telah berhasil dilakukan.

4. Menguji Subscribe Menggunakan HiveMQ Cloud Web Client

Selanjutnya, lakukan pengujian komunikasi dari HiveMQ Cloud menuju ESP32. Pada bagian Send Message, isi parameter berikut:

- Topic: esp32/cloud-to-esp32

- Message: LED ON

- QoS: 0

Kemudian klik tombol Send Message.



5. Melihat Data yang Diterima ESP32

Setelah pesan dikirim melalui HiveMQ Cloud, buka kembali Serial Monitor. Jika ESP32 berhasil menerima pesan tersebut, akan muncul tampilan seperti berikut:

Message Received

Topic:

esp32/cloud-to-esp32

Payload:

Hello ESP32


Hal ini menunjukkan bahwa proses subscribe telah berjalan dengan baik. Pada contoh program ini, isi pesan hanya ditampilkan pada Serial Monitor. Namun pada implementasi sebenarnya, pesan tersebut dapat digunakan untuk berbagai keperluan, misalnya:

- Menyalakan LED.

- Mematikan LED.

- Mengendalikan relay.

- Menggerakkan motor servo.

- Mengubah kecepatan motor DC.

- Mengaktifkan buzzer.

- Mengontrol berbagai perangkat IoT lainnya.

Cara Kerja Publish dan Subscribe

Pada tutorial ini digunakan dua buah topik MQTT.


Topik

Fungsi

esp32/esp32-to-cloud

ESP32 mengirim data ke HiveMQ Cloud

esp32/cloud-to-esp32

HiveMQ Cloud mengirim data ke ESP32


Dengan memisahkan topik publish dan subscribe, komunikasi menjadi lebih mudah dipahami serta mempermudah pengembangan aplikasi yang lebih kompleks. Sebagai contoh:

- Sensor suhu dapat menggunakan topik home/livingroom/temperature

- Sedangkan kontrol lampu dapat menggunakan topik home/livingroom/lamp

Penggunaan struktur topik seperti ini membuat sistem MQTT menjadi lebih terorganisir.

Troubleshooting

Jika ESP32 tidak berhasil terhubung ke HiveMQ Cloud, periksa beberapa hal berikut:

1. ESP32 Tidak Terhubung ke WiFi

Pastikan:

- Nama WiFi (SSID) telah diisi dengan benar.

- Password WiFi sesuai.

- Jaringan internet aktif.

- Sinyal WiFi cukup kuat.

2. MQTT Connection Failed

Jika muncul pesan gagal terhubung ke broker MQTT, periksa kembali:

- MQTT Host.

- Port 8883.

- Username.

- Password.

- MQTT Client ID.

Pastikan seluruh informasi sesuai dengan data yang terdapat pada halaman Connection Details dan Access Management di HiveMQ Cloud.

3. TLS Handshake Gagal

Jika ESP32 gagal membuat koneksi TLS, kemungkinan penyebabnya adalah:

- Root CA Certificate tidak sesuai.

- Format sertifikat berubah.

- Ada karakter yang hilang saat menyalin sertifikat.

Pastikan seluruh isi sertifikat disalin lengkap mulai dari:

 

-----BEGIN CERTIFICATE-----

hingga

-----END CERTIFICATE-----


tanpa ada perubahan.

4. Tidak Ada Data yang Masuk

Apabila ESP32 berhasil terhubung tetapi tidak ada data yang muncul pada Web Client, pastikan:

- Topik publish sesuai.

- Topik subscribe sesuai.

- Fungsi client.loop() tetap dijalankan di dalam loop().

- ESP32 masih terhubung ke broker MQTT.

Karena HiveMQ Cloud mendukung standar MQTT, broker ini juga dapat digunakan bersama berbagai aplikasi maupun platform lain seperti MQTTX, MQTT Explorer, Node-RED, Home Assistant, hingga aplikasi IoT yang dikembangkan sendiri.

 

Baca juga: ESP32 dengan Make - Cara Menghubungkan ESP32 ke Make Menggunakan Webhook

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.  

0 on: "ESP32 dengan HiveMQ Cloud - Cara Menghubungkan ESP32 ke HiveMQ Cloud Menggunakan MQTT"