/**
ESP32 + WiFi - receptor
*/
#include <WiFi.h>
#include "PubSubClient.h"
// Datos para conexión
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* mqtt_server = "broker.hivemq.com";
WiFiClient espClient;
PubSubClient client(espClient);
// Estableciendo conexión al WiFi
void setup_wifi(){
delay(10);
Serial.print("");
Serial.print("Conactenado a: ");
Serial.println(ssid);
WiFi.begin(ssid,password);
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi conectado");
Serial.print("dirección IP: ");
Serial.println(WiFi.localIP());
delay (3000);
}
void setup() {
Serial.begin(115200); // Velocidad de comunicación serial en bit/s
setup_wifi();
client.setServer(mqtt_server,1883);
client.setCallback(callback);
}
void loop() {
if(!client.connected()){
reconnect();
}
client.loop();
delay(1000);
}
void reconnect(){
while(!client.connected()){
Serial.print("Intentando la conexión al MQTT .."); // Intentando conectarse al MQTT
if (client.connect("a52ad18b-b1ed-479c-a68c-a7599e8fa9b6")){
Serial.println ("Conectado..");
client.subscribe("seguridad");
Serial.println("suscrito al tema");
}else{
Serial.print("fallo, rc=");
Serial.print(client.state());
Serial.print(" Reptir intento en 5 segundos");
delay(5000);
}
}
}
// void callback(char* tema, byte* mensaje, unsigned int tamano ){
void callback(char* tema, byte* mensaje, unsigned int tamano ){
Serial.print("Mensaje tomado del tema: ");
Serial.println(tema);
Serial.print("Mensaje: ");
String mensajeTemperatura;
for(int i=0; i<tamano; i++ ){
//Serial.print((char)mensaje[i]);
mensajeTemperatura += (char)mensaje[i];
}
Serial.print(mensajeTemperatura);
Serial.println("");
}