#include "FirebaseESP32.h"
#include "DHT.h"
#include <string.h>
#include <WiFi.h>
#include <WiFiClient.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define FIREBASE_HOST "https://esp32-dht22-c129b-default-rtdb.firebaseio.com/"
#define FIREBASE_AUTH "RAToRJNskQlO4O4uuyj2YYiZVm8hLosq6gcZJZXD"
FirebaseData fbdo; // tao bien de quan ly firebase
const int BUZZER = 14;
const int LED = 13;
const int DHTPIN = 15;
const int DHTTYPE = DHT22;
DHT dht(DHTPIN,DHTTYPE);
WiFiClient client;
unsigned long dataMillis = 0;
void setup() {
Serial.begin(115200);
pinMode(LED,OUTPUT);
digitalWrite(LED, LOW);
pinMode(BUZZER,OUTPUT);
digitalWrite(BUZZER, LOW);
dht.begin();
Serial.print("Connecting to SSID:");
WiFi.begin(ssid,pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("WiFi connected");
Serial.print(", IP address: ");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST,FIREBASE_AUTH);
}
void loop() {
float doam = dht.readHumidity();
float doC = dht.readTemperature();
Serial.println("Do am: " + String(doam) + "%");
Serial.println("NNhiet do: " + String(doC) + " C");
Firebase.setInt(fbdo, "/DuLieu/Do am", doam);
Firebase.setInt(fbdo, "/DuLieu/Nhiet do", doC);
delay(100);
if (doC > 40 && doam > 60) {
digitalWrite(LED, HIGH);
delay(500); // Bật LED trong 0.5 giây
digitalWrite(LED, LOW);
delay(500); // Tắt LED trong 0.5 giây
digitalWrite(BUZZER, HIGH);
delay(500); // Tắt và bật lại buzzer sau 0.5 giây
digitalWrite(BUZZER, LOW);
delay(500); // Chờ 0.5 giây trước khi lặp lại quá trình
} else {
digitalWrite(LED, LOW);
digitalWrite(BUZZER, LOW);
delay(1000); // Chờ 1 giây trước khi lặp lại quá trình
}
}