#include <WiFi.h>
#include <MQTT.h>
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
WiFiClient net;
MQTTClient client;
#define ledR 19
#define ledG 18
#define ledB 5
#define ledY 17
#define ledW 16
void connectWiFi(){
WiFi.begin(ssid, pass);
Serial.print("Menghubungkan ke WiFi");
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("Berhasil Terhubung ke WiFi");
}
void connectMQTT(){
client.begin("broker.emqx.io", net);
Serial.print("Menghubungkan ke Broker");
while(!client.connect("simulasi_588DE0CA")){
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("Berhasil Terhubung ke Broker");
client.subscribe("unknownproject/aiot/#", 1);
client.onMessage(subscribeData);
}
void subscribeData(String &topic, String &data){
Serial.println("incoming: " + topic + " - " + data);
delay(10);
if(topic == "unknownproject/aiot/control_led"){
if(data == "5"){
digitalWrite(ledR, HIGH);
digitalWrite(ledG, HIGH);
digitalWrite(ledB, HIGH);
digitalWrite(ledY, HIGH);
digitalWrite(ledW, HIGH);
}
else if(data == "4"){
digitalWrite(ledR, HIGH);
digitalWrite(ledG, HIGH);
digitalWrite(ledB, HIGH);
digitalWrite(ledY, HIGH);
digitalWrite(ledW, LOW);
}
else if(data == "3"){
digitalWrite(ledR, HIGH);
digitalWrite(ledG, HIGH);
digitalWrite(ledB, HIGH);
digitalWrite(ledY, LOW);
digitalWrite(ledW, LOW);
}
else if(data == "2"){
digitalWrite(ledR, HIGH);
digitalWrite(ledG, HIGH);
digitalWrite(ledB, LOW);
digitalWrite(ledY, LOW);
digitalWrite(ledW, LOW);
}
else if(data == "1"){
digitalWrite(ledR, HIGH);
digitalWrite(ledG, LOW);
digitalWrite(ledB, LOW);
digitalWrite(ledY, LOW);
digitalWrite(ledW, LOW);
}
else {
digitalWrite(ledR, LOW);
digitalWrite(ledG, LOW);
digitalWrite(ledB, LOW);
digitalWrite(ledY, LOW);
digitalWrite(ledW, LOW);
}
}
}
void setup() {
Serial.begin(115200);
connectWiFi();
connectMQTT();
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(ledY, OUTPUT);
pinMode(ledW, OUTPUT);
}
void loop() {
client.loop();
if (!client.connected()){
connectMQTT();
}
}