#include <WiFi.h>
#include <MQTT.h>
#include <NusabotSimpleTimer.h>
WiFiClient net;
MQTTClient client;
NusabotSimpleTimer timer;
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
int pot;
void setup() {
pinMode(27, OUTPUT);
pinMode(26, OUTPUT);
pinMode(25, OUTPUT);
pinMode(34, INPUT);
WiFi.begin(ssid, pass);
client.begin("broker.yosfirsh.my.id", net);
Serial.begin(9600);
client.onMessage(subscribe);
timer.setInterval(1000, publish);
connect();
}
void loop() {
client.loop();
timer.run();
if(!client.connected()){
connect();
}
delay(10); // this speeds up the simulation
}
void subscribe(String &topic, String &data){
if(topic == "qwer/1123091"){
if(data == "Nyala1"){
digitalWrite(27, 1);
}
if(data == "Mati1"){
digitalWrite(27, 0);
}
if(data == "Nyala2"){
digitalWrite(26, 1);
}
if(data == "Mati2"){
digitalWrite(26, 0);
}
if(data == "Nyala3"){
digitalWrite(25, 1);
}
if(data == "Mati3"){
digitalWrite(25, 0);
}
}
}
void publish(){
pot = map(analogRead(34), 0, 4095, 0, 100);
client.publish("qwer/1123091/pot", String(pot));
}
void connect(){
Serial.print("Menghubungkan ke WiFi");
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("Berhasil terhubung ke WiFi!");
Serial.print("Menghubungkan ke Broker");
while(!client.connect("mmnavvvsha")){
Serial.print(".");
delay(500);
}
Serial.println("Berhasil terhubung ke Broker");
client.subscribe("qwer/1123091/#", 1);
}