//Librerias utilizadas
#include "DHTesp.h" //sensor DHT22
#include <WiFi.h> //conexion wifi
#include "PubSubClient.h" //conexion con el broker
//#include <ArduinoOTA.h>
//conexion
const char* usuario = "Wokwi-GUEST";
const char* password = "1";
const char* servidor = "demo.thingsboard.io" ;
// se define el cliente wifi ademas se utiliza pubsubclient para permitir enviar y recibir datos por meido de MQTT
WiFiClient espClient;
PubSubClient client(espClient);
// Se define el puerto para el sensor de temperatura y se utiliza la libreria del sensor
const int DHT_PIN = 13;
DHTesp dhtSensor;
// se crea un void para que el micro pueda ejecutar las siguientes instrucciones
void InicializandoWifi(){
Serial.print("");
Serial.print("Se realiza la conexion : ");
Serial.println(usuario);
// se entrega el usuario y la contraseña para poder tener una conexion
WiFi.begin(usuario,password);
/*en esta sentencia while solamente verifica la conexion de nuestro microcontrolador
si llega a ser nula escribira el mensaje hasta que logre la conexion */
while(WiFi.status() != WL_CONNECTED){
Serial.println("---intentando conectar---");
delay(1000);
}
Serial.println("---Sea a logrado la conexion---");
}
void setup() {
Serial.begin(115200); //velocidad de comunicacion serial
//InicializandoWifi();
//Se proporciona el servidor dado en las constanstantes y el numero de puerto
client.setServer(servidor, 1883);
////////////////
// se configura el sensor dht22 utilizando las configuraciones de este sensor
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
/*en este apartado se realizan junto con la condicional if
los casos cuando no logra la conexion y se cicla y utiliza el metodo de reconexion*/
if(!client.connected()){
reconexion();
}
// en este apartado se realiza la lectura de los valores de temperatura y humedad
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
delay(2000);
}
void reconexion(){
if (!client.connected()){
Serial.println("...");
return;
}
}