#include <Wifi.h> //library Wi-Fi
#include <AViShaMQTT.h> //library AViSha MQTT
const char *ssid = "Wokwi-GUEST";
const char *password = "";
const char *ssid = "broker.hivemq.com";
AViShaMQTT mqtt(ssid, password, mqtt_server); //menyambungkan wifi dan mqtt
//topik setiap relay disimpan dalam array
const char*topics[] = {
"relay1", "relay2", "relay3", "relay4",
"relay5", "relay6", "relay7", "relay8"
};
int relays[] = {17, 5, 4, 2, 16, 14, 13, 12,}; //variabel pin
unsigned long timer, intervalKirim = 1000;
void setup() {
serial.begin(115200);
mqtt.begin(); //memulai mqtt
// set pinMode untuk semua relay
for (int i = 0; i <8; i++) {
pinMode(relays[i], OUTPUT);
mqtt.subscribe(topics{i}, 1); //
}
}
void loop() {
mqtt.loop();
String pesan = mqtt.getIncomingMessage(); //inisiasi pesan
String topik = mqtt.getIncomingTopic(); //inisiasi topik
if (pesan != "") {
for (int i = 0; i < 8; i++) {
if (topik ==topics[i]) {
digitalWrite(relays[i], pesan.toInt()); // 0 = mati, 1 = nyala
Serial.println("relay " + String(i + 1) + " = " + pesan);
break; //
}
}
mqtt.setIncomingMesage("");
}
for (int i = 0; i < 8; i++) {
mqtt.subscribe(topics[i], 1);
}
}