mengendalikan relay menggunakan protokol MQTT dengan ESP32 di Wokwi dengan MQTT Panel
Mengendalikan relay menggunakan protokol MQTT dengan ESP32 di Wokwi
Mengendalikan relay menggunakan protokol MQTT dengan ESP32 di Wokwi, berikut adalah langkah-langkahnya:
Langkah 1: Instal Aplikasi IoT MQTT Panel untuk IOS dan IoT MQTT Dashboard pada Android
Unduh dan instal aplikasi IoT MQTT Panel dari App Store di perangkat iOS Anda. atau Unduh dan instal aplikasi IoT MQTT Dashboard dari Store di perangkat Android Anda.
Aplikasi ini akan digunakan untuk mengirim dan menerima pesan MQTT untuk mengontrol relay.
Langkah 2: Konfigurasi Wokwi
- Buat proyek baru di Wokwi.
- Tambahkan komponen berikut:
- Dua ESP32 DevKit.
- Relay.
- LED (opsional untuk menandakan status relay).
- Resistor (220Ω untuk LED jika digunakan).
- Kabel koneksi.
- Hubungkan relay ke salah satu ESP32:
- VCC → 3.3V atau 5V pada ESP32.
- GND → GND pada ESP32.
- IN → GPIO (misalnya, GPIO5 pada ESP32).
- Hubungkan LED (jika digunakan):
- Anoda (+) → GPIO pada ESP32 (misalnya, GPIO2).
- Katoda (-) → GND melalui resistor 220Ω.
- ESP32 lainnya akan bertindak sebagai pengirim pesan MQTT untuk mengontrol relay
lebih lengkapnya bisa di lihat di gambar wiring di bawah ini :
Langkah 3: Setup MQTT Broker Gunakan broker MQTT publik, seperti test.mosquitto.org, atau Anda dapat menjalankan broker lokal dengan Mosquitto. Dalam tutorial ini, kita akan menggunakan test.mosquitto.org.
Langkah 4: Kode ESP32 untuk Kontrol Relay Berikut adalah kode untuk ESP32 yang mengontrol relay berdasarkan pesan MQTT.
Kode ESP32 (Relay Controller)
Rangkuman Struktur Program:
- Pengimporan Library: Untuk WiFi dan MQTT.
- Deklarasi Konfigurasi: WiFi SSID, password, dan konfigurasi MQTT (server, topik).
- Pengaturan Pin Relay: Menentukan pin yang digunakan untuk relay.
- Fungsi setup_wifi(): Untuk menghubungkan ESP32 ke WiFi.
- Fungsi callback(): Untuk menangani pesan MQTT yang diterima dan mengendalikan relay.
- Fungsi reconnectMQTT(): Untuk mencoba menyambungkan ESP32 ke broker MQTT.
- Fungsi setup(): Inisialisasi pin, WiFi, dan MQTT.
- Fungsi loop(): Mengecek koneksi dan memproses pesan MQTT.