Tuesday, 1 July 2025
Belajar IOT

Cara Mengendalikan LED dengan ESP32 MQTT

Halo teman-teman! Pernah dengar tentang IoT (Internet of Things)? Pada artikel ini, kita akan belajar cara mengendalikan LED menggunakan ESP32 dan MQTT. Nggak usah khawatir, tutorial ini dibuat khusus untuk kalian yang baru belajar IoT, mulai dari anak SMA hingga mahasiswa. Jadi, meskipun kamu belum pernah menyentuh microcontroller, artikel ini cocok banget buat kamu!

Apa itu ESP32 dan MQTT?
Sebelum kita mulai, yuk kita kenalan dulu dengan alat-alat yang bakal kita pakai:

  • ESP32: Ini adalah microcontroller yang bisa terkoneksi ke WiFi. Artinya, kamu bisa menghubungkan alat ini ke internet dan mengontrol perangkat dari jarak jauh.
  • MQTT: Ini adalah protokol komunikasi yang ringan dan sering dipakai di IoT. Protokol ini membantu kita “ngobrol” dengan ESP32 lewat internet.

Langkah-Langkah Mengendalikan LED dengan ESP32 dan MQTT
Kita akan melakukan langkah-langkah berikut:

  1. Persiapan Alat dan Bahan
    • ESP32
    • LED
    • Breadboard dan kabel jumper
    • Software Arduino IDE
  2. Menyiapkan Arduino IDE
    • Pastikan kamu sudah menginstal Arduino IDE. Kalau belum, kamu bisa download di sini.
    • Setelah itu, tambahkan Board ESP32 dengan cara pergi ke menu File -> Preferences, dan masukkan link board ESP32. Kemudian pergi ke Tools -> Board -> Boards Manager, dan install ESP32.
  3. Menyambungkan ESP32 ke LED
    • Hubungkan kaki positif LED ke pin GPIO 2 di ESP32 dan kaki negatif ke Ground (GND).
  4. Menggunakan MQTT untuk Mengontrol LED
    • Setelah ESP32 dan LED terhubung, kita akan menggunakan kode untuk mengontrolnya lewat protokol MQTT. Berikut contoh kode sederhananya:
   #include <WiFi.h>
   #include <PubSubClient.h>

   const char* ssid = "Nama_Wifi";  // Ganti dengan WiFi kamu
   const char* password = "Password_Wifi";  // Ganti dengan password WiFi kamu
   const char* mqtt_server = "broker.hivemq.com";  // Alamat broker MQTT

   WiFiClient espClient;
   PubSubClient client(espClient);

   const int ledPin = 2;

   void setup() {
     pinMode(ledPin, OUTPUT);
     Serial.begin(115200);
     setup_wifi();
     client.setServer(mqtt_server, 1883);
     client.setCallback(callback);
   }

   void setup_wifi() {
     delay(10);
     Serial.println("Menghubungkan ke WiFi...");
     WiFi.begin(ssid, password);
     while (WiFi.status() != WL_CONNECTED) {
       delay(500);
       Serial.print(".");
     }
     Serial.println("WiFi Tersambung");
   }

   void callback(char* topic, byte* payload, unsigned int length) {
     String pesan = "";
     for (int i = 0; i < length; i++) {
       pesan += (char)payload[i];
     }
     if (pesan == "ON") {
       digitalWrite(ledPin, HIGH);
     } else if (pesan == "OFF") {
       digitalWrite(ledPin, LOW);
     }
   }

   void reconnect() {
     while (!client.connected()) {
       Serial.print("Menghubungkan ke MQTT...");
       if (client.connect("ESP32Client")) {
         Serial.println("MQTT Tersambung");
         client.subscribe("esp32/led");
       } else {
         Serial.print("gagal, status: ");
         Serial.print(client.state());
         delay(5000);
       }
     }
   }

   void loop() {
     if (!client.connected()) {
       reconnect();
     }
     client.loop();
   }
  • Penjelasan Kode:
    • Kode ini menghubungkan ESP32 ke WiFi, lalu ke broker MQTT. Kita akan menerima pesan melalui topik esp32/led yang berisi perintah ON atau OFF untuk menyalakan atau mematikan LED.
    • Kamu bisa mengirimkan perintah lewat aplikasi MQTT Dashboard atau platform IoT lainnya.

Penutup
Selamat! Kamu sudah berhasil mengontrol LED dengan ESP32 menggunakan MQTT. Dengan langkah-langkah ini, kamu bisa mengembangkan proyek IoT yang lebih kompleks. Jangan lupa untuk bereksperimen dan terus belajar!


Fredy Siswanto

Fredy Siswanto

About Author

Leave a Reply

Your email address will not be published. Required fields are marked *