/**
ESP32 + DHT22 + WiFi
*/
#include "DHTesp.h"
#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);
// Datos Sensor Temp
const int DHT_PIN = 15;
DHTesp dhtSensor;
// 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);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
if(!client.connected()){
reconnect();
}
TempAndHumidity data = dhtSensor.getTempAndHumidity();
String temperatura = "Temperatura: " + String(data.temperature, 2) + "°C" ;
//Serial.println("Temperatura: " + String(data.temperature, 2) + "°C");
Serial.println(temperatura);
String humedad = "Humedad: " + String(data.humidity, 1) + "%" ;
//Serial.println("Humedad: " + String(data.humidity, 1) + "%");
Serial.println(humedad);
Serial.println("---");
delay(1000);
client.loop();
client.publish("seguridad",temperatura.c_str() );
delay(1000);
// client.publish("seguridad/humedad ",humedad.c_str() );
// 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);
}
}
}