#include "WiFi.h"
#include "DHTesp.h"
#include <LiquidCrystal_I2C.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const int DHT_PIN = 15;
DHTesp dhtSensor;
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
void ConnectWiFi_STA()
{
Serial.println("");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.print("No se ha podido conectar\n");
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("No se ha podido");
LCD.setCursor(0, 1);
LCD.print("conectar");
digitalWrite(18, HIGH);
delay(500);
digitalWrite(18, LOW);
delay(500);
}
Serial.println("");
Serial.print("Iniciado STA:\t");
Serial.println(ssid);
Serial.print("IP address:\t");
Serial.println(WiFi.localIP());
}
void setup()
{
Serial.begin(115200);
pinMode(18, OUTPUT);
pinMode(19, OUTPUT);
ConnectWiFi_STA();
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("Conectando a ");
LCD.setCursor(0, 1);
LCD.print("WiFi ");
LCD.setCursor(0, 2);
LCD.print(ssid);
delay(1000);
Serial.println("");
Serial.println("Conectado a Wifi");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (WiFi.status() != WL_CONNECTED) {
LCD.clear();
LCD.setCursor(0, 0);
LCD.println("Offline");
}
else{
LCD.clear();
LCD.setCursor(0, 0);
LCD.println("Online");
LCD.setCursor(9, 0);
LCD.println(ssid);
}
}
void loop() {
if (WiFi.status() != WL_CONNECTED)
{
digitalWrite(18, HIGH);
delay(500);
digitalWrite(18, LOW); // pone en bajo el pin 13
delay(500);
}
else
{
digitalWrite(19, HIGH);
delay(500);
digitalWrite(19, LOW); // pone en bajo el pin 13
delay(500);
}
TempAndHumidity data = dhtSensor.getTempAndHumidity();
LCD.setCursor(0, 1);
LCD.println("Temperatura: " + String(data.temperature, 1) + "C");
LCD.setCursor(0, 2);
LCD.println("Humedad: " + String(data.humidity, 1) + "%");
delay(1000);
}