//Jika Anode Common, maka pin COM dihubungkan ke 5V
//Jika Cathode Common, makan pin COM dihubungkan ke GND
#include <WiFi.h> // Library untuk ESP32 (gunakan <ESP8266WiFi.h> untuk ESP8266)
#include <MQTT.h> // Library MQTT
// Object WiFi dan MQTT
WiFiClient net;
MQTTClient client;
//Constanta array + Character + Variabel Array
// Konstanta untuk SSID dan password WiFi
const char ssid[] = "Wokwi-GUEST"; // Ganti dengan SSID WiFi Anda
const char pass[] = ""; // Ganti dengan password WiFi Anda (jika ada)
// Nomor pin GPIO untuk LED RGB
const int pinRed = 2;
const int pinGreen = 4;
const int pinBlue = 16;
void setup() {
// Memulai komunikasi Serial untuk debugging
Serial.begin(9600);
// Mengatur pin sebagai output
pinMode(pinRed, OUTPUT);
pinMode(pinGreen, OUTPUT);
pinMode(pinBlue, OUTPUT);
// Memulai koneksi ke jaringan WiFi
WiFi.begin(ssid, pass);
//Panggil variabel Client + fungsi begin + argumen(alamat broker + variabel wifi)
client.begin("broker.emqx.io", net);
//Memanggil fungsi connect
connect();
}
void loop() {
//Fungsi khusus library MQTT
if(!client.connected()){
connect();
}
// Loop utama, tambahkan kode tambahan jika diperlukan
delay(10);
}
// Custom Function + Variabel
// Fungsi untuk mengontrol LED RGB
void rgb(bool red, bool green, bool blue) {
digitalWrite(pinRed, red); // Kontrol pin merah
digitalWrite(pinGreen, green); // Kontrol pin hijau
digitalWrite(pinBlue, blue); // Kontrol pin biru
}
//Membuat fungsi baru dengan nama Connect
void connect(){
//Memanggil variabel Custom Function
// Menyalakan LED merah selama proses koneksi
rgb(1, 0, 0); // LED merah menyala
Serial.print("Menghubungkan ke WiFi");
// Tunggu hingga ESP32 terhubung ke jaringan WiFi
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
// Jika terhubung, tampilkan pesan dan nyalakan LED hijau
Serial.println("\nBerhasil terhubung ke WiFi");
rgb(0, 1, 0); // LED hijau menyala
//while(client.connect("clientid-Uniq","Username","password")){}
while(!client.connect("v3qgvthqh45v")){
delay(500);
}
rgb(0,0,1);
Serial.print("MQTT Connect");
}