#include <WiFi.h>
#include <MQTT.h>
WiFiClient net;
MQTTClient client;
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
void connect() {
rgb(1, 0, 0);
while (WiFi.status() != WL_CONNECTED) {
//selama WiFi unconnnect maka tetap di perulangan
delay(1000);
}
rgb(0, 1, 0);
while(!client.connect("BEDA","public","public")) {
delay(1000);
}
rgb(0,0,1);
client.subscribe("indonesia/lampu", 1); //lakukan subscribe
}
void receive(String &topic, String &data) {
if(data == "nyala") { //jika data adalah kata "nyala"
digitalWrite(33, 1);
} else {
digitalWrite(33, 0);
}
}
void setup() {
pinMode(33, OUTPUT);
pinMode(25, OUTPUT);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
WiFi.begin(ssid, pass);
client.begin("public.cloud.shiftr.io", net);
connect(); //panggil function connect()
//eksekusi finction receive() setiap kali ada data
client.onMessage(receive);
}
void rgb(bool red, bool green, bool blue) {
digitalWrite(25, red);
digitalWrite(26, green);
digitalWrite(27, blue);
}
void loop() {
client.loop(); //Jalankan MQTT agar subscribe berhasil
if (!client.connected()) {
connect();
}
}