#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
char *mqttServer = "broker.hivemq.com";
int mqttPort = 1883;
char *mqttTopic = "sija/iot/angka";
int angka = 100;
WiFiClient wifiClient;
PubSubClient mqttClient(wifiClient);
void connectToInternet();
void setupMQTT();
void reconnectMQTT();
void setup() {
Serial.begin(115200);
connectToInternet();
setupMQTT();
}
void loop() {
if (!mqttClient.connected()){
reconnectMQTT();
}
if (angka > 0){
Serial.print("Angka: ");
Serial.println(angka);
mqttClient.publish(mqttTopic, String(angka).c_str());
delay(1000);
angka--;
} else {
angka = 100;
}
}
void connectToInternet(){
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Connected to Wi-Fi");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
}
void setupMQTT() {
mqttClient.setServer(mqttServer, mqttPort);
}
void reconnectMQTT() {
Serial.println("Connecting to MQTT Broker...");
while (!mqttClient.connected()) {
Serial.println("Reconnecting to MQTT Broker..");
String clientId = "ESP32Client-";
clientId += String(random(0xffff), HEX);
if (mqttClient.connect(clientId.c_str())) {
Serial.println("Connected.");
Serial.print("Client ID: ");
Serial.println(clientId);
mqttClient.publish(mqttTopic, clientId.c_str());
}
}
}