//librerias
#include "DHTesp.h"
#include <WiFi.h>
#include "PubSubClient.h"
//conexiones
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* mqtt_server = "broker.hivemq.com";
WiFiClient espClient;
PubSubClient client(espClient);
//Temperatursensor
const int DHT_PIN = 15;
DHTesp dhtSensor;
void setup_wifi(){
delay(10);
Serial.print("");
Serial.print("verbinden: ");
Serial.println(ssid);
WiFi.begin(ssid, password, 6);
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Wifi connected");
Serial.print("Target IP: ");
Serial.println(WiFi.localIP());
}
void setup(){
Serial.begin(115200); //velocidad de comunicación
setup_wifi();
client.setServer(mqtt_server, 1883);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop(){
if(!client.connected()){
reconnected();
}
TempAndHumidity data = dhtSensor.getTempAndHumidity();
String temperatur = "Temp " + String(data.temperature, 2) + "°C";
String humidity = "Feuchte " + String(data.humidity, 2) + "%";
Serial.println(temperatur);
Serial.println(humidity);
delay(1000);
client.loop();
client.publish("btg/temp", temperatur.c_str());
client.publish("btg/hum", humidity.c_str());
delay(1000);
}
void reconnected(){
while(!client.connected()){
Serial.print("Init....");
if(client.connect("00cc40eb-9b47-446e-91e8-6f247ddc3b54")){
Serial.println("Connected");
client.subscribe("btg/temp");
client.subscribe("btg/hum");
Serial.println("MQTT publish");
} else{
Serial.print("ERROR");
Serial.print(client.state());
Serial.print("next try in 4 seconds");
delay(4000);
}
}
}