#include "DHTesp.h"
#include <Arduino.h>
#include <LiquidCrystal_I2C.h>
#include <ArduinoJson.h>
#include <HTTPClient.h>
#include <EasyStringStream.h>
int led= 5;
const int DHT_PIN = 15;
const char* ssid = "Wokwi-GUEST";
const char* password = "";
LiquidCrystal_I2C display(0x27,16,2); //Adress
HTTPClient client;
DHTesp dhtSensor;
float temp=0;
float hum=0;
void setup() {
display.init();
display.backlight();
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
pinMode(led,OUTPUT);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
//wait for connection
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
}
}
void loop()
{
while (true)
{
char test[1024];
EasyStringStream ss(test, 1024);
TempAndHumidity data = dhtSensor.getTempAndHumidity();
temp=data.temperature;
hum=data.humidity;
String json;
client.begin("https://practica3-762b5-default-rtdb.firebaseio.com/act3.json");
client.addHeader("Content-Type","application/json");
StaticJsonDocument<200> doc;
if (temp<15 && temp>0)
{
ss <<"{\"Fecha\":\"10 Septiembre 2022\",\"Código del Sensor\":\"01\",\"Temperatura\":\"" <<temp<< "\",\"Humedad\":\"" <<hum<< "\",\"Estatus\":\"Frío\"}";
json=ss.get();
client.PATCH(json);
}
else if (temp>19 && temp<30)
{
ss <<"{\"Fecha\":\"10 Septiembre 2022\",\"Código del Sensor\":\"01\",\"Temperatura\":\"" <<temp<< "\",\"Humedad\":\"" <<hum<< "\",\"Estatus\":\"Agradable\"}";
json=ss.get();
client.PATCH(json);
}
else if (temp>=30 && temp<=40)
{
ss <<"{\"Fecha\":\"10 Septiembre 2022\",\"Código del Sensor\":\"01\",\"Temperatura\":\"" <<temp<< "\",\"Humedad\":\"" <<hum<< "\",\"Estatus\":\"Caliente\"}";
json=ss.get();
client.PATCH(json);
}
else if (temp>40)
{
ss <<"{\"Fecha\":\"10 Septiembre 2022\",\"Código del Sensor\":\"01\",\"Temperatura\":\"" <<temp<< "\",\"Humedad\":\"" <<hum<< "\",\"Estatus\":\"NoresteCaliente\"}";
json=ss.get();
client.PATCH(json);
}
else if (temp<=0)
{
ss <<"{\"Fecha\":\"10 Septiembre 2022\",\"Código del Sensor\":\"01\",\"Temperatura\":\"" <<temp<< "\",\"Humedad\":\"" <<hum<< "\",\"Estatus\":\"Congelado\"}";
json=ss.get();
client.PATCH(json);
}
//
String payload = client.getString();
digitalWrite(led, HIGH);
delay(5000);
digitalWrite(led, LOW);
Serial.println(payload);
display.clear();
display.setCursor(0,0);
display.print("Temp: ");
display.print(temp);
display.setCursor(0,1);
display.print("Hum: ");
display.print(hum);
Serial.println("Temp: " + String(temp, 2) + "°C");
Serial.println("Humidity: " + String(hum, 1) + "%");
Serial.println("---");
delay(1000);
}
}