Dengan kemajuan teknologi Internet of Things (IoT), semakin banyak perangkat yang dapat kita kendalikan melalui jaringan internet, termasuk lampu di rumah Anda. Salah satu metode yang populer untuk menghubungkan dan mengontrol perangkat IoT adalah menggunakan MQTT (Message Queuing Telemetry Transport), sebuah protokol ringan yang sangat efisien untuk komunikasi antar perangkat.
Dalam artikel ini, kita akan membahas bagaimana cara mengontrol lampu dengan IoT menggunakan MQTT panel. Dengan panduan ini, Anda dapat membangun sistem yang memungkinkan Anda menyalakan atau mematikan lampu dari jarak jauh menggunakan smartphone, laptop, atau perangkat lain.
Apa Itu MQTT?
MQTT adalah protokol komunikasi berbasis publish/subscribe yang dapat kita rancang untuk aplikasi IoT. Sistem ini terdiri dari tiga komponen utama:
- Broker MQTT – Sebuah server yang mengelola komunikasi antara publisher dan subscriber.
- Publisher – Perangkat yang mengirimkan data atau perintah ke broker.
- Subscriber – Perangkat yang menerima data atau perintah dari broker.
MQTT sangat ideal kita gunakan dalam proyek-proyek IoT karena efisiensinya dalam menggunakan bandwidth dan rendahnya kebutuhan daya, yang membuatnya cocok untuk perangkat dengan sumber daya terbatas.
Komponen yang Dibutuhkan
Untuk membangun sistem kontrol lampu dengan MQTT, Anda akan memerlukan beberapa komponen:
- ESP32 atau ESP8266 – Mikrokontroler dengan konektivitas Wi-Fi yang memungkinkan perangkat Anda terhubung ke jaringan internet.
- LED atau Lampu yang Dapat Kita jalankan dengan Relay – Lampu yang akan kita kendalikan melalui MQTT.
- Broker MQTT
- Platform untuk Panel Kontrol (IoT MQTT Panel) – Untuk menampilkan panel kontrol yang memungkinkan Anda mengendalikan lampu.
- Arduino IDE atau Platform Pengembangan Lain – Untuk menulis dan mengunggah kode ke mikrokontroler.
Langkah-langkah Membuat Sistem Kontrol Lampu dengan MQTT
1. Menyiapkan Broker MQTT
Pada proyek ini kita akan menggunakan broker emqx.io sehingga bisa diakses dari manapun asalkan ada koneksi internet.
2. Menulis Kode untuk ESP8266
Setelah broker MQTT siap, langkah berikutnya adalah menulis kode untuk mikrokontroler ESP8266. Berikut adalah contoh kode dasar untuk menghubungkan ESP8266 ke broker MQTT dan mengontrol lampu (LED) yang terhubung ke pin D1:
#include <ESP8266WiFi.h>
#include <MQTT.h>
const char* ssid = "Isi Username";
const char* password = "Isi Password";
const char* mqtt_server = "broker.emqx.io";
const int mqtt_port = 1883;
const char* mqtt_topic = "kelasiot/led";
WiFiClient net;
MQTTClient client;
const int ledPin = D1;
void setup_wifi() {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}
void messageReceived(String &topic, String &payload) {
if (payload == "ON") {
digitalWrite(ledPin, HIGH);
} else if (payload == "OFF") {
digitalWrite(ledPin, LOW);
}
}
void connectToMQTT() {
while (!client.connect("WemosD1Client")) {
delay(1000);
}
client.subscribe(mqtt_topic);
}
void setup() {
pinMode(ledPin, OUTPUT);
setup_wifi();
client.begin(mqtt_server, mqtt_port, net);
client.onMessage(messageReceived);
connectToMQTT();
}
void loop() {
client.loop();
if (!client.connected()) {
connectToMQTT();
}
}
3. Membuat Panel Kontrol MQTT
Install terlebih dahulu aplikasi IoT MQTT Panel dari Google Play Store atau App Store.
Setelah terinstall, buka aplikasi tersebut, lalu ketuk ikon titik tiga di bagian atas layar dan pilih “All Connections”. Di halaman All Connections
klik tombol plus (+) untuk menambah koneksi baru.
Pada form yang muncul, isi “Connection Name” dengan nama yang sesuai, lalu masukkan “Client ID” yang unik, dan alamat broker MQTT di bagian “Broker Web/IP Address”.
Setelah itu, pilih “Add Dashboard” untuk membuat panel kontrol, dan klik “Create” untuk menyimpan pengaturan koneksi dan membuat dashboard.
Selanjutnya, tambahkan panel switch pada dashboard dengan cara memilih “Add Panel”
kemudian pilih tipe panel “Switch”..
Isi pengaturan panel ini dengan memasukkan “Panel Name” yang sesuai, misalnya “Kontrol Lampu”. Pada bagian “Topic” dan “Subscribe Topic”, masukkan topik yang sama, misalnya “home/lampu”, agar panel dapat menerima status dari perangkat. Kemudian, atur “Payload ON” menjadi “1” dan “Payload OFF” menjadi “0” untuk menyalakan dan mematikan lampu.
Terakhir, klik “Save” untuk menyimpan pengaturan panel.
Setelah langkah-langkah ini selesai, panel kontrol Anda sudah siap untuk digunakan sebagai pengontrol lampu melalui MQTT, Dan ini Hasilnya
Setelah perangkat Anda dapat terhubung ke broker MQTT, Anda perlu membuat panel kontrol untuk mengendalikan lampu. Salah satu cara yang mudah adalah menggunakan IoT MQTT Panel, sebuah platform alur kerja berbasis grafis yang dapat kita gunakan untuk membuat dashboard MQTT.
Anda dapat menambahkan widget tombol untuk mengirimkan perintah “ON” atau “OFF” ke topik MQTT yang telah Anda tentukan sebelumnya. Misalnya, Anda bisa mengonfigurasi tombol untuk mengirimkan pesan ke topik kelasiot/led
dengan payload “ON” atau “OFF”.
Alternatif lainnya adalah membuat panel kontrol berbasis web menggunakan HTML dan JavaScript yang mengirimkan perintah MQTT ke broker. Beberapa platform juga menyediakan aplikasi untuk smartphone yang mendukung kontrol MQTT.
4. Menghubungkan Semuanya dan Menguji
Setelah semua perangkat terhubung ke broker MQTT, Anda dapat mulai menguji sistem Anda. Selanjutnya Menekan tombol di panel kontrol akan mengirim perintah ke broker MQTT, kemudian meneruskan perintah tersebut ke ESP32 untuk mengaktifkan atau mematikan lampu sesuai instruksi.
Kesimpulan
Menggunakan MQTT memungkinkan Anda membangun sistem kontrol lampu yang mudah diakses melalui internet. Sistem ini sangat efisien dan cocok untuk aplikasi smart home yang memungkinkan Anda mengontrol berbagai perangkat dari jarak jauh.
Jangan ragu untuk mengembangkan proyek ini lebih lanjut. Misalnya, Anda dapat menambahkan fitur-fitur lain, seperti pengaturan jadwal nyala-mati lampu. Selain itu, Anda juga bisa mempertimbangkan integrasi dengan sensor agar sistem lebih otomatis. Sebagai langkah lanjutan, cobalah juga menggunakan kontrol suara melalui platform seperti Alexa atau Google Assistant untuk menambah kenyamanan pengguna
Semoga artikel ini bermanfaat dan memberikan inspirasi untuk membangun sistem IoT Anda sendiri!