#include <Arduino_JSON.h>
#include <WiFi.h>
#include <MQTT.h>
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
WiFiClient net;
MQTTClient client;
unsigned long lastMillis = 0;
void connect() {
Serial.print("checking wifi...");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.print("\nconnecting...");
while (!client.connect("esp32ku", "alatsena", "aUlAPnAPteOEGJ7m")) {
Serial.print(".");
delay(1000);
}
Serial.println("\nconnected!");
client.subscribe("smarthome/lampu1");
client.subscribe("smarthome/lampu2");
client.subscribe("smarthome/lampu3");
client.subscribe("smarthome/lampu4");
//client.unsubscribe("smarthome/lampu1");
//client.unsubscribe("smarthome/lampu2");
//client.unsubscribe("smarthome/lampu3");
//client.unsubscribe("smarthome/lampu4");
}
// Kontrol
void messageReceived(String &topic, String &payload) {
if (topic == "smarthome/lampu1") {
if (payload == "1") {
Serial.println("Lampu 1 Nyala");
} else {
Serial.println("Lampu 1 Mati");
}
}
if (topic == "smarthome/lampu2") {
if (payload == "1") {
Serial.println("Lampu 2 Nyala");
} else {
Serial.println("Lampu 2 Mati");
}
}
if (topic == "smarthome/lampu3") {
if (payload == "1") {
Serial.println("Lampu 3 Nyala");
} else {
Serial.println("Lampu 3 Mati");
}
}
if (topic == "smarthome/lampu4") {
if (payload == "1") {
Serial.println("Lampu 4 Nyala");
} else {
Serial.println("Lampu 4 Mati");
}
}
Serial.println(topic + ": " + payload);
}
void setup() {
Serial.begin(115200);
// start wifi and mqtt
WiFi.begin(ssid, pass);
client.begin("alatsena.cloud.shiftr.io", net);
client.onMessage(messageReceived);
connect();
}
String kalimat()
{
// Membuat objek JSON
JSONVar obj;
// Menambahkan data ke objek JSON
obj["nama"] = "Sena Achmad";
obj["umur"] = 40;
obj["alamat"] = "Jl. Pamoyanan Ciwidey";
return JSON.stringify(obj);
}
void loop() {
client.loop();
delay(10);
// check if connected
if (!client.connected()) {
connect();
}
// Pemantauan
// publish a message roughly every second.
if (millis() - lastMillis > 2000) {
lastMillis = millis();
client.publish("smarthome/testjson", kalimat());
}
}