Implementasi MQTT Menggunakan Wemos dan MQTT Dash

Dalam era Internet of Things (IoT), komunikasi antar perangkat menjadi sangat penting. MQTT (Message Queuing Telemetry Transport) adalah salah satu protokol yang populer untuk komunikasi ini karena ringan dan efisien. Pada artikel ini, kita akan membahas bagaimana cara mengimplementasikan MQTT menggunakan Wemos dan aplikasi MQTT Dash, sehingga Anda dapat mengontrol dan memantau perangkat IoT Anda dari mana saja.

1. Apa itu MQTT? MQTT adalah protokol komunikasi berbasis publish-subscribe yang banyak digunakan dalam proyek IoT. Protokol ini memungkinkan perangkat untuk mengirim (publish) dan menerima (subscribe) pesan melalui broker MQTT. Beberapa keunggulan MQTT adalah:

  • Ringan dan efisien
  • Menggunakan bandwidth rendah
  • Mendukung QoS (Quality of Service)

2. Alat dan Bahan yang Dibutuhkan Sebelum memulai implementasi, pastikan Anda sudah memiliki alat dan bahan berikut:

  • Wemos D1 Mini (atau ESP8266/ESP32 lainnya)
  • Breadboard dan beberapa kabel jumper
  • LED (untuk pengujian)
  • Resistor (220Ω untuk LED)
  • Software Arduino IDE
  • Library PubSubClient untuk MQTT
  • Broker MQTT (seperti Mosquitto)
  • Aplikasi MQTT Dash di perangkat Android

3. Instalasi Arduino IDE dan Library Langkah pertama adalah memastikan Arduino IDE terinstal di komputer Anda. Anda juga perlu menginstal beberapa library yang diperlukan untuk mengimplementasikan MQTT pada Wemos.

  • Langkah 1: Download dan instal Arduino IDE.
  • Langkah 2: Buka Arduino IDE, lalu pergi ke File > Preferences. Di bagian “Additional Boards Manager URLs”, tambahkan URL berikut: https://arduino.esp8266.com/stable/package_esp8266com_index.json.
  • Langkah 3: Buka Tools > Board > Boards Manager dan cari “ESP8266”. Install board package untuk ESP8266.
  • Langkah 4: Install library PubSubClient melalui Sketch > Include Library > Manage Libraries. Cari “PubSubClient” dan install library tersebut.

4. Mengatur Broker MQTT Untuk komunikasi MQTT, Anda memerlukan broker. Jika belum memiliki broker, Anda bisa menggunakan broker publik atau menginstal Mosquitto di komputer Anda.

  • Langkah 1: Instal Mosquitto MQTT broker di komputer Anda (panduan instalasi bisa ditemukan di situs resmi Mosquitto).
  • Langkah 2: Setelah instalasi, jalankan broker dengan perintah:Copy codemosquitto -v
  • Langkah 3: Pastikan broker MQTT berjalan dengan lancar di port default 1883.

5. Menulis dan Mengunggah Kode ke Wemos Selanjutnya, kita akan menulis kode di Arduino IDE untuk menghubungkan Wemos ke broker MQTT dan mengontrol LED.

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

const char* ssid = "Nama_WiFi";
const char* password = "Password_WiFi";
const char* mqtt_server = "Alamat_IP_Broker"; // Ganti dengan alamat IP broker MQTT

WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];
int value = 0;

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

void setup_wifi() {
  delay(10);
  Serial.println();
  Serial.print("Menghubungkan ke ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi tersambung");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Pesan diterima [");
  Serial.print(topic);
  Serial.print("] ");
  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();

  // Contoh untuk menyalakan atau mematikan LED
  if ((char)payload[0] == '1') {
    digitalWrite(LED_BUILTIN, LOW);   
  } else {
    digitalWrite(LED_BUILTIN, HIGH);  
  }
}

void reconnect() {
  while (!client.connected()) {
    Serial.print("Menghubungkan ke MQTT...");
    if (client.connect("WemosClient")) {
      Serial.println("terhubung");
      client.subscribe("topik_anda"); 
    } else {
      Serial.print("gagal, rc=");
      Serial.print(client.state());
      Serial.println(" mencoba lagi dalam 5 detik");
      delay(5000);
    }
  }
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();
}
  • Langkah 1: Masukkan kode di atas ke Arduino IDE.
  • Langkah 2: Ubah nilai ssid, password, dan mqtt_server sesuai dengan jaringan WiFi dan broker MQTT Anda.
  • Langkah 3: Unggah kode ke Wemos.

6. Mengatur MQTT Dash MQTT Dash adalah aplikasi yang memungkinkan Anda mengontrol perangkat IoT menggunakan MQTT. Berikut adalah cara mengatur aplikasi ini:

  • Langkah 1: Download dan install MQTT Dash dari Google Play Store.
  • Langkah 2: Buka aplikasi dan tambahkan koneksi baru dengan mengisi detail broker MQTT yang sudah Anda buat sebelumnya.
  • Langkah 3: Tambahkan widget untuk mengontrol LED dengan mengatur topik yang sama seperti di Wemos (topik_anda).

7. Menguji Implementasi Setelah semuanya diatur, kini saatnya untuk menguji implementasi MQTT Anda.

  • Buka MQTT Dash dan nyalakan/matikan LED melalui widget yang sudah Anda buat.
  • Periksa serial monitor di Arduino IDE untuk memastikan bahwa Wemos menerima pesan MQTT dan mengontrol LED sesuai dengan perintah dari MQTT Dash.

Leave a Reply

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