// Rama Haddaf Syachriza
// 2021230002
// Kamis, 18/04/2024
#include <DHT.h>
#include <WiFi.h>
#include <PubSubClient.h>
#define DHTPIN 13
#define DHTTYPE DHT22
//Configuración de DHT
DHT dht(DHTPIN,DHTTYPE);
//red credentials
const char* ssid = "Wokwi-GUEST";
const char* password = "";
//broker
const char* mqtt_broker = "broker.hivemq.com";
const char* mqtt_topic = "ucol/iot/kevin";
const char* mqtt_client_id= "cliente_kevin";
const int mqtt_port = 1883;
WiFiClient wifiClient;
PubSubClient mqttClient(wifiClient);
void reconnect(){
while (!mqttClient.connected()){
Serial.println("conectando con el broker MQTT...");
if(mqttClient.connect(mqtt_client_id)){
Serial.println("conectado al broker MQTT.");
} else {
Serial.print(("Error: "));
Serial.println((mqttClient.state()));
Serial.println("Reintento en 5 segundos...");
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
dht.begin();
Serial.println("conectando a Wi-Fi");
WiFi.begin(ssid,password);
while(WiFi.status() != WL_CONNECTED){
delay(1000);
Serial.print(".");
}
Serial.println("conectando con la IP: ");
Serial.println(WiFi.localIP());
mqttClient.setServer(mqtt_broker, mqtt_port);
}
void loop() {
if(!mqttClient.connected()){
reconnect();
}
mqttClient.loop();
delay(5000);
float t = dht.readTemperature();
float h = dht.readHumidity();
Serial.printf("Temperatura: %f °C, Humedad: %f %\n",t,h);
char json[200];
sprintf(json, "{\"temperature\": &f, \"humidity\": %f}", t, h);
Serial.println(json);
mqttClient.publish(mqtt_topic, json);
}