#include <DHT.h>
//sensor de temperatura y humedad
#define DHTPIN 14
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
//Firebase
#if defined (ESP32)
#include <WiFi.h>
#elif defined(ESP8266)
#include <ESP8266WiFi.h>
#endif
#include <Firebase_ESP_Client.h>
#include <addons/RTDBHelper.h>
#define WIFI_SSID "Galaxy A54 5G 76D0"
#define WIFI_PASSWORD "4vncc7t28g3d8a7"
#define DATABASE_URL "https://sensor-esp32-c878c-default-rtdb.firebaseio.com/"
#define DATABASE_TOKEN "TDuDN6g81fPIRW8WQeaIA18fw65jLrs3zzYDpqmu"
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
float h;
float t;
void setup() {
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Buscando red Wi-Fi");
while (WiFi.status() !=WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Conexion Exitosa IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
config.database_url = DATABASE_URL;
config.signer.tokens.legacy_token = DATABASE_TOKEN;
Firebase.reconnectWiFi(true);
Firebase.begin(&config, &auth);
//temperatura y humedad
Serial.println(F("DHTxx test!"));
dht.begin();
if (isnan(h) || isnan(t)){
Serial.println(F("Falla de la lectura del sensor!"));
return;
}
pinMode(14, OUTPUT);
}
void loop() {
delay(1000);//es un sensor lento por lo que hay que darle tiempo
h = dht.readHumidity();
t = dht.readTemperature();
Firebase.RTDB.setInt(&fbdo, "Sensores/temperatura", t);
Firebase.RTDB.setInt(&fbdo, "Sensores/humedad", h);
if(t >= 30.0 || h >= 70.0){
digitalWrite(14, HIGH);
}
else{
digitalWrite(14, LOW);
}
}