#include <WiFi.h>
#include <PubSubClient.h>
const char* mqttServer = "broker.emqx.io";
const int mqttPort = 1883;
const char* client_name = "User_SJA003_001";
WiFiClient espClient;
PubSubClient client(espClient);
void PubMQTT(float Temp)
{
char str[10];
int len = snprintf(str,10, "%.2f",Temp);
client.publish("sja003/temp_mesa_002",(uint8_t*) str,len,true);
// Serial.println(str);
}
void lectura(char* topic, byte* payload, unsigned int length)
{
Serial.print(topic);
Serial.print(" : ");
char message[length+1]={0x00};
for(int i=0;i<length;i++)
message[i]=(char)payload[i];
message[length]=0x00;
Serial.println(message);
}
void setup() {
Serial.begin(9600);
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "",6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
client.setServer(mqttServer, mqttPort);
client.setCallback(lectura);
while (!client.connected())
{ Serial.print("Connecting to MQTT...");
if (client.connect(client_name))
Serial.println("connected");
else
{ Serial.print("failed with state ");
Serial.print(client.state());
delay(2000);
}
}
client.subscribe("sja003/temp_clase");
}
void loop() {
float Temp = analogRead(36)/100.0;
Serial.println(Temp);
PubMQTT(Temp);
if (!client.loop()) {
Serial.println("Desconnectado");
while (!client.connected())
{ Serial.print("Connecting to MQTT...");
if (client.connect(client_name ))
Serial.println("connected");
else
{ Serial.print("failed with state ");
Serial.print(client.state());
delay(2000);
}
}
}
delay(5000);
}