#include "WiFi.h"
#include "PubSubClient.h"
// WiFi
const char* ssid = "Wokwi-GUEST";
const char* pass = "";
// MQTT Broker
// const char* brokerUser = "antariot";
// const char* brokerPass = "admin@1234";
// const char* broker = "192.168.68.123";
const char* broker = "192.168.68.133";
const char* clientid = "99e1d680-ebdd-4865-a19f-9e336a698776";
const int port = 1883;
const char* outTopic ="/light/out";
WiFiClient espClient;
PubSubClient client(espClient);
void setupWiFi() {
delay(100);
Serial.print("\nConnecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.print("\nConnected to ");
Serial.println(ssid);
}
void reconnect() {
while (!client.connected()) {
Serial.print("Connecting to ");
Serial.println(broker);
// if (client.connect(clientid, brokerUser, brokerPass))
if (client.connect(clientid)) {
Serial.println("Connected to MQTT broker");
client.subscribe(outTopic);
} else {
Serial.print("Failed to connect. Retrying in 5 seconds...");
Serial.println(client.state());
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
setupWiFi();
client.setServer(broker, port);
client.setCallback(callback);
}
void loop() {
if (!client.connected()) {
reconnect();
}
else{
client.loop();
client.publish("topic_in/msg","Hello");
Serial.println("Hello");
delay(1000);
}
}
void callback(char* topic, byte* message, unsigned int length){
Serial.print("Messages arrived on topic: ");
Serial.println(topic);
Serial.print(". Message: ");
String messageTemp;
for(int i=0;i<length;i++){
Serial.print((char) message[i]);
messageTemp += (char)message[i];
}
Serial.println();
}