#include <MQTT.h>
#include <NusabotSimpleTimer.h>
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
WiFiClient net;
MQTTClient client;
NusabotSimpleTimer timer;
int ldr;
void subscribe(String &topic, String &payload){
bool state;
if(payload == "true"){
state =1; }
else { state = 0;
}
if(topic == "nusabot/kuning/lampu"){
digitalWrite(26, state);
} else if (topic == "nusabot/merah/lampu"){
digitalWrite(25, state);
}
}
void publish(){
ldr = analogRead(27);
client.publish("nusabot/sensor/ldr", String(ldr));
Serial.println("Data Dipublish: "+String(ldr));
}
void connect(){
Serial.print("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.println("WiFi Connected");
Serial.print("Connecing to Broker");
while (!client.connect("ininggaksama")) {
Serial.print(".");
delay(1000);
}
Serial.println(" Broker Connected");
client.subscribe("nusabot/belakang/#");
}
void setup() {
WiFi.begin(ssid,pass);
client.begin("broker.emqx.io", net);
Serial.begin(9600);
pinMode(27, INPUT);
pinMode(25, OUTPUT);
pinMode(26, OUTPUT);
timer.setInterval(3000, publish);
client.onMessage(subscribe);
connect();
}
void loop() {
timer.run();
client.loop();
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4